Generate treasure hoards
This commit is contained in:
parent
541991d404
commit
97782ab212
7 changed files with 132 additions and 9 deletions
|
|
@ -2,7 +2,8 @@ import random
|
|||
from typing import List
|
||||
|
||||
import map.quest_map
|
||||
from map.quest_map import QuestMap, MapEncounter, EncounterType as ET, QuestPath as QP
|
||||
import map.treasure_hoard_generator
|
||||
from map.quest_map import QuestMap, MapEncounter, BattleEncounter, EncounterType as ET, QuestPath as QP
|
||||
|
||||
|
||||
# 27 cards (21 are drawn)
|
||||
|
|
@ -26,9 +27,10 @@ def generate_encounter_inaccessible() -> MapEncounter:
|
|||
return MapEncounter(ET.INACCESSIBLE)
|
||||
|
||||
|
||||
def generate_encounter_battle(battle_type: ET):
|
||||
def generate_encounter_battle(battle_type: ET, level: int):
|
||||
assert battle_type in map.quest_map.ENCOUNTER_TYPES_BATTLE
|
||||
return MapEncounter(battle_type)
|
||||
hoard = map.treasure_hoard_generator.generate_hoard(battle_type, level)
|
||||
return BattleEncounter(battle_type, hoard)
|
||||
|
||||
|
||||
def generate_encounter_town(town_type: ET):
|
||||
|
|
@ -36,7 +38,7 @@ def generate_encounter_town(town_type: ET):
|
|||
return MapEncounter(town_type)
|
||||
|
||||
|
||||
def generate_map() -> QuestMap:
|
||||
def generate_map(level: int) -> QuestMap:
|
||||
quest_map = QuestMap()
|
||||
|
||||
# Generate encounters
|
||||
|
|
@ -46,13 +48,13 @@ def generate_map() -> QuestMap:
|
|||
row: List[MapEncounter] = []
|
||||
if r == 10:
|
||||
row.append(generate_encounter_inaccessible())
|
||||
row.append(generate_encounter_battle(ET.BATTLE_BOSS))
|
||||
row.append(generate_encounter_battle(ET.BATTLE_BOSS, level))
|
||||
row.append(generate_encounter_inaccessible())
|
||||
elif r in (1, 4, 7):
|
||||
elite_column = random.randrange(4) # 75% chance of elite
|
||||
for c in range(3):
|
||||
battle_type = ET.BATTLE_ELITE if c == elite_column else ET.BATTLE_REGULAR
|
||||
row.append(generate_encounter_battle(battle_type))
|
||||
row.append(generate_encounter_battle(battle_type, level))
|
||||
else:
|
||||
for c in range(3):
|
||||
town_type = next(town_deck_it)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue