From dd91470e19ddfe31943cfb696891a1e38ca91047 Mon Sep 17 00:00:00 2001 From: Ziktofel <ziktofel@gmail.com> Date: Mon, 7 Oct 2024 18:31:31 +0200 Subject: [PATCH] Add Son of Korhal unit --- worlds/sc2/item_descriptions.py | 1 + worlds/sc2/item_groups.py | 3 ++- worlds/sc2/item_names.py | 1 + worlds/sc2/items.py | 3 +++ worlds/sc2/rules.py | 2 +- 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/worlds/sc2/item_descriptions.py b/worlds/sc2/item_descriptions.py index 62d4b5ea1061..c4c2a41ffbf8 100644 --- a/worlds/sc2/item_descriptions.py +++ b/worlds/sc2/item_descriptions.py @@ -165,6 +165,7 @@ def _ability_desc(unit_name_plural: str, ability_name: str, ability_description: item_names.BLACKHAMMER: "Royal Guard heavy assault mech.", item_names.AEGIS_GUARD: "Royal Guard heavy assault infantry.", item_names.EMPERORS_SHADOW: "Royal Guard specialist. Can use Pyrokinetic Immolation and EMP Blast abilities. Can call down Tactical missiles.", + item_names.SON_OF_KORHAL: "Royal Guard general-purpose indantry.", item_names.PROGRESSIVE_TERRAN_INFANTRY_WEAPON: GENERIC_UPGRADE_TEMPLATE.format("damage", TERRAN, "infantry"), item_names.PROGRESSIVE_TERRAN_INFANTRY_ARMOR: GENERIC_UPGRADE_TEMPLATE.format("armor", TERRAN, "infantry"), item_names.PROGRESSIVE_TERRAN_VEHICLE_WEAPON: GENERIC_UPGRADE_TEMPLATE.format("damage", TERRAN, "vehicles"), diff --git a/worlds/sc2/item_groups.py b/worlds/sc2/item_groups.py index b7b4404e09aa..53ee130d1ae4 100644 --- a/worlds/sc2/item_groups.py +++ b/worlds/sc2/item_groups.py @@ -190,7 +190,7 @@ def get_all_group_names(cls) -> typing.Set[str]: item_name_groups[ItemGroupNames.BARRACKS_UNITS] = barracks_units = [ item_names.MARINE, item_names.MEDIC, item_names.FIREBAT, item_names.MARAUDER, item_names.REAPER, item_names.GHOST, item_names.SPECTRE, item_names.HERC, item_names.AEGIS_GUARD, - item_names.EMPERORS_SHADOW, item_names.DOMINION_TROOPER, + item_names.EMPERORS_SHADOW, item_names.DOMINION_TROOPER, item_names.SON_OF_KORHAL, ] item_name_groups[ItemGroupNames.FACTORY_UNITS] = factory_units = [ item_names.HELLION, item_names.VULTURE, item_names.GOLIATH, item_names.DIAMONDBACK, @@ -380,6 +380,7 @@ def get_all_group_names(cls) -> typing.Set[str]: item_names.AEGIS_GUARD, item_names.EMPERORS_SHADOW, item_names.SHOCK_DIVISION, item_names.BLACKHAMMER, item_names.PRIDE_OF_AUGUSTRGRAD, item_names.SKY_FURY, + item_names.DOMINION_TROOPER, ] item_name_groups[ItemGroupNames.WOL_ITEMS] = vanilla_wol_items = ( wol_units diff --git a/worlds/sc2/item_names.py b/worlds/sc2/item_names.py index 29fcf45e6937..ce94dc6fb3a5 100644 --- a/worlds/sc2/item_names.py +++ b/worlds/sc2/item_names.py @@ -43,6 +43,7 @@ BLACKHAMMER = "Blackhammer" AEGIS_GUARD = "Aegis Guard" EMPERORS_SHADOW = "Emperor's Shadow" +SON_OF_KORHAL = "Son Of Korhal" # Terran Buildings BUNKER = "Bunker" diff --git a/worlds/sc2/items.py b/worlds/sc2/items.py index 8789d6cbc179..9704413d8484 100644 --- a/worlds/sc2/items.py +++ b/worlds/sc2/items.py @@ -235,6 +235,9 @@ def get_full_item_list(): item_names.EMPERORS_SHADOW: ItemData(55 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 3, SC2Race.TERRAN, classification=ItemClassification.progression), + item_names.SON_OF_KORHAL: + ItemData(56 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 5, SC2Race.TERRAN, + classification=ItemClassification.progression), # Some other items are moved to Upgrade group because of the way how the bot message is parsed item_names.PROGRESSIVE_TERRAN_INFANTRY_WEAPON: ItemData(100 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Upgrade, 0, SC2Race.TERRAN, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), diff --git a/worlds/sc2/rules.py b/worlds/sc2/rules.py index 05c36ae6518a..a9ec7938a501 100644 --- a/worlds/sc2/rules.py +++ b/worlds/sc2/rules.py @@ -140,7 +140,7 @@ def terran_basic_anti_air(self, state: CollectionState) -> bool: item_names.MISSILE_TURRET, item_names.THOR, item_names.WAR_PIGS, item_names.SPARTAN_COMPANY, item_names.HELS_ANGELS, item_names.BATTLECRUISER, item_names.MARINE, item_names.WRAITH, item_names.VALKYRIE, item_names.CYCLONE, item_names.WINGED_NIGHTMARES, item_names.BRYNHILDS, - item_names.SKY_FURY, item_names.DOMINION_TROOPER + item_names.SKY_FURY, item_names.DOMINION_TROOPER, item_names.SON_OF_KORHAL, ), self.player) or self.terran_competent_anti_air(state) or self.advanced_tactics and (