Make temp option for testing logic

This commit is contained in:
Scipio Wright
2024-07-08 21:19:16 -04:00
parent c4ca2eab39
commit 6123b8dfe4
2 changed files with 32 additions and 1 deletions

View File

@@ -51,7 +51,21 @@ def create_er_regions(world: "TunicWorld") -> Dict[Portal, Portal]:
victory_region = regions["Spirit Arena Victory"]
victory_location = TunicERLocation(world.player, "The Heir", None, victory_region)
victory_location.place_locked_item(TunicERItem("Victory", ItemClassification.progression, None, world.player))
world.multiworld.completion_condition[world.player] = lambda state: state.has("Victory", world.player)
# todo: remove this later, just for testing
if not world.options.test_combat_option:
world.multiworld.completion_condition[world.player] = lambda state: state.has("Victory", world.player)
elif world.options.test_combat_option == 2:
world.multiworld.completion_condition[world.player] = lambda state: state.can_reach_location(
"Fortress Arena - Siege Engine/Vault Key Pickup", world.player)
elif world.options.test_combat_option == 3:
world.multiworld.completion_condition[world.player] = lambda state: state.can_reach_location(
"Librarian - Hexagon Green", world.player)
elif world.options.test_combat_option == 4:
world.multiworld.completion_condition[world.player] = lambda state: state.can_reach_location(
"Rooted Ziggurat Lower - Hexagon Blue", world.player)
elif world.options.test_combat_option == 5:
world.multiworld.completion_condition[world.player] = lambda state: state.can_reach_location(
"Cathedral Gauntlet - Gauntlet Reward", world.player)
victory_region.locations.append(victory_location)
return portal_pairs

View File

@@ -181,6 +181,22 @@ class CombatLogic(Choice):
default = 0
class TempCombatOption(Choice):
"""
Temporary option for testing combat logic.
Choose a boss, and it will be the goal for the purpose of generation.
The client will not goal when you kill that boss (unless it's the heir).
This is purely for testing spoiler outputs.
"""
display_name = "Test Combat Goal"
option_off = 0
option_siege_engine = 2
option_librarian = 3
option_scav_boss = 4
option_gauntlet = 5
default = 0
class LaurelsZips(Toggle):
"""
Choose whether to include using the Hero's Laurels to zip through gates, doors, and tricky spots.
@@ -255,6 +271,7 @@ class TunicOptions(PerGameCommonOptions):
extra_hexagon_percentage: ExtraHexagonPercentage
laurels_location: LaurelsLocation
combat_logic: CombatLogic
test_combat_option: TempCombatOption
lanternless: Lanternless
maskless: Maskless
laurels_zips: LaurelsZips