From 2d15c23681ff147d043c2145c0960e828d026207 Mon Sep 17 00:00:00 2001 From: Ziktofel Date: Sun, 23 Nov 2025 19:37:50 +0100 Subject: [PATCH] SC2: Fix missing brackets in Zerg The Host logic (#5657) * SC2: Fix missing brackets in Zerg The Host logic * Allow usage of SoA any race LotV and add additional brackets --- worlds/sc2/rules.py | 58 ++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/worlds/sc2/rules.py b/worlds/sc2/rules.py index ded292f09b..47f6a88643 100644 --- a/worlds/sc2/rules.py +++ b/worlds/sc2/rules.py @@ -2947,7 +2947,7 @@ class SC2Logic: ) ) or ( - self.spear_of_adun_presence == SpearOfAdunPresence.option_everywhere + self.spear_of_adun_presence in (SpearOfAdunPresence.option_everywhere, SpearOfAdunPresence.option_any_race_lotv) and state.has(item_names.SOA_TIME_STOP, self.player) or self.advanced_tactics and (state.has_any((item_names.SOA_SHIELD_OVERCHARGE, item_names.SOA_SOLAR_BOMBARDMENT), self.player)) @@ -2963,29 +2963,43 @@ class SC2Logic: and self.zerg_base_buster(state) and self.zerg_big_monsters(state) and ( - (self.morph_brood_lord(state) or self.morph_guardian(state)) - and ( - (self.morph_devourer(state) and state.has(item_names.MUTALISK, self.player)) - or state.has_all((item_names.INFESTED_LIBERATOR, item_names.INFESTED_LIBERATOR_CLOUD_DISPERSAL), self.player) - ) - or ( - state.has_all( - ( - item_names.MUTALISK, - item_names.MUTALISK_SEVERING_GLAIVE, - item_names.MUTALISK_VICIOUS_GLAIVE, - item_names.MUTALISK_SUNDERING_GLAIVE, - item_names.MUTALISK_RAPID_REGENERATION, - ), - self.player, + ( + ( + (self.morph_brood_lord(state) or self.morph_guardian(state)) + and ( + self.morph_devourer(state) and state.has(item_names.MUTALISK, self.player) + or state.has_all( + ( + item_names.INFESTED_LIBERATOR, + item_names.INFESTED_LIBERATOR_CLOUD_DISPERSAL + ), + self.player + ) + ) + ) + or ( + state.has_all( + ( + item_names.MUTALISK, + item_names.MUTALISK_SEVERING_GLAIVE, + item_names.MUTALISK_VICIOUS_GLAIVE, + item_names.MUTALISK_SUNDERING_GLAIVE, + item_names.MUTALISK_RAPID_REGENERATION, + ), + self.player, + ) + ) + ) + or ( + self.spear_of_adun_presence in (SpearOfAdunPresence.option_everywhere, SpearOfAdunPresence.option_any_race_lotv) + and ( + state.has(item_names.SOA_TIME_STOP, self.player) + or (self.advanced_tactics + and (state.has_any((item_names.SOA_SHIELD_OVERCHARGE, item_names.SOA_SOLAR_BOMBARDMENT), + self.player)) + ) ) ) - ) - or ( - self.spear_of_adun_presence == SpearOfAdunPresence.option_everywhere - and state.has(item_names.SOA_TIME_STOP, self.player) - or self.advanced_tactics - and (state.has_any((item_names.SOA_SHIELD_OVERCHARGE, item_names.SOA_SOLAR_BOMBARDMENT), self.player)) ) )