From 6123b8dfe491e5e5f5e0cb5b348f69a8254726a1 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Mon, 8 Jul 2024 21:19:16 -0400 Subject: [PATCH] Make temp option for testing logic --- worlds/tunic/er_scripts.py | 16 +++++++++++++++- worlds/tunic/options.py | 17 +++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/worlds/tunic/er_scripts.py b/worlds/tunic/er_scripts.py index 101b4b475d..05e25d1d81 100644 --- a/worlds/tunic/er_scripts.py +++ b/worlds/tunic/er_scripts.py @@ -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 diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index 6c64aba8df..34cf814060 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -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