diff --git a/worlds/sc2/ItemDescriptions.py b/worlds/sc2/ItemDescriptions.py index 2923556f7e89..957dc190656c 100644 --- a/worlds/sc2/ItemDescriptions.py +++ b/worlds/sc2/ItemDescriptions.py @@ -75,6 +75,13 @@ def _get_resource_efficiency_desc(item_name: str) -> str: def _get_start_and_max_energy_desc(unit_name_plural: str, starting_amount_increase: int = 150, maximum_amount_increase: int = 50) -> str: return f"{unit_name_plural} gain +{starting_amount_increase} starting energy and +{maximum_amount_increase} maximum energy." +def _ability_desc(unit_name_plural: str, ability_name: str, ability_description: str = '') -> str: + if ability_description: + suffix = f", which {ability_description}" + else: + suffix = "" + return f"{unit_name_plural} gain the {ability_name} ability{suffix}." + item_descriptions = { ItemNames.MARINE: "General-purpose infantry.", @@ -169,8 +176,8 @@ def _get_start_and_max_energy_desc(unit_name_plural: str, starting_amount_increa ItemNames.MARINE_LASER_TARGETING_SYSTEM: LASER_TARGETING_SYSTEMS_DESCRIPTION, ItemNames.MARINE_MAGRAIL_MUNITIONS: "Deals 20 damage to target unit. Autocast on attack with a cooldown.", ItemNames.MARINE_OPTIMIZED_LOGISTICS: "Increases Marine training speed.", - ItemNames.MEDIC_RESTORATION: "Removes negative status effects from target allied unit.", - ItemNames.MEDIC_OPTICAL_FLARE: "Reduces vision range of target enemy unit. Disables detection.", + ItemNames.MEDIC_RESTORATION: _ability_desc("Medics", "Restoration", "removes negative status effects from a target allied unit"), + ItemNames.MEDIC_OPTICAL_FLARE: _ability_desc("Medics", "Optical Flare", "reduces vision range of target enemy unit. Disables detection"), ItemNames.MEDIC_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(ItemNames.MEDIC), ItemNames.FIREBAT_PROGRESSIVE_STIMPACK: STIMPACK_LARGE_DESCRIPTION, ItemNames.FIREBAT_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(ItemNames.FIREBAT), @@ -314,7 +321,7 @@ def _get_start_and_max_energy_desc(unit_name_plural: str, starting_amount_increa ItemNames.BANSHEE_SHAPED_HULL: "Increases Banshee life by 100.", ItemNames.BANSHEE_ADVANCED_TARGETING_OPTICS: "Increases Banshee attack range by 2 while cloaked.", ItemNames.BANSHEE_DISTORTION_BLASTERS: "Increases Banshee attack damage by 25% while cloaked.", - ItemNames.BANSHEE_ROCKET_BARRAGE: "Deals 75 damage to enemy ground units in the target area.", + ItemNames.BANSHEE_ROCKET_BARRAGE: _ability_desc("Banshees", "Rocket Barrage", "deals 75 damage to enemy ground units in the target area"), ItemNames.GHOST_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(ItemNames.GHOST), ItemNames.SPECTRE_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(ItemNames.SPECTRE), ItemNames.THOR_BUTTON_WITH_A_SKULL_ON_IT: "Allows Thors to launch nukes.", @@ -561,24 +568,24 @@ def _get_start_and_max_energy_desc(unit_name_plural: str, starting_amount_increa ItemNames.LURKER_ADAPTED_SPINES: "Lurkers deal increased damage to non-light targets.", ItemNames.RAVAGER_POTENT_BILE: "Ravager Corrosive Bile deals an additional +40 damage.", ItemNames.RAVAGER_BLOATED_BILE_DUCTS: "Ravager Corrosive Bile hits a much larger area.", - ItemNames.RAVAGER_DEEP_TUNNEL: "Ravagers gain the Deep Tunnel ability, allowing them to burrow to any visible location on the map.", - ItemNames.VIPER_PARASITIC_BOMB: "Vipers gain the Parasitic Bomb ability, which inflicts an area-damaging effect on an enemy air unit.", + ItemNames.RAVAGER_DEEP_TUNNEL: _ability_desc("Ravagers", "Deep Tunnel", "allows them to burrow to any visible location on the map"), + ItemNames.VIPER_PARASITIC_BOMB: _ability_desc("Vipers", "Parasitic Bomb", "inflicts an area-damaging effect on an enemy air unit"), ItemNames.VIPER_PARALYTIC_BARBS: "Viper Abduct stuns units for an additional 5 seconds.", ItemNames.VIPER_VIRULENT_MICROBES: "All Viper abilities gain +4 range.", ItemNames.BROOD_LORD_POROUS_CARTILAGE: "Brood Lords gain increased movement speed.", ItemNames.BROOD_LORD_EVOLVED_CARAPACE: "Brood Lords gain +100 life and +1 armor.", ItemNames.BROOD_LORD_SPLITTER_MITOSIS: "Brood Lord attacks spawn twice as many broodlings.", ItemNames.BROOD_LORD_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(DISPLAY_NAME_BROOD_LORD), - ItemNames.INFESTOR_INFESTED_TERRAN: "Infestors gain the Spawn Infested Terran ability.", - ItemNames.INFESTOR_MICROBIAL_SHROUD: "Infestors gain the Microbial Shroud ability, which reduces incoming damage from air units in an area.", - ItemNames.SWARM_QUEEN_SPAWN_LARVAE: "Swarm Queens gain the Spawn Larvae ability.", - ItemNames.SWARM_QUEEN_DEEP_TUNNEL: "Swarm Queens gain the Deep Tunnel ability.", + ItemNames.INFESTOR_INFESTED_TERRAN: _ability_desc("Infestors", "Spawn Infested Terran"), + ItemNames.INFESTOR_MICROBIAL_SHROUD: _ability_desc("Infestors", "Microbial Shroud", "reduces incoming damage from air units in an area"), + ItemNames.SWARM_QUEEN_SPAWN_LARVAE: _ability_desc("Swarm Queens", "Spawn Larvae"), + ItemNames.SWARM_QUEEN_DEEP_TUNNEL: _ability_desc("Swarm Queens", "Deep Tunnel"), ItemNames.SWARM_QUEEN_ORGANIC_CARAPACE: "Swarm Queens gain +25 life.", ItemNames.SWARM_QUEEN_BIO_MECHANICAL_TRANSFUSION: "Swarm Queen Burst Heal heals an additional +10 life and can now target mechanical units.", ItemNames.SWARM_QUEEN_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(ItemNames.SWARM_QUEEN), ItemNames.SWARM_QUEEN_INCUBATOR_CHAMBER: "Swarm Queens may now be built two at a time from the Hatchery, Lair, or Hive.", - ItemNames.BROOD_QUEEN_FUNGAL_GROWTH: "Brood Queens gain the Fungal Growth ability.", - ItemNames.BROOD_QUEEN_ENSNARE: "Brood Queens gain the Ensnare ability.", + ItemNames.BROOD_QUEEN_FUNGAL_GROWTH: _ability_desc("Brood Queens", "Fungal Growth"), + ItemNames.BROOD_QUEEN_ENSNARE: _ability_desc("Brood Queens", "Ensnare"), ItemNames.BROOD_QUEEN_ENHANCED_MITOCHONDRIA: "Brood Queens start with maximum energy and gain increased energy regeneration. Like powerhouses (of the cell).", ItemNames.ZERGLING_RAPTOR_STRAIN: "Allows Zerglings to jump up and down cliffs and leap onto enemies. Also increases Zergling attack damage by 2.", ItemNames.ZERGLING_SWARMLING_STRAIN: "Zerglings will spawn instantly and with an extra Zergling per egg at no additional cost.", @@ -734,24 +741,24 @@ def _get_start_and_max_energy_desc(unit_name_plural: str, starting_amount_increa ItemNames.WRATHWALKER_EYE_OF_WRATH: "Increases Wrathwalker weapon range by +1.", ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHROUD_OF_ADUN: f"Increases {DISPLAY_NAME_CLOAKED_ASSASSIN} maximum shields by +80.", ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHADOW_GUARD_TRAINING: f"Increases {DISPLAY_NAME_CLOAKED_ASSASSIN} maximum life by +40.", - ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_BLINK: "Dark Templar, Avengers, and Blood Hunters gain the Blink ability.", + ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_BLINK: _ability_desc("Dark Templar, Avengers, and Blood Hunters", "Blink"), ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_RESOURCE_EFFICIENCY: _get_resource_efficiency_desc(DISPLAY_NAME_CLOAKED_ASSASSIN), ItemNames.DARK_TEMPLAR_DARK_ARCHON_MELD: "Allows 2 Dark Templar to meld into a Dark Archon.", ItemNames.HIGH_TEMPLAR_SIGNIFIER_UNSHACKLED_PSIONIC_STORM: "High Templar and Signifiers deal increased damage with Psi Storm.", - ItemNames.HIGH_TEMPLAR_SIGNIFIER_HALLUCINATION: "High Templar and Signifiers gain the Hallucination ability, which creates 2 hallucinated copies of a target unit.", + ItemNames.HIGH_TEMPLAR_SIGNIFIER_HALLUCINATION: _ability_desc("High Templar and Signifiers", "Hallucination", "creates 2 hallucinated copies of a target unit"), ItemNames.HIGH_TEMPLAR_SIGNIFIER_KHAYDARIN_AMULET: _get_start_and_max_energy_desc("High Templar and Signifiers"), ItemNames.ARCHON_HIGH_ARCHON: "Archons can use High Templar abilities.", - ItemNames.DARK_ARCHON_FEEDBACK: "Dark Archons gain the Feedback ability, which drains all energy from a target and deals 1 damage per point of energy drained.", - ItemNames.DARK_ARCHON_MAELSTROM: "Dark Archons gain the Maelstrom ability, which stuns biological units in an area.", + ItemNames.DARK_ARCHON_FEEDBACK: _ability_desc("Dark Archons", "Feedback", "drains all energy from a target and deals 1 damage per point of energy drained"), + ItemNames.DARK_ARCHON_MAELSTROM: _ability_desc("Dark Archons", "Maelstrom", "stuns biological units in an area"), ItemNames.DARK_ARCHON_ARGUS_TALISMAN: _get_start_and_max_energy_desc("Dark Archons"), ItemNames.ASCENDANT_POWER_OVERWHELMING: "Ascendants gain the ability to sacrifice Supplicants for increased shields and spell damage.", ItemNames.ASCENDANT_CHAOTIC_ATTUNEMENT: "Ascendants' Psionic Orbs gain 25% increased travel distance.", ItemNames.ASCENDANT_BLOOD_AMULET: _get_start_and_max_energy_desc("Ascendants"), ItemNames.SENTRY_ENERGIZER_HAVOC_CLOAKING_MODULE: "Sentries, Energizers, and Havocs become permanently cloaked.", ItemNames.SENTRY_ENERGIZER_HAVOC_SHIELD_BATTERY_RAPID_RECHARGING: "Sentries, Energizers, and Havocs gain +100% energy regeneration rate.", - ItemNames.SENTRY_FORCE_FIELD: "Sentries gain the Force Field ability.", - ItemNames.SENTRY_HALLUCINATION: "Sentries gain the Hallucination ability, which creates hallucinated versions of Protoss units.", - ItemNames.ENERGIZER_RECLAMATION: "Energizers gain the Reclamation ability.", + ItemNames.SENTRY_FORCE_FIELD: _ability_desc("Sentries", "Force Field"), + ItemNames.SENTRY_HALLUCINATION: _ability_desc("Sentries", "Hallucination", "creates hallucinated versions of Protoss units"), + ItemNames.ENERGIZER_RECLAMATION: _ability_desc("Energizers", "Reclamation"), ItemNames.ENERGIZER_FORGED_CHASSIS: "Increases Energizer Life by +20.", ItemNames.HAVOC_DETECT_WEAKNESS: "Havocs' Target Lock gives an additional +15% damage bonus.", ItemNames.HAVOC_BLOODSHARD_RESONANCE: "Havoc gain increased range for Squad Sight, Target Lock, and Force Field.",