Render encounters
This commit is contained in:
parent
075e373ab2
commit
f6b0f860f7
8 changed files with 148 additions and 16 deletions
|
|
@ -1,5 +1,42 @@
|
|||
from map.quest_map import QuestMap
|
||||
import random
|
||||
from typing import List
|
||||
|
||||
import map.quest_map
|
||||
from map.quest_map import QuestMap, MapEncounter, EncounterType
|
||||
|
||||
|
||||
def generate_encounter_inaccessible() -> MapEncounter:
|
||||
return MapEncounter(EncounterType.INACCESSIBLE)
|
||||
|
||||
|
||||
def generate_encounter_battle(battle_type: EncounterType):
|
||||
assert battle_type in map.quest_map.ENCOUNTER_TYPES_BATTLE
|
||||
return MapEncounter(battle_type)
|
||||
|
||||
|
||||
def generate_encounter_town():
|
||||
town_type = random.choice(map.quest_map.ENCOUNTER_TYPES_TOWN)
|
||||
return MapEncounter(town_type)
|
||||
|
||||
|
||||
def generate_map() -> QuestMap:
|
||||
return QuestMap()
|
||||
quest_map = QuestMap()
|
||||
encounters_rows = []
|
||||
for r in range(11):
|
||||
row: List[MapEncounter] = []
|
||||
if r == 10:
|
||||
row.append(generate_encounter_inaccessible())
|
||||
row.append(generate_encounter_battle(EncounterType.BATTLE_BOSS))
|
||||
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 = EncounterType.BATTLE_ELITE if c == elite_column else EncounterType.BATTLE_REGULAR
|
||||
row.append(generate_encounter_battle(battle_type))
|
||||
else:
|
||||
for c in range(3):
|
||||
row.append(generate_encounter_town())
|
||||
encounters_rows.append(row)
|
||||
|
||||
quest_map.encounters = encounters_rows
|
||||
return quest_map
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue