From 6c088a45bb02b536529c1cd5b7222ea74e8a70f3 Mon Sep 17 00:00:00 2001 From: EnvyDragon <138727357+EnvyDragon@users.noreply.github.com> Date: Sat, 21 Sep 2024 22:03:49 -0400 Subject: [PATCH] adding Feedback to "beats kerrigan" --- worlds/sc2/rules.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/worlds/sc2/rules.py b/worlds/sc2/rules.py index fdab9cc01da7..ebb6f1251124 100644 --- a/worlds/sc2/rules.py +++ b/worlds/sc2/rules.py @@ -521,8 +521,12 @@ def all_in_p_requirement(self, state: CollectionState): :return: """ beats_kerrigan = ( + # cheap units with multiple small attacks, or anything with Feedback state.has_any({item_names.CENTURION, item_names.SENTINEL, item_names.SKIRMISHER, - item_names.CARRIER, item_names.TRIREME, item_names.VANGUARD}, self.player) + item_names.HIGH_TEMPLAR}, self.player) + or state.has_all({item_names.SIGNIFIER, item_names.SIGNIFIER_FEEDBACK}, self.player) + or (self.protoss_can_merge_archon(state) and state.has(item_names.ARCHON_HIGH_ARCHON, self.player)) + or (self.protoss_can_merge_dark_archon(state) and state.has(item_names.DARK_ARCHON_FEEDBACK, self.player)) or self.advanced_tactics ) if get_option_value(self.world, 'all_in_map') == AllInMap.option_ground: @@ -1073,6 +1077,12 @@ def protoss_basic_splash(self, state: CollectionState) -> bool: def protoss_static_defense(self, state: CollectionState) -> bool: return state.has_any({item_names.PHOTON_CANNON, item_names.KHAYDARIN_MONOLITH}, self.player) + def protoss_can_merge_archon(self, state: CollectionState) -> bool: + return state.has_any({item_names.HIGH_TEMPLAR, item_names.DARK_TEMPLAR, item_names.SIGNIFIER, item_names.ASCENDANT}, self.player) + + def protoss_can_merge_dark_archon(self, state: CollectionState) -> bool: + return state.has(item_names.DARK_ARCHON, self.player) or state.has_all({item_names.DARK_TEMPLAR, item_names.DARK_TEMPLAR_DARK_ARCHON_MELD}, self.player) + def last_stand_requirement(self, state: CollectionState) -> bool: return ( self.protoss_common_unit(state)