From 41936ae73b58ccea1d5c5a4b11419828283ba419 Mon Sep 17 00:00:00 2001 From: henriquenakashima Date: Tue, 8 Jun 2021 22:26:48 -0400 Subject: [PATCH] Add level 2 hoards --- questhelper/map/treasure_hoard_generator.py | 49 ++++++++++++++++++--- questhelper/map/views.py | 4 +- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/questhelper/map/treasure_hoard_generator.py b/questhelper/map/treasure_hoard_generator.py index c6e6032..cfa5008 100644 --- a/questhelper/map/treasure_hoard_generator.py +++ b/questhelper/map/treasure_hoard_generator.py @@ -25,7 +25,8 @@ _TABLES = { (6, 1, TT.DEED), (8, 50, TT.GOLD), (9, 1, TT.GEMS), - (11, 1, TT.ART_OBJECT), + (10, 1, TT.ART_OBJECT), + (11, 100, TT.GOLD), (12, 1, TT.LIFE), ]), EncounterType.BATTLE_ELITE: HoardTable([ @@ -36,8 +37,8 @@ _TABLES = { (8, 100, TT.GOLD), (9, 2, TT.GEMS), (10, 2, TT.ART_OBJECT), - (11, 1, TT.NOBILITY_TITLE), - (12, 1, TT.LIFE), + (11, 1, TT.LIFE), + (12, 1, TT.RELIC), ]), EncounterType.BATTLE_BOSS: HoardTable([ (2, 400, TT.GOLD), @@ -46,10 +47,47 @@ _TABLES = { (6, 3, TT.DEED), (8, 150, TT.GOLD), (9, 3, TT.GEMS), + (10, 1, TT.NOBILITY_TITLE), + (12, 1, TT.RELIC), + ]), + }, + 2: { + EncounterType.BATTLE_REGULAR: HoardTable([ + (2, 240, TT.GOLD), + (3, 1, TT.ART_OBJECT), + (4, 2, TT.COG), + (5, 1, TT.CONSUMABLE), + (6, 1, TT.DEED), + (8, 60, TT.GOLD), + (9, 1, TT.GEMS), + (10, 1, TT.ART_OBJECT), + (11, 120, TT.GOLD), + (12, 1, TT.LIFE), + ]), + EncounterType.BATTLE_ELITE: HoardTable([ + (2, 360, TT.GOLD), + (3, 2, TT.ART_OBJECT), + (4, 4, TT.COG), + (5, 2, TT.CONSUMABLE), + (6, 2, TT.DEED), + (8, 120, TT.GOLD), + (9, 2, TT.GEMS), + (10, 1, TT.LIFE), (11, 1, TT.NOBILITY_TITLE), (12, 1, TT.RELIC), ]), - } + EncounterType.BATTLE_BOSS: HoardTable([ + (2, 480, TT.GOLD), + (3, 3, TT.ART_OBJECT), + (4, 6, TT.COG), + (5, 3, TT.CONSUMABLE), + (6, 3, TT.DEED), + (8, 180, TT.GOLD), + (9, 3, TT.GEMS), + (10, 1, TT.NOBILITY_TITLE), + (12, 1, TT.RELIC), + ]), + }, } @@ -58,8 +96,5 @@ def generate_hoard(battle_type: EncounterType, level: int): def _roll_treasure(battle_type: EncounterType, level: int): - # TODO: Handle more quest levels - assert level == 1 - table: HoardTable = _TABLES[level][battle_type] return table.roll() diff --git a/questhelper/map/views.py b/questhelper/map/views.py index fec3de6..db4c1ed 100644 --- a/questhelper/map/views.py +++ b/questhelper/map/views.py @@ -12,7 +12,9 @@ def _ordinal(level): def index(request): - level = 1 + level = int(request.GET.get('level', 1)) + if level not in range(1, 5 + 1): + raise Exception(f'Level should be in range [1, 5] but was {level}') quest_map: QuestMap = map_generator.generate_map(level) rendered_map: RenderedMap = map_renderer.render_map(quest_map)