Archipelago/worlds/sc2/Items.py

2554 lines
164 KiB
Python

import inspect
from pydoc import describe
from BaseClasses import Item, ItemClassification, MultiWorld
import typing
from .Options import get_option_value, RequiredTactics
from .MissionTables import SC2Mission, SC2Race, SC2Campaign, campaign_mission_table
from . import ItemNames
from worlds.AutoWorld import World
class ItemData(typing.NamedTuple):
code: int
type: str
number: int # Important for bot commands to send the item into the game
race: SC2Race
classification: ItemClassification = ItemClassification.useful
quantity: int = 1
parent_item: typing.Optional[str] = None
origin: typing.Set[str] = {"wol"}
description: typing.Optional[str] = None
important_for_filtering: bool = False
def is_important_for_filtering(self):
return self.important_for_filtering \
or self.classification == ItemClassification.progression \
or self.classification == ItemClassification.progression_skip_balancing
class StarcraftItem(Item):
game: str = "Starcraft 2"
def get_full_item_list():
return item_table
SC2WOL_ITEM_ID_OFFSET = 1000
SC2HOTS_ITEM_ID_OFFSET = SC2WOL_ITEM_ID_OFFSET + 1000
SC2LOTV_ITEM_ID_OFFSET = SC2HOTS_ITEM_ID_OFFSET + 1000
# Descriptions
WEAPON_ARMOR_UPGRADE_NOTE = inspect.cleandoc("""
Must be researched during the mission if the mission type isn't set to auto-unlock generic upgrades.
""")
LASER_TARGETING_SYSTEMS_DESCRIPTION = "Increases vision by 2 and weapon range by 1."
STIMPACK_SMALL_COST = 10
STIMPACK_SMALL_HEAL = 30
STIMPACK_LARGE_COST = 20
STIMPACK_LARGE_HEAL = 60
STIMPACK_TEMPLATE = inspect.cleandoc("""
Level 1: Stimpack: Increases unit movement and attack speed for 15 seconds. Injures the unit for {} life.
Level 2: Super Stimpack: Instead of injuring the unit, heals the unit for {} life instead.
""")
STIMPACK_SMALL_DESCRIPTION = STIMPACK_TEMPLATE.format(STIMPACK_SMALL_COST, STIMPACK_SMALL_HEAL)
STIMPACK_LARGE_DESCRIPTION = STIMPACK_TEMPLATE.format(STIMPACK_LARGE_COST, STIMPACK_LARGE_HEAL)
SMART_SERVOS_DESCRIPTION = "Increases transformation speed between modes."
INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE = "{} can be trained from a {} without an attached Tech Lab."
RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE = "Reduces {} resource and supply cost."
RESOURCE_EFFICIENCY_NO_SUPPLY_DESCRIPTION_TEMPLATE = "Reduces {} resource cost."
CLOAK_DESCRIPTION_TEMPLATE = "Allows {} to use the Cloak ability."
# The items are sorted by their IDs. The IDs shall be kept for compatibility with older games.
item_table = {
# WoL
ItemNames.MARINE:
ItemData(0 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="General-purpose infantry."),
ItemNames.MEDIC:
ItemData(1 + SC2WOL_ITEM_ID_OFFSET, "Unit", 1, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Support trooper. Heals nearby biological units."),
ItemNames.FIREBAT:
ItemData(2 + SC2WOL_ITEM_ID_OFFSET, "Unit", 2, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Specialized anti-infantry attacker."),
ItemNames.MARAUDER:
ItemData(3 + SC2WOL_ITEM_ID_OFFSET, "Unit", 3, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Heavy assault infantry."),
ItemNames.REAPER:
ItemData(4 + SC2WOL_ITEM_ID_OFFSET, "Unit", 4, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Raider. Capable of jumping up and down cliffs. Throws explosive mines."),
ItemNames.HELLION:
ItemData(5 + SC2WOL_ITEM_ID_OFFSET, "Unit", 5, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Fast scout. Has a flame attack that damages all enemy units in its line of fire."),
ItemNames.VULTURE:
ItemData(6 + SC2WOL_ITEM_ID_OFFSET, "Unit", 6, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Fast skirmish unit. Can use the Spider Mine ability."),
ItemNames.GOLIATH:
ItemData(7 + SC2WOL_ITEM_ID_OFFSET, "Unit", 7, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Heavy-fire support unit."),
ItemNames.DIAMONDBACK:
ItemData(8 + SC2WOL_ITEM_ID_OFFSET, "Unit", 8, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Fast, high-damage hovertank. Rail Gun can fire while the Diamondback is moving."),
ItemNames.SIEGE_TANK:
ItemData(9 + SC2WOL_ITEM_ID_OFFSET, "Unit", 9, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Heavy tank. Long-range artillery in Siege Mode."),
ItemNames.MEDIVAC:
ItemData(10 + SC2WOL_ITEM_ID_OFFSET, "Unit", 10, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Air transport. Heals nearby biological units."),
ItemNames.WRAITH:
ItemData(11 + SC2WOL_ITEM_ID_OFFSET, "Unit", 11, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Highly mobile flying unit. Excellent at surgical strikes."),
ItemNames.VIKING:
ItemData(12 + SC2WOL_ITEM_ID_OFFSET, "Unit", 12, SC2Race.TERRAN,
classification=ItemClassification.progression,
description=inspect.cleandoc(
"""
Durable support flyer. Loaded with strong anti-capital air missiles.
Can switch into Assault Mode to attack ground units.
"""
)),
ItemNames.BANSHEE:
ItemData(13 + SC2WOL_ITEM_ID_OFFSET, "Unit", 13, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Tactical-strike aircraft."),
ItemNames.BATTLECRUISER:
ItemData(14 + SC2WOL_ITEM_ID_OFFSET, "Unit", 14, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Powerful warship."),
ItemNames.GHOST:
ItemData(15 + SC2WOL_ITEM_ID_OFFSET, "Unit", 15, SC2Race.TERRAN,
classification=ItemClassification.progression,
description=inspect.cleandoc(
"""
Infiltration unit. Can use Snipe and Cloak abilities. Can also call down Tactical Nukes.
"""
)),
ItemNames.SPECTRE:
ItemData(16 + SC2WOL_ITEM_ID_OFFSET, "Unit", 16, SC2Race.TERRAN,
classification=ItemClassification.progression,
description=inspect.cleandoc(
"""
Infiltration unit. Can use Ultrasonic Pulse, Psionic Lash, and Cloak.
Can also call down Tactical Nukes.
"""
)),
ItemNames.THOR:
ItemData(17 + SC2WOL_ITEM_ID_OFFSET, "Unit", 17, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Heavy assault mech."),
# EE units
ItemNames.LIBERATOR:
ItemData(18 + SC2WOL_ITEM_ID_OFFSET, "Unit", 18, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"nco", "ext"},
description=inspect.cleandoc(
"""
Artillery fighter. Loaded with missiles that deal area damage to enemy air targets.
Can switch into Defender Mode to provide siege support.
"""
)),
ItemNames.VALKYRIE:
ItemData(19 + SC2WOL_ITEM_ID_OFFSET, "Unit", 19, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"bw"},
description=inspect.cleandoc(
"""
Advanced anti-aircraft fighter.
Able to use cluster missiles that deal area damage to air targets.
"""
)),
ItemNames.WIDOW_MINE:
ItemData(20 + SC2WOL_ITEM_ID_OFFSET, "Unit", 20, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"ext"},
description=inspect.cleandoc(
"""
Robotic mine. Launches missiles at nearby enemy units while burrowed.
Attacks deal splash damage in a small area around the target.
Widow Mine is revealed when Sentinel Missile is on cooldown.
"""
)),
ItemNames.CYCLONE:
ItemData(21 + SC2WOL_ITEM_ID_OFFSET, "Unit", 21, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"ext"},
description=inspect.cleandoc(
"""
Mobile assault vehicle. Can use Lock On to quickly fire while moving.
"""
)),
ItemNames.HERC:
ItemData(22 + SC2WOL_ITEM_ID_OFFSET, "Unit", 26, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"ext"},
description=inspect.cleandoc(
"""
Front-line infantry. Can use Grapple.
"""
)),
ItemNames.WARHOUND:
ItemData(23 + SC2WOL_ITEM_ID_OFFSET, "Unit", 27, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"ext"},
description=inspect.cleandoc(
"""
Anti-vehicle mech. Haywire missiles do bonus damage to mechanical units.
"""
)),
# Some other items are moved to Upgrade group because of the way how the bot message is parsed
ItemNames.PROGRESSIVE_TERRAN_INFANTRY_WEAPON:
ItemData(100 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 0, SC2Race.TERRAN,
quantity=3,
description=inspect.cleandoc(
f"""
Increases damage of Terran infantry units.
{WEAPON_ARMOR_UPGRADE_NOTE}
"""
)),
ItemNames.PROGRESSIVE_TERRAN_INFANTRY_ARMOR:
ItemData(102 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 2, SC2Race.TERRAN,
quantity=3,
description=inspect.cleandoc(
f"""
Increases armor of Terran infantry units.
{WEAPON_ARMOR_UPGRADE_NOTE}
"""
)),
ItemNames.PROGRESSIVE_TERRAN_VEHICLE_WEAPON:
ItemData(103 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 4, SC2Race.TERRAN,
quantity=3,
description=inspect.cleandoc(
f"""
Increases damage of Terran vehicle units.
{WEAPON_ARMOR_UPGRADE_NOTE}
"""
)),
ItemNames.PROGRESSIVE_TERRAN_VEHICLE_ARMOR:
ItemData(104 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 6, SC2Race.TERRAN,
quantity=3,
description=inspect.cleandoc(
f"""
Increases armor of Terran vehicle units.
{WEAPON_ARMOR_UPGRADE_NOTE}
"""
)),
ItemNames.PROGRESSIVE_TERRAN_SHIP_WEAPON:
ItemData(105 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 8, SC2Race.TERRAN,
quantity=3,
description=inspect.cleandoc(
f"""
Increases damage of Terran starship units.
{WEAPON_ARMOR_UPGRADE_NOTE}
"""
)),
ItemNames.PROGRESSIVE_TERRAN_SHIP_ARMOR:
ItemData(106 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 10, SC2Race.TERRAN,
quantity=3,
description=inspect.cleandoc(
f"""
Increases armor of Terran starship units.
{WEAPON_ARMOR_UPGRADE_NOTE}
"""
)),
# Upgrade bundle 'number' values are used as indices to get affected 'number's
ItemNames.PROGRESSIVE_TERRAN_WEAPON_UPGRADE: ItemData(107 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 0, SC2Race.TERRAN, quantity=3),
ItemNames.PROGRESSIVE_TERRAN_ARMOR_UPGRADE: ItemData(108 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 1, SC2Race.TERRAN, quantity=3),
ItemNames.PROGRESSIVE_TERRAN_INFANTRY_UPGRADE: ItemData(109 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 2, SC2Race.TERRAN, quantity=3),
ItemNames.PROGRESSIVE_TERRAN_VEHICLE_UPGRADE: ItemData(110 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 3, SC2Race.TERRAN, quantity=3),
ItemNames.PROGRESSIVE_TERRAN_SHIP_UPGRADE: ItemData(111 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 4, SC2Race.TERRAN, quantity=3),
ItemNames.PROGRESSIVE_TERRAN_WEAPON_ARMOR_UPGRADE: ItemData(112 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 5, SC2Race.TERRAN, quantity=3),
# Unit and structure upgrades
ItemNames.BUNKER_PROJECTILE_ACCELERATOR:
ItemData(200 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 0, SC2Race.TERRAN,
parent_item=ItemNames.BUNKER,
description="Increases range of all units in the Bunker by 1."),
ItemNames.BUNKER_NEOSTEEL_BUNKER:
ItemData(201 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 1, SC2Race.TERRAN,
parent_item=ItemNames.BUNKER,
description="Increases the number of Bunker slots by 2."),
ItemNames.MISSILE_TURRET_TITANIUM_HOUSING:
ItemData(202 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 2, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MISSILE_TURRET,
description="Increases Missile Turret life by 75."),
ItemNames.MISSILE_TURRET_HELLSTORM_BATTERIES:
ItemData(203 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 3, SC2Race.TERRAN,
parent_item=ItemNames.MISSILE_TURRET,
description="The Missile Turret unleashes an additional flurry of missiles with each attack."),
ItemNames.SCV_ADVANCED_CONSTRUCTION:
ItemData(204 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 4, SC2Race.TERRAN,
description="Multiple SCVs can construct a structure, reducing its construction time."),
ItemNames.SCV_DUAL_FUSION_WELDERS:
ItemData(205 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 5, SC2Race.TERRAN,
description="SCVs repair twice as fast."),
ItemNames.PROGRESSIVE_FIRE_SUPPRESSION_SYSTEM:
ItemData(206 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 24, SC2Race.TERRAN,
quantity=2,
description=inspect.cleandoc(
"""
Level 1: While on low health, Terran structures are repaired to half health instead of burning down.
Level 2: Terran structures are repaired to full health instead of half health
"""
)),
ItemNames.PROGRESSIVE_ORBITAL_COMMAND:
ItemData(207 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 26, SC2Race.TERRAN,
quantity=2, classification=ItemClassification.progression,
description=inspect.cleandoc(
"""
Level 1: Allows Command Centers to use Scanner Sweep and Calldown: MULE abilities.
Level 2: Orbital Command abilities work even in Planetary Fortress mode.
"""
)),
ItemNames.MARINE_PROGRESSIVE_STIMPACK:
ItemData(208 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 0, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.MARINE, quantity=2,
description=STIMPACK_SMALL_DESCRIPTION),
ItemNames.MARINE_COMBAT_SHIELD:
ItemData(209 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 9, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.MARINE,
description="Increases Marine life by 10."),
ItemNames.MEDIC_ADVANCED_MEDIC_FACILITIES:
ItemData(210 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 10, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIC,
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Medics", "Barracks")),
ItemNames.MEDIC_STABILIZER_MEDPACKS:
ItemData(211 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 11, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.MEDIC,
description="Increases Medic heal speed. Reduces the amount of energy required for each heal."),
ItemNames.FIREBAT_INCINERATOR_GAUNTLETS:
ItemData(212 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 12, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.FIREBAT,
description="Increases Firebat's damage radius by 40%"),
ItemNames.FIREBAT_JUGGERNAUT_PLATING:
ItemData(213 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 13, SC2Race.TERRAN,
parent_item=ItemNames.FIREBAT,
description="Increases Firebat's armor by 2."),
ItemNames.MARAUDER_CONCUSSIVE_SHELLS:
ItemData(214 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 14, SC2Race.TERRAN,
parent_item=ItemNames.MARAUDER,
description="Marauder attack temporarily slows all units in target area."),
ItemNames.MARAUDER_KINETIC_FOAM:
ItemData(215 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 15, SC2Race.TERRAN,
parent_item=ItemNames.MARAUDER,
description="Increases Marauder life by 25."),
ItemNames.REAPER_U238_ROUNDS:
ItemData(216 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 16, SC2Race.TERRAN,
parent_item=ItemNames.REAPER,
description=inspect.cleandoc(
"""
Increases Reaper pistol attack range by 1.
Reaper pistols do additional 3 damage to Light Armor.
"""
)),
ItemNames.REAPER_G4_CLUSTERBOMB:
ItemData(217 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 17, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.REAPER,
description="Timed explosive that does heavy area damage."),
ItemNames.CYCLONE_MAG_FIELD_ACCELERATORS:
ItemData(218 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 18, SC2Race.TERRAN,
parent_item=ItemNames.CYCLONE, origin={"ext"},
description="Increases Cyclone Lock On damage"),
ItemNames.CYCLONE_MAG_FIELD_LAUNCHERS:
ItemData(219 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 19, SC2Race.TERRAN,
parent_item=ItemNames.CYCLONE, origin={"ext"},
description="Increases Cyclone attack range by 2."),
ItemNames.MARINE_LASER_TARGETING_SYSTEM:
ItemData(220 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 8, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MARINE, origin={"nco"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.MARINE_MAGRAIL_MUNITIONS:
ItemData(221 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 20, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.MARINE, origin={"nco"},
description="Deals 20 damage to target unit. Autocast on attack with a cooldown."),
ItemNames.MARINE_OPTIMIZED_LOGISTICS:
ItemData(222 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 21, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MARINE, origin={"nco"},
description="Increases Marine training speed."),
ItemNames.MEDIC_RESTORATION:
ItemData(223 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 22, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIC, origin={"bw"},
description="Removes negative status effects from target allied unit."),
ItemNames.MEDIC_OPTICAL_FLARE:
ItemData(224 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 23, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIC, origin={"bw"},
description="Reduces vision range of target enemy unit. Disables detection."),
ItemNames.MEDIC_RESOURCE_EFFICIENCY:
ItemData(225 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 24, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIC, origin={"bw"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Medic")),
ItemNames.FIREBAT_PROGRESSIVE_STIMPACK:
ItemData(226 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 6, SC2Race.TERRAN,
parent_item=ItemNames.FIREBAT, quantity=2, origin={"bw"},
description=STIMPACK_LARGE_DESCRIPTION),
ItemNames.FIREBAT_RESOURCE_EFFICIENCY:
ItemData(227 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 25, SC2Race.TERRAN,
parent_item=ItemNames.FIREBAT, origin={"bw"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Firebat")),
ItemNames.MARAUDER_PROGRESSIVE_STIMPACK:
ItemData(228 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 8, SC2Race.TERRAN,
parent_item=ItemNames.MARAUDER, quantity=2, origin={"nco"},
description=STIMPACK_LARGE_DESCRIPTION),
ItemNames.MARAUDER_LASER_TARGETING_SYSTEM:
ItemData(229 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 26, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MARAUDER, origin={"nco"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.MARAUDER_MAGRAIL_MUNITIONS:
ItemData(230 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 27, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MARAUDER, origin={"nco"},
description="Deals 20 damage to target unit. Autocast on attack with a cooldown."),
ItemNames.MARAUDER_INTERNAL_TECH_MODULE:
ItemData(231 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 28, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MARAUDER, origin={"nco"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Marauders", "Barracks")),
ItemNames.SCV_HOSTILE_ENVIRONMENT_ADAPTATION:
ItemData(232 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 29, SC2Race.TERRAN,
classification=ItemClassification.filler, origin={"bw"},
description="Increases SCV life by 15 and attack speed slightly."),
ItemNames.MEDIC_ADAPTIVE_MEDPACKS:
ItemData(233 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 0, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.MEDIC, origin={"ext"},
description="Allows Medics to heal mechanical and air units."),
ItemNames.MEDIC_NANO_PROJECTOR:
ItemData(234 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 1, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIC, origin={"ext"},
description="Increases Medic heal range by 2."),
ItemNames.FIREBAT_INFERNAL_PRE_IGNITER:
ItemData(235 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 2, SC2Race.TERRAN,
parent_item=ItemNames.FIREBAT, origin={"bw"},
description="Firebats do an additional 4 damage to Light Armor."),
ItemNames.FIREBAT_KINETIC_FOAM:
ItemData(236 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 3, SC2Race.TERRAN,
parent_item=ItemNames.FIREBAT, origin={"ext"},
description="Increases Firebat life by 100."),
ItemNames.FIREBAT_NANO_PROJECTORS:
ItemData(237 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 4, SC2Race.TERRAN,
parent_item=ItemNames.FIREBAT, origin={"ext"},
description="Increases Firebat attack range by 2"),
ItemNames.MARAUDER_JUGGERNAUT_PLATING:
ItemData(238 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 5, SC2Race.TERRAN,
parent_item=ItemNames.MARAUDER, origin={"ext"},
description="Increases Marauder's armor by 2."),
ItemNames.REAPER_JET_PACK_OVERDRIVE:
ItemData(239 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 6, SC2Race.TERRAN,
parent_item=ItemNames.REAPER, origin={"ext"},
description=inspect.cleandoc(
"""
Allows the Reaper to fly for 10 seconds.
While flying, the Reaper can attack air units.
"""
)),
ItemNames.HELLION_INFERNAL_PLATING:
ItemData(240 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 7, SC2Race.TERRAN,
parent_item=ItemNames.HELLION, origin={"ext"},
description="Increases Hellion and Hellbat armor by 2."),
ItemNames.VULTURE_AUTO_REPAIR:
ItemData(241 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 8, SC2Race.TERRAN,
parent_item=ItemNames.VULTURE, origin={"ext"},
description="Vultures regenerate life."),
ItemNames.GOLIATH_SHAPED_HULL:
ItemData(242 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 9, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.GOLIATH, origin={"nco", "ext"},
description="Increases Goliath life by 25."),
ItemNames.GOLIATH_RESOURCE_EFFICIENCY:
ItemData(243 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 10, SC2Race.TERRAN,
parent_item=ItemNames.GOLIATH, origin={"nco", "bw"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Goliath")),
ItemNames.GOLIATH_INTERNAL_TECH_MODULE:
ItemData(244 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 11, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.GOLIATH, origin={"nco", "bw"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Goliaths", "Factory")),
ItemNames.SIEGE_TANK_SHAPED_HULL:
ItemData(245 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 12, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.SIEGE_TANK, origin={"nco", "ext"},
description="Increases Siege Tank life by 25."),
ItemNames.SIEGE_TANK_RESOURCE_EFFICIENCY:
ItemData(246 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 13, SC2Race.TERRAN,
parent_item=ItemNames.SIEGE_TANK, origin={"bw"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Siege Tank")),
ItemNames.PREDATOR_CLOAK:
ItemData(247 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 14, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.PREDATOR, origin={"ext"},
description=CLOAK_DESCRIPTION_TEMPLATE.format("Predators")),
ItemNames.PREDATOR_CHARGE:
ItemData(248 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 15, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.PREDATOR, origin={"ext"},
description="Allows Predators to intercept enemy ground units."),
ItemNames.MEDIVAC_SCATTER_VEIL:
ItemData(249 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 16, SC2Race.TERRAN,
parent_item=ItemNames.MEDIVAC, origin={"ext"},
description="Medivacs get 100 shields."),
ItemNames.REAPER_PROGRESSIVE_STIMPACK:
ItemData(250 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 10, SC2Race.TERRAN,
parent_item=ItemNames.REAPER, quantity=2, origin={"nco"},
description=STIMPACK_SMALL_DESCRIPTION),
ItemNames.REAPER_LASER_TARGETING_SYSTEM:
ItemData(251 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 17, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.REAPER, origin={"nco"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.REAPER_ADVANCED_CLOAKING_FIELD:
ItemData(252 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 18, SC2Race.TERRAN,
parent_item=ItemNames.REAPER, origin={"nco"},
description="Reapers are permanently cloaked."),
ItemNames.REAPER_SPIDER_MINES:
ItemData(253 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 19, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.REAPER, origin={"nco"},
important_for_filtering=True,
description="Allows Reapers to lay Spider Mines. 3 charges per Reaper."),
ItemNames.REAPER_COMBAT_DRUGS:
ItemData(254 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 20, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.REAPER, origin={"ext"},
description="Reapers regenerate life while out of combat."),
ItemNames.HELLION_HELLBAT_ASPECT:
ItemData(255 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 21, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.HELLION, origin={"nco"},
description="Allows Hellions to transform into Hellbats."),
ItemNames.HELLION_SMART_SERVOS:
ItemData(256 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 22, SC2Race.TERRAN,
parent_item=ItemNames.HELLION, origin={"nco"},
description="Transforms faster between modes. Hellions can attack while moving."),
ItemNames.HELLION_OPTIMIZED_LOGISTICS:
ItemData(257 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 23, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.HELLION, origin={"nco"},
description="Increases Hellion training speed."),
ItemNames.HELLION_JUMP_JETS:
ItemData(258 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 24, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.HELLION, origin={"nco"},
description=inspect.cleandoc(
"""
Increases movement speed in Hellion mode.
In Hellbat mode, launches the Hellbat toward enemy ground units and briefly stuns them.
"""
)),
ItemNames.HELLION_PROGRESSIVE_STIMPACK:
ItemData(259 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 12, SC2Race.TERRAN,
parent_item=ItemNames.HELLION, quantity=2, origin={"nco"},
description=STIMPACK_LARGE_DESCRIPTION),
ItemNames.VULTURE_ION_THRUSTERS:
ItemData(260 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 25, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.VULTURE, origin={"bw"},
description="Increases Vulture movement speed."),
ItemNames.VULTURE_AUTO_LAUNCHERS:
ItemData(261 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 26, SC2Race.TERRAN,
parent_item=ItemNames.VULTURE, origin={"bw"},
description="Allows Vultures to attack while moving."),
ItemNames.SPIDER_MINE_HIGH_EXPLOSIVE_MUNITION:
ItemData(262 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 27, SC2Race.TERRAN,
origin={"bw"},
description="Increases Spider mine damage."),
ItemNames.GOLIATH_JUMP_JETS:
ItemData(263 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 28, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.GOLIATH, origin={"nco"},
description="Allows Goliaths to jump up and down cliffs."),
ItemNames.GOLIATH_OPTIMIZED_LOGISTICS:
ItemData(264 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 29, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.GOLIATH, origin={"nco"},
description="Increases Goliath training speed."),
ItemNames.DIAMONDBACK_HYPERFLUXOR:
ItemData(265 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 0, SC2Race.TERRAN,
parent_item=ItemNames.DIAMONDBACK, origin={"ext"},
description="Increases Diamondback attack speed."),
ItemNames.DIAMONDBACK_BURST_CAPACITORS:
ItemData(266 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 1, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.DIAMONDBACK, origin={"ext"},
description=inspect.cleandoc(
"""
While not attacking, the Diamondback charges its weapon.
The next attack does 10 additional damage.
"""
)),
ItemNames.DIAMONDBACK_RESOURCE_EFFICIENCY:
ItemData(267 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 2, SC2Race.TERRAN,
parent_item=ItemNames.DIAMONDBACK, origin={"ext"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Diamondback")),
ItemNames.SIEGE_TANK_JUMP_JETS:
ItemData(268 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 3, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.SIEGE_TANK, origin={"nco"},
description=inspect.cleandoc(
"""
Repositions Siege Tank to a target location.
Can be used in either mode and to jump up and down cliffs.
"""
)),
ItemNames.SIEGE_TANK_SPIDER_MINES:
ItemData(269 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 4, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.SIEGE_TANK, origin={"nco"},
important_for_filtering=True,
description=inspect.cleandoc(
"""
Allows Siege Tanks to lay Spider Mines.
Lays 3 Spider Mines at once. 3 charges
"""
)),
ItemNames.SIEGE_TANK_SMART_SERVOS:
ItemData(270 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 5, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.SIEGE_TANK, origin={"nco"},
description=SMART_SERVOS_DESCRIPTION),
ItemNames.SIEGE_TANK_GRADUATING_RANGE:
ItemData(271 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 6, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.SIEGE_TANK, origin={"ext"},
description=inspect.cleandoc(
"""
Increases the Siege Tank's attack range by 1 every 3 seconds while in Siege Mode,
up to a maximum of 5 additional range.
"""
)),
ItemNames.SIEGE_TANK_LASER_TARGETING_SYSTEM:
ItemData(272 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 7, SC2Race.TERRAN,
parent_item=ItemNames.SIEGE_TANK, origin={"nco"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.SIEGE_TANK_ADVANCED_SIEGE_TECH:
ItemData(273 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 8, SC2Race.TERRAN,
parent_item=ItemNames.SIEGE_TANK, origin={"ext"},
description="Siege Tanks gain +3 armor in Siege Mode."),
ItemNames.SIEGE_TANK_INTERNAL_TECH_MODULE:
ItemData(274 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 9, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.SIEGE_TANK, origin={"nco"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Siege Tanks", "Factory")),
ItemNames.PREDATOR_RESOURCE_EFFICIENCY:
ItemData(275 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 10, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.PREDATOR, origin={"ext"},
description="Decreases Predator resource and supply cost."),
ItemNames.MEDIVAC_EXPANDED_HULL:
ItemData(276 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 11, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIVAC, origin={"ext"},
description="Increases Medivac cargo space by 4."),
ItemNames.MEDIVAC_AFTERBURNERS:
ItemData(277 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 12, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIVAC, origin={"ext"},
description="Ability. Temporarily increases the Medivac's movement speed by 70%."),
ItemNames.WRAITH_ADVANCED_LASER_TECHNOLOGY:
ItemData(278 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 13, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.WRAITH, origin={"ext"},
description=inspect.cleandoc(
"""
Burst Lasers do more damage and can hit both ground and air targets.
Replaces Gemini Missiles weapon.
"""
)),
ItemNames.VIKING_SMART_SERVOS:
ItemData(279 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 14, SC2Race.TERRAN,
parent_item=ItemNames.VIKING, origin={"ext"},
description=SMART_SERVOS_DESCRIPTION),
ItemNames.VIKING_ANTI_MECHANICAL_MUNITION:
ItemData(280 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 15, SC2Race.TERRAN,
parent_item=ItemNames.VIKING, origin={"ext"},
description="Increases Viking damage to mechanical units while in Assault Mode."),
ItemNames.DIAMONDBACK_ION_THRUSTERS:
ItemData(281 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 21, SC2Race.TERRAN,
parent_item=ItemNames.DIAMONDBACK, origin={"ext"},
description="Increases Diamondback movement speed."),
ItemNames.WARHOUND_RESOURCE_EFFICIENCY:
ItemData(282 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 13, SC2Race.TERRAN,
parent_item=ItemNames.WARHOUND, origin={"ext"},
description=RESOURCE_EFFICIENCY_NO_SUPPLY_DESCRIPTION_TEMPLATE.format("Warhound")),
ItemNames.WARHOUND_REINFORCED_PLATING:
ItemData(283 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 14, SC2Race.TERRAN,
parent_item=ItemNames.WARHOUND, origin={"ext"},
description="Increases Warhound armor by 2."),
ItemNames.HERC_RESOURCE_EFFICIENCY:
ItemData(284 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 15, SC2Race.TERRAN,
parent_item=ItemNames.HERC, origin={"ext"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("HERC")),
ItemNames.HERC_JUGGERNAUT_PLATING:
ItemData(285 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 16, SC2Race.TERRAN,
parent_item=ItemNames.HERC, origin={"ext"},
description="Increases HERC armor by 2."),
ItemNames.HERC_KINETIC_FOAM:
ItemData(286 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 17, SC2Race.TERRAN,
parent_item=ItemNames.HERC, origin={"ext"},
description="Increases HERC life by 50."),
ItemNames.HELLION_TWIN_LINKED_FLAMETHROWER:
ItemData(300 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 16, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.HELLION,
description="Doubles the width of the Hellion's flame attack."),
ItemNames.HELLION_THERMITE_FILAMENTS:
ItemData(301 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 17, SC2Race.TERRAN,
parent_item=ItemNames.HELLION,
description="Hellions do an additional 10 damage to Light Armor."),
ItemNames.SPIDER_MINE_CERBERUS_MINE:
ItemData(302 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 18, SC2Race.TERRAN,
classification=ItemClassification.filler,
description="Increases trigger and blast radius of Spider Mines."),
ItemNames.VULTURE_PROGRESSIVE_REPLENISHABLE_MAGAZINE:
ItemData(303 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 16, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.VULTURE, quantity=2,
description=inspect.cleandoc(
"""
Level 1: Allows Vultures to replace used Spider Mines. Costs 15 minerals.
Level 2: Replacing used Spider Mines no longer costs minerals.
"""
)),
ItemNames.GOLIATH_MULTI_LOCK_WEAPONS_SYSTEM:
ItemData(304 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 19, SC2Race.TERRAN,
parent_item=ItemNames.GOLIATH,
description="Goliaths can attack both ground and air targets simultaneously."),
ItemNames.GOLIATH_ARES_CLASS_TARGETING_SYSTEM:
ItemData(305 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 20, SC2Race.TERRAN,
parent_item=ItemNames.GOLIATH,
description="Increases Goliath ground attack range by 1 and air by 3."),
ItemNames.DIAMONDBACK_PROGRESSIVE_TRI_LITHIUM_POWER_CELL:
ItemData(306 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade 2", 4, SC2Race.TERRAN,
parent_item=ItemNames.DIAMONDBACK, quantity=2,
description=inspect.cleandoc(
"""
Level 1: Tri-Lithium Power Cell: Increases Diamondback attack range by 1.
Level 2: Tungsten Spikes: Increases Diamondback attack range by 3.
"""
)),
ItemNames.DIAMONDBACK_SHAPED_HULL:
ItemData(307 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 22, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.DIAMONDBACK,
description="Increases Diamondback life by 50."),
ItemNames.SIEGE_TANK_MAELSTROM_ROUNDS:
ItemData(308 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 23, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.SIEGE_TANK,
description="Siege Tanks do an additional 40 damage to the primary target in Siege Mode."),
ItemNames.SIEGE_TANK_SHAPED_BLAST:
ItemData(309 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 24, SC2Race.TERRAN,
parent_item=ItemNames.SIEGE_TANK,
description="Reduces splash damage to friendly targets while in Siege Mode by 75%."),
ItemNames.MEDIVAC_RAPID_DEPLOYMENT_TUBE:
ItemData(310 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 25, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIVAC,
description="Medivacs deploy loaded troops almost instantly."),
ItemNames.MEDIVAC_ADVANCED_HEALING_AI:
ItemData(311 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 26, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.MEDIVAC,
description="Medivacs can heal two targets at once."),
ItemNames.WRAITH_PROGRESSIVE_TOMAHAWK_POWER_CELLS:
ItemData(312 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 18, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.WRAITH, quantity=2,
description=inspect.cleandoc(
"""
Level 1: Tomahawk Power Cells: Increases Wraith starting energy by 100.
Level 2: Unregistered Cloaking Module: Wraiths do not require energy to cloak and remain cloaked.
"""
)),
ItemNames.WRAITH_DISPLACEMENT_FIELD:
ItemData(313 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 27, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.WRAITH,
description="Wraiths evade 20% of incoming attacks while cloaked."),
ItemNames.VIKING_RIPWAVE_MISSILES:
ItemData(314 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 28, SC2Race.TERRAN,
parent_item=ItemNames.VIKING,
description="Vikings do area damage while in Fighter Mode"),
ItemNames.VIKING_PHOBOS_CLASS_WEAPONS_SYSTEM:
ItemData(315 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 29, SC2Race.TERRAN,
parent_item=ItemNames.VIKING,
description="Increases Viking attack range by 1 in Assault mode and 2 in Fighter mode."),
ItemNames.BANSHEE_PROGRESSIVE_CROSS_SPECTRUM_DAMPENERS:
ItemData(316 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 2, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.BANSHEE, quantity=2,
description=inspect.cleandoc(
"""
Level 1: Banshees can remain cloaked twice as long.
Level 2: Banshees do not require energy to cloak and remain cloaked.
"""
)),
ItemNames.BANSHEE_SHOCKWAVE_MISSILE_BATTERY:
ItemData(317 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 0, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.BANSHEE,
description="Banshees do area damage in a straight line."),
ItemNames.BATTLECRUISER_PROGRESSIVE_MISSILE_PODS:
ItemData(318 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade 2", 2, SC2Race.TERRAN,
parent_item=ItemNames.BATTLECRUISER, quantity=2,
description="Spell. Missile Pods do damage to air targets in a target area."),
ItemNames.BATTLECRUISER_PROGRESSIVE_DEFENSIVE_MATRIX:
ItemData(319 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 20, SC2Race.TERRAN,
parent_item=ItemNames.BATTLECRUISER, quantity=2,
description=inspect.cleandoc(
"""
Level 1: Spell. For 20 seconds the Battlecruiser gains a shield that can absorb up to 200 damage.
Level 2: Passive. Battlecruiser gets 200 shields.
"""
)),
ItemNames.GHOST_OCULAR_IMPLANTS:
ItemData(320 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 2, SC2Race.TERRAN,
parent_item=ItemNames.GHOST,
description="Increases Ghost sight range by 3 and attack range by 2."),
ItemNames.GHOST_CRIUS_SUIT:
ItemData(321 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 3, SC2Race.TERRAN,
parent_item=ItemNames.GHOST,
description="Cloak no longer requires energy to activate or maintain."),
ItemNames.SPECTRE_PSIONIC_LASH:
ItemData(322 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 4, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.SPECTRE,
description="Spell. Deals 200 damage to a single target."),
ItemNames.SPECTRE_NYX_CLASS_CLOAKING_MODULE:
ItemData(323 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 5, SC2Race.TERRAN,
parent_item=ItemNames.SPECTRE,
description="Cloak no longer requires energy to activate or maintain."),
ItemNames.THOR_330MM_BARRAGE_CANNON:
ItemData(324 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 6, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.THOR,
description=inspect.cleandoc(
"""
Improves 250mm Strike Cannons ability to deal area damage and stun units in a small area.
Can be also freely aimed on ground.
"""
)),
ItemNames.THOR_PROGRESSIVE_IMMORTALITY_PROTOCOL:
ItemData(325 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 22, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.THOR, quantity=2,
description=inspect.cleandoc("""
Level 1: Allows destroyed Thors to be reconstructed on the field. Costs Vespene Gas.
Level 2: Thors are automatically reconstructed after falling for free.
"""
)),
ItemNames.LIBERATOR_ADVANCED_BALLISTICS:
ItemData(326 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 7, SC2Race.TERRAN,
parent_item=ItemNames.LIBERATOR, origin={"ext"},
description="Increases Liberator range by 3 in Defender Mode."),
ItemNames.LIBERATOR_RAID_ARTILLERY:
ItemData(327 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 8, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.LIBERATOR, origin={"nco"},
description="Allows Liberators to attack structures while in Defender Mode."),
ItemNames.WIDOW_MINE_DRILLING_CLAWS:
ItemData(328 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 9, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.WIDOW_MINE, origin={"ext"},
description="Allows Widow Mines to burrow and unburrow faster."),
ItemNames.WIDOW_MINE_CONCEALMENT:
ItemData(329 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 10, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.WIDOW_MINE, origin={"ext"},
description="Burrowed Widow Mines are no longer revealed when the Sentinel Missile is on cooldown."),
ItemNames.MEDIVAC_ADVANCED_CLOAKING_FIELD:
ItemData(330 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 11, SC2Race.TERRAN,
parent_item=ItemNames.MEDIVAC, origin={"ext"},
description="Medivacs are permanently cloaked."),
ItemNames.WRAITH_TRIGGER_OVERRIDE:
ItemData(331 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 12, SC2Race.TERRAN,
parent_item=ItemNames.WRAITH, origin={"ext"},
description="Wraith attack speed increases by 10% with each attack, up to a maximum of 100%."),
ItemNames.WRAITH_INTERNAL_TECH_MODULE:
ItemData(332 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 13, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.WRAITH, origin={"bw"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Wraiths", "Starport")),
ItemNames.WRAITH_RESOURCE_EFFICIENCY:
ItemData(333 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 14, SC2Race.TERRAN,
parent_item=ItemNames.WRAITH, origin={"bw"},
description=RESOURCE_EFFICIENCY_NO_SUPPLY_DESCRIPTION_TEMPLATE.format("Wraith")),
ItemNames.VIKING_SHREDDER_ROUNDS:
ItemData(334 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 15, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.VIKING, origin={"ext"},
description="Attacks in Assault mode do line splash damage."),
ItemNames.VIKING_WILD_MISSILES:
ItemData(335 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 16, SC2Race.TERRAN,
parent_item=ItemNames.VIKING, origin={"ext"},
description="Launches 5 rockets at the target unit. Each rocket does 25 (40 vs armored) damage."),
ItemNames.BANSHEE_SHAPED_HULL:
ItemData(336 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 17, SC2Race.TERRAN,
parent_item=ItemNames.BANSHEE, origin={"ext"},
description="Increases Banshee life by 100."),
ItemNames.BANSHEE_ADVANCED_TARGETING_OPTICS:
ItemData(337 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 18, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.BANSHEE, origin={"ext"},
description="Increases Banshee attack range by 2 while cloaked."),
ItemNames.BANSHEE_DISTORTION_BLASTERS:
ItemData(338 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 19, SC2Race.TERRAN,
parent_item=ItemNames.BANSHEE, origin={"ext"},
description="Increases Banshee attack damage by 25% while cloaked."),
ItemNames.BANSHEE_ROCKET_BARRAGE:
ItemData(339 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 20, SC2Race.TERRAN,
parent_item=ItemNames.BANSHEE, origin={"ext"},
description="Deals 75 damage to enemy ground units in the target area."),
ItemNames.GHOST_RESOURCE_EFFICIENCY:
ItemData(340 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 21, SC2Race.TERRAN,
parent_item=ItemNames.GHOST, origin={"bw"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Ghost")),
ItemNames.SPECTRE_RESOURCE_EFFICIENCY:
ItemData(341 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 22, SC2Race.TERRAN,
parent_item=ItemNames.SPECTRE, origin={"ext"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Spectre")),
ItemNames.THOR_BUTTON_WITH_A_SKULL_ON_IT:
ItemData(342 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 23, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.THOR, origin={"ext"},
description="Allows Thors to launch nukes."),
ItemNames.THOR_LASER_TARGETING_SYSTEM:
ItemData(343 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 24, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.THOR, origin={"ext"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.THOR_LARGE_SCALE_FIELD_CONSTRUCTION:
ItemData(344 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 25, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.THOR, origin={"ext"},
description="Allows Thors to be built by SCVs like a structure."),
ItemNames.RAVEN_RESOURCE_EFFICIENCY:
ItemData(345 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 26, SC2Race.TERRAN,
parent_item=ItemNames.RAVEN, origin={"ext"},
description=RESOURCE_EFFICIENCY_NO_SUPPLY_DESCRIPTION_TEMPLATE.format("Raven")),
ItemNames.RAVEN_DURABLE_MATERIALS:
ItemData(346 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 27, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.RAVEN, origin={"ext"},
description="Extends timed life duration of Raven's summoned objects."),
ItemNames.SCIENCE_VESSEL_IMPROVED_NANO_REPAIR:
ItemData(347 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 28, SC2Race.TERRAN,
parent_item=ItemNames.SCIENCE_VESSEL, origin={"ext"},
description="Nano-Repair no longer requires energy to use."),
ItemNames.SCIENCE_VESSEL_ADVANCED_AI_SYSTEMS:
ItemData(348 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 29, SC2Race.TERRAN,
parent_item=ItemNames.SCIENCE_VESSEL, origin={"ext"},
description="Science Vessel can use Nano-Repair at two targets at once."),
ItemNames.CYCLONE_RESOURCE_EFFICIENCY:
ItemData(349 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 0, SC2Race.TERRAN,
parent_item=ItemNames.CYCLONE, origin={"ext"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Cyclone")),
ItemNames.BANSHEE_HYPERFLIGHT_ROTORS:
ItemData(350 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 1, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.BANSHEE, origin={"ext"},
description="Increases Banshee movement speed."),
ItemNames.BANSHEE_LASER_TARGETING_SYSTEM:
ItemData(351 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 2, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.BANSHEE, origin={"nco"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.BANSHEE_INTERNAL_TECH_MODULE:
ItemData(352 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 3, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.BANSHEE, origin={"nco"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Banshees", "Starport")),
ItemNames.BATTLECRUISER_TACTICAL_JUMP:
ItemData(353 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 4, SC2Race.TERRAN,
parent_item=ItemNames.BATTLECRUISER, origin={"nco", "ext"},
description=inspect.cleandoc(
"""
Allows Battlecruisers to warp to a target location anywhere on the map.
"""
)),
ItemNames.BATTLECRUISER_CLOAK:
ItemData(354 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 5, SC2Race.TERRAN,
parent_item=ItemNames.BATTLECRUISER, origin={"nco"},
description=CLOAK_DESCRIPTION_TEMPLATE.format("Battlecruisers")),
ItemNames.BATTLECRUISER_ATX_LASER_BATTERY:
ItemData(355 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 6, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.BATTLECRUISER, origin={"nco"},
description=inspect.cleandoc(
"""
Battlecruisers can attack while moving,
do the same damage to both ground and air targets, and fire faster.
"""
)),
ItemNames.BATTLECRUISER_OPTIMIZED_LOGISTICS:
ItemData(356 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 7, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.BATTLECRUISER, origin={"ext"},
description="Increases Battlecruiser training speed."),
ItemNames.BATTLECRUISER_INTERNAL_TECH_MODULE:
ItemData(357 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 8, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.BATTLECRUISER, origin={"nco"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Battlecruisers", "Starport")),
ItemNames.GHOST_EMP_ROUNDS:
ItemData(358 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 9, SC2Race.TERRAN,
parent_item=ItemNames.GHOST, origin={"ext"},
description=inspect.cleandoc(
"""
Spell. Does 100 damage to shields and drains all energy from units in the targeted area.
Cloaked units hit by EMP are revealed for a short time.
"""
)),
ItemNames.GHOST_LOCKDOWN:
ItemData(359 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 10, SC2Race.TERRAN,
parent_item=ItemNames.GHOST, origin={"bw"},
description="Spell. Stuns a target mechanical unit for a long time."),
ItemNames.SPECTRE_IMPALER_ROUNDS:
ItemData(360 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 11, SC2Race.TERRAN,
parent_item=ItemNames.SPECTRE, origin={"ext"},
description="Spectres do additional damage to armored targets."),
ItemNames.THOR_PROGRESSIVE_HIGH_IMPACT_PAYLOAD:
ItemData(361 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 14, SC2Race.TERRAN,
parent_item=ItemNames.THOR, quantity=2, origin={"ext"},
description=inspect.cleandoc(
f"""
Level 1: Allows Thors to transform in order to use an alternative air attack.
Level 2: {SMART_SERVOS_DESCRIPTION}
"""
)),
ItemNames.RAVEN_BIO_MECHANICAL_REPAIR_DRONE:
ItemData(363 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 12, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.RAVEN, origin={"nco"},
description="Spell. Deploys a drone that can heal biological or mechanical units."),
ItemNames.RAVEN_SPIDER_MINES:
ItemData(364 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 13, SC2Race.TERRAN,
parent_item=ItemNames.RAVEN, origin={"nco"}, important_for_filtering=True,
description="Spell. Deploys 3 Spider Mines to a target location."),
ItemNames.RAVEN_RAILGUN_TURRET:
ItemData(365 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 14, SC2Race.TERRAN,
parent_item=ItemNames.RAVEN, origin={"nco"},
description=inspect.cleandoc(
"""
Spell. Allows Ravens to deploy an advanced Auto-Turret,
that can attack enemy ground units in a straight line.
"""
)),
ItemNames.RAVEN_HUNTER_SEEKER_WEAPON:
ItemData(366 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 15, SC2Race.TERRAN,
classification=ItemClassification.progression, parent_item=ItemNames.RAVEN, origin={"nco"},
description="Allows Ravens to attack with a Hunter-Seeker weapon."),
ItemNames.RAVEN_INTERFERENCE_MATRIX:
ItemData(367 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 16, SC2Race.TERRAN,
parent_item=ItemNames.RAVEN, origin={"ext"},
description=inspect.cleandoc(
"""
Spell. Target enemy Mechanical or Psionic unit can't attack or use abilities for a short duration.
"""
)),
ItemNames.RAVEN_ANTI_ARMOR_MISSILE:
ItemData(368 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 17, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.RAVEN, origin={"ext"},
description="Spell. Decreases target and nearby enemy units armor by 2."),
ItemNames.RAVEN_INTERNAL_TECH_MODULE:
ItemData(369 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 18, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.RAVEN, origin={"nco"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Ravens", "Starport")),
ItemNames.SCIENCE_VESSEL_EMP_SHOCKWAVE:
ItemData(370 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 19, SC2Race.TERRAN,
parent_item=ItemNames.SCIENCE_VESSEL, origin={"bw"},
description="Spell. Depletes all energy and shields of all units in a target area."),
ItemNames.SCIENCE_VESSEL_DEFENSIVE_MATRIX:
ItemData(371 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 20, SC2Race.TERRAN,
parent_item=ItemNames.SCIENCE_VESSEL, origin={"bw"},
description=inspect.cleandoc(
"""
Spell. Provides a target unit with a defensive barrier that can absorb up to 250 damage
"""
)),
ItemNames.CYCLONE_TARGETING_OPTICS:
ItemData(372 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 21, SC2Race.TERRAN,
parent_item=ItemNames.CYCLONE, origin={"ext"},
description="Increases Cyclone Lock On casting range and the range while Locked On."),
ItemNames.CYCLONE_RAPID_FIRE_LAUNCHERS:
ItemData(373 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 22, SC2Race.TERRAN,
parent_item=ItemNames.CYCLONE, origin={"ext"},
description="The first 12 shots of Lock On are fired more quickly."),
ItemNames.LIBERATOR_CLOAK:
ItemData(374 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 23, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.LIBERATOR, origin={"nco"},
description=CLOAK_DESCRIPTION_TEMPLATE.format("Liberators")),
ItemNames.LIBERATOR_LASER_TARGETING_SYSTEM:
ItemData(375 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 24, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.LIBERATOR, origin={"ext"},
description=LASER_TARGETING_SYSTEMS_DESCRIPTION),
ItemNames.LIBERATOR_OPTIMIZED_LOGISTICS:
ItemData(376 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 25, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.LIBERATOR, origin={"nco"},
description="Increases Liberator training speed."),
ItemNames.WIDOW_MINE_BLACK_MARKET_LAUNCHERS:
ItemData(377 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 26, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.WIDOW_MINE, origin={"ext"},
description="Increases Widow Mine Sentinel Missile range."),
ItemNames.WIDOW_MINE_EXECUTIONER_MISSILES:
ItemData(378 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 27, SC2Race.TERRAN,
parent_item=ItemNames.WIDOW_MINE, origin={"ext"},
description=inspect.cleandoc(
"""
Reduces Sentinel Missile cooldown.
When killed, Widow Mines will launch several missiles at random enemy targets.
"""
)),
ItemNames.VALKYRIE_ENHANCED_CLUSTER_LAUNCHERS:
ItemData(379 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 28,
SC2Race.TERRAN, parent_item=ItemNames.VALKYRIE, origin={"ext"},
description="Valkyries fire 2 additional rockets each volley."),
ItemNames.VALKYRIE_SHAPED_HULL:
ItemData(380 + SC2WOL_ITEM_ID_OFFSET, "Armory 5", 29, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.VALKYRIE, origin={"ext"},
description="Increases Valkyrie life by 50."),
ItemNames.VALKYRIE_FLECHETTE_MISSILES:
ItemData(381 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 0, SC2Race.TERRAN,
parent_item=ItemNames.VALKYRIE, origin={"ext"},
description="Equips Valkyries with Air-to-Surface missiles to attack ground units."),
ItemNames.VALKYRIE_AFTERBURNERS:
ItemData(382 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 1, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.VALKYRIE, origin={"ext"},
description="Ability. Temporarily increases the Valkyries's movement speed by 70%."),
ItemNames.CYCLONE_INTERNAL_TECH_MODULE:
ItemData(383 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 2, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.CYCLONE, origin={"ext"},
description=INTERNAL_TECH_MODULE_DESCRIPTION_TEMPLATE.format("Cyclones", "Factory")),
ItemNames.LIBERATOR_SMART_SERVOS:
ItemData(384 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 3, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.LIBERATOR, origin={"nco"},
description=SMART_SERVOS_DESCRIPTION),
ItemNames.LIBERATOR_RESOURCE_EFFICIENCY:
ItemData(385 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 4, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.LIBERATOR, origin={"ext"},
description=RESOURCE_EFFICIENCY_NO_SUPPLY_DESCRIPTION_TEMPLATE.format("Liberator")),
ItemNames.HERCULES_INTERNAL_FUSION_MODULE:
ItemData(386 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 5, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.HERCULES, origin={"ext"},
description="Hercules can be trained from a Starport without having a Fusion Core."),
ItemNames.HERCULES_TACTICAL_JUMP:
ItemData(387 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 6, SC2Race.TERRAN,
parent_item=ItemNames.HERCULES, origin={"ext"},
description=inspect.cleandoc(
"""
Allows Hercules to warp to a target location anywhere on the map.
"""
)),
ItemNames.PLANETARY_FORTRESS_PROGRESSIVE_AUGMENTED_THRUSTERS:
ItemData(388 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 28, SC2Race.TERRAN,
parent_item=ItemNames.PLANETARY_FORTRESS, origin={"ext"}, quantity=2,
description=inspect.cleandoc(
"""
Level 1: Lift Off - Planetary Fortress can lift off.
Level 2: Armament Stabilizers - Planetary Fortress can attack while lifted off.
"""
)),
ItemNames.PLANETARY_FORTRESS_ADVANCED_TARGETING:
ItemData(389 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 7, SC2Race.TERRAN,
parent_item=ItemNames.PLANETARY_FORTRESS, origin={"ext"},
description="Planetary Fortress can attack air units."),
ItemNames.VALKYRIE_LAUNCHING_VECTOR_COMPENSATOR:
ItemData(390 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 8, SC2Race.TERRAN,
classification=ItemClassification.filler, parent_item=ItemNames.VALKYRIE, origin={"ext"},
description="Allows Valkyries to shoot air while moving."),
ItemNames.VALKYRIE_RESOURCE_EFFICIENCY:
ItemData(391 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 9, SC2Race.TERRAN,
parent_item=ItemNames.VALKYRIE, origin={"ext"},
description=RESOURCE_EFFICIENCY_DESCRIPTION_TEMPLATE.format("Valkyrie")),
ItemNames.PREDATOR_PREDATOR_S_FURY:
ItemData(392 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 10, SC2Race.TERRAN,
parent_item=ItemNames.PREDATOR, origin={"ext"},
description="Predators can use an attack that jumps between targets."),
ItemNames.BATTLECRUISER_BEHEMOTH_PLATING:
ItemData(393 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 11, SC2Race.TERRAN,
parent_item=ItemNames.BATTLECRUISER, origin={"ext"},
description="Increases Battlecruiser armor by 2."),
ItemNames.BATTLECRUISER_COVERT_OPS_ENGINES:
ItemData(394 + SC2WOL_ITEM_ID_OFFSET, "Armory 6", 12, SC2Race.TERRAN,
parent_item=ItemNames.BATTLECRUISER, origin={"nco"},
description="Increases Battlecruiser movement speed."),
#Buildings
ItemNames.BUNKER:
ItemData(400 + SC2WOL_ITEM_ID_OFFSET, "Building", 0, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Defensive structure. Able to load infantry units, giving them +1 range to their attacks."),
ItemNames.MISSILE_TURRET:
ItemData(401 + SC2WOL_ITEM_ID_OFFSET, "Building", 1, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Anti-air defensive structure."),
ItemNames.SENSOR_TOWER:
ItemData(402 + SC2WOL_ITEM_ID_OFFSET, "Building", 2, SC2Race.TERRAN,
description="Reveals locations of enemy units at long range."),
ItemNames.WAR_PIGS:
ItemData(500 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 0, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Mercenary Marines"),
ItemNames.DEVIL_DOGS:
ItemData(501 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 1, SC2Race.TERRAN,
classification=ItemClassification.filler,
description="Mercenary Firebats"),
ItemNames.HAMMER_SECURITIES:
ItemData(502 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 2, SC2Race.TERRAN,
description="Mercenary Marauders"),
ItemNames.SPARTAN_COMPANY:
ItemData(503 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 3, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Mercenary Goliaths"),
ItemNames.SIEGE_BREAKERS:
ItemData(504 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 4, SC2Race.TERRAN,
description="Mercenary Siege Tanks"),
ItemNames.HELS_ANGELS:
ItemData(505 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 5, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Mercenary Vikings"),
ItemNames.DUSK_WINGS:
ItemData(506 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 6, SC2Race.TERRAN,
description="Mercenary Banshees"),
ItemNames.JACKSONS_REVENGE:
ItemData(507 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 7, SC2Race.TERRAN,
description="Mercenary Battlecruiser"),
ItemNames.SKIBIS_ANGELS:
ItemData(508 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 8, SC2Race.TERRAN,
origin={"ext"},
description="Mercenary Medics"),
ItemNames.DEATH_HEADS:
ItemData(509 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 9, SC2Race.TERRAN,
origin={"ext"},
description="Mercenary Reapers"),
ItemNames.WINGED_NIGHTMARES:
ItemData(510 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 10, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"ext"},
description="Mercenary Wraiths"),
ItemNames.MIDNIGHT_RIDERS:
ItemData(511 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 11, SC2Race.TERRAN,
origin={"ext"},
description="Mercenary Liberators"),
ItemNames.BRYNHILDS:
ItemData(512 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 12, SC2Race.TERRAN,
classification=ItemClassification.progression, origin={"ext"},
description="Mercenary Valkyries"),
ItemNames.JOTUN:
ItemData(513 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 13, SC2Race.TERRAN,
origin={"ext"},
description="Mercenary Thor"),
ItemNames.ULTRA_CAPACITORS:
ItemData(600 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 0, SC2Race.TERRAN,
description="Increases attack speed of units by 5% per weapon upgrade."),
ItemNames.VANADIUM_PLATING:
ItemData(601 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 1, SC2Race.TERRAN,
description="Increases the life of units by 5% per armor upgrade."),
ItemNames.ORBITAL_DEPOTS:
ItemData(602 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 2, SC2Race.TERRAN,
description="Supply depots are built instantly."),
ItemNames.MICRO_FILTERING:
ItemData(603 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 3, SC2Race.TERRAN,
description="Refineries produce Vespene gas 25% faster."),
ItemNames.AUTOMATED_REFINERY:
ItemData(604 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 4, SC2Race.TERRAN,
description="Eliminates the need for SCVs in vespene gas production."),
ItemNames.COMMAND_CENTER_REACTOR:
ItemData(605 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 5, SC2Race.TERRAN,
description="Command Centers can train two SCVs at once."),
ItemNames.RAVEN:
ItemData(606 + SC2WOL_ITEM_ID_OFFSET, "Unit", 22, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Aerial Caster unit."),
ItemNames.SCIENCE_VESSEL:
ItemData(607 + SC2WOL_ITEM_ID_OFFSET, "Unit", 23, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Aerial Caster unit. Can repair mechanical units."),
ItemNames.TECH_REACTOR:
ItemData(608 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 6, SC2Race.TERRAN,
description="Merges Tech Labs and Reactors into one add on structure to provide both functions."),
ItemNames.ORBITAL_STRIKE:
ItemData(609 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 7, SC2Race.TERRAN,
description="Trained units from Barracks are instantly deployed on rally point."),
ItemNames.BUNKER_SHRIKE_TURRET:
ItemData(610 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 6, SC2Race.TERRAN,
parent_item=ItemNames.BUNKER,
description="Adds an automated turret to Bunkers."),
ItemNames.BUNKER_FORTIFIED_BUNKER:
ItemData(611 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 7, SC2Race.TERRAN,
parent_item=ItemNames.BUNKER,
description="Bunkers have more life."),
ItemNames.PLANETARY_FORTRESS:
ItemData(612 + SC2WOL_ITEM_ID_OFFSET, "Building", 3, SC2Race.TERRAN,
classification=ItemClassification.progression,
description=inspect.cleandoc(
"""
Allows Command Centers to upgrade into a defensive structure with a turret and additional armor.
Planetary Fortresses cannot Lift Off, or cast Orbital Command spells.
"""
)),
ItemNames.PERDITION_TURRET:
ItemData(613 + SC2WOL_ITEM_ID_OFFSET, "Building", 4, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Automated defensive turret. Burrows down while no enemies are nearby."),
ItemNames.PREDATOR:
ItemData(614 + SC2WOL_ITEM_ID_OFFSET, "Unit", 24, SC2Race.TERRAN,
classification=ItemClassification.filler,
description="Anti-infantry specialist that deals area damage with each attack."),
ItemNames.HERCULES:
ItemData(615 + SC2WOL_ITEM_ID_OFFSET, "Unit", 25, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Massive transport ship."),
ItemNames.CELLULAR_REACTOR:
ItemData(616 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 8, SC2Race.TERRAN,
description="All Terran spellcasters get +100 starting and maximum energy."),
ItemNames.PROGRESSIVE_REGENERATIVE_BIO_STEEL:
ItemData(617 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 4, SC2Race.TERRAN, quantity=3,
classification= ItemClassification.progression,
description=inspect.cleandoc(
"""
Allows Terran mechanical units to regenerate health while not in combat.
Each level increases life regeneration speed.
"""
)),
ItemNames.HIVE_MIND_EMULATOR:
ItemData(618 + SC2WOL_ITEM_ID_OFFSET, "Building", 5, SC2Race.TERRAN,
ItemClassification.progression,
description="Defensive structure. Can permanently Mind Control Zerg units."),
ItemNames.PSI_DISRUPTER:
ItemData(619 + SC2WOL_ITEM_ID_OFFSET, "Building", 6, SC2Race.TERRAN,
classification=ItemClassification.progression,
description="Defensive structure. Slows the attack and movement speeds of all nearby Zerg units."),
ItemNames.STRUCTURE_ARMOR:
ItemData(620 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 9, SC2Race.TERRAN,
description="Increases armor of all Terran structures by 2."),
ItemNames.HI_SEC_AUTO_TRACKING:
ItemData(621 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 10, SC2Race.TERRAN,
description="Increases attack range of all Terran structures by 1."),
ItemNames.ADVANCED_OPTICS:
ItemData(622 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 11, SC2Race.TERRAN,
description="Increases attack range of all Terran mechanical units by 1."),
ItemNames.ROGUE_FORCES:
ItemData(623 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 12, SC2Race.TERRAN,
description="Mercenary calldowns are no longer limited by charges."),
ItemNames.ZEALOT:
ItemData(700 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Powerful melee warrior. Can use the charge ability."),
ItemNames.STALKER:
ItemData(701 + SC2WOL_ITEM_ID_OFFSET, "Unit", 1, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Ranged attack strider. Can use the Blink ability."),
ItemNames.HIGH_TEMPLAR:
ItemData(702 + SC2WOL_ITEM_ID_OFFSET, "Unit", 2, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Potent psionic master. Can use the Feedback and Psionic Storm abilities. Can merge into an Archon."),
ItemNames.DARK_TEMPLAR:
ItemData(703 + SC2WOL_ITEM_ID_OFFSET, "Unit", 3, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Deadly warrior-assassin. Permanently cloaked. Can use the Shadow Fury ability."),
ItemNames.IMMORTAL:
ItemData(704 + SC2WOL_ITEM_ID_OFFSET, "Unit", 4, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Assault strider. Can use Barrier to absorb damage."),
ItemNames.COLOSSUS:
ItemData(705 + SC2WOL_ITEM_ID_OFFSET, "Unit", 5, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Battle strider with a powerful area attack. Can walk up and down cliffs. Attacks set fire to the ground, dealing extra damage to enemies over time."),
ItemNames.PHOENIX:
ItemData(706 + SC2WOL_ITEM_ID_OFFSET, "Unit", 6, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Air superiority starfighter. Can use Graviton Beam and Phasing Armor abilities."),
ItemNames.VOID_RAY:
ItemData(707 + SC2WOL_ITEM_ID_OFFSET, "Unit", 7, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Surgical strike craft. Has the Prismatic Alignment and Prismatic Range abilities."),
ItemNames.CARRIER:
ItemData(708 + SC2WOL_ITEM_ID_OFFSET, "Unit", 8, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"wol", "lotv"},
description="Capital ship. Builds and launches Interceptors that attack enemy targets. Repair Drones heal nearby mechanical units."),
# Filler items to fill remaining spots
ItemNames.STARTING_MINERALS:
ItemData(800 + SC2WOL_ITEM_ID_OFFSET, "Minerals", 15, SC2Race.ANY, quantity=0,
classification=ItemClassification.filler,
description="Increases the starting minerals for all missions."),
ItemNames.STARTING_VESPENE:
ItemData(801 + SC2WOL_ITEM_ID_OFFSET, "Vespene", 15, SC2Race.ANY, quantity=0,
classification=ItemClassification.filler,
description="Increases the starting vespene for all missions."),
ItemNames.STARTING_SUPPLY:
ItemData(802 + SC2WOL_ITEM_ID_OFFSET, "Supply", 2, SC2Race.ANY, quantity=0,
classification=ItemClassification.filler,
description="Increases the starting supply for all missions."),
# This item is used to "remove" location from the game. Never placed unless plando'd
ItemNames.NOTHING:
ItemData(803 + SC2WOL_ITEM_ID_OFFSET, "Nothing Group", 2, SC2Race.ANY, quantity=0,
classification=ItemClassification.trap,
description="Does nothing. Used to remove a location from the game."),
# Nova gear
ItemNames.NOVA_GHOST_VISOR:
ItemData(900 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 0, SC2Race.TERRAN, origin={"nco"},
description="Reveals the locations of enemy units in the fog of war around Nova. Can detect cloaked units."),
ItemNames.NOVA_RANGEFINDER_OCULUS:
ItemData(901 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 1, SC2Race.TERRAN, origin={"nco"},
description="Increaases Nova's vision range and non-melee weapon attack range by 2. Also increases range of melee weapons by 1."),
ItemNames.NOVA_DOMINATION:
ItemData(902 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 2, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to mind-control a target enemy unit."),
ItemNames.NOVA_BLINK:
ItemData(903 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 3, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to teleport a short distance and cloak for 10s."),
ItemNames.NOVA_PROGRESSIVE_STEALTH_SUIT_MODULE:
ItemData(904 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade 2", 0, SC2Race.TERRAN, quantity=2, origin={"nco"},
classification=ItemClassification.progression,
description=inspect.cleandoc(
"""
Level 1: Gives Nova the ability to cloak.
Level 2: Nova is permanently cloaked.
"""
)),
ItemNames.NOVA_ENERGY_SUIT_MODULE:
ItemData(905 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 4, SC2Race.TERRAN, origin={"nco"},
description="Increases Nova's maximum energy and energy regeneration rate."),
ItemNames.NOVA_ARMORED_SUIT_MODULE:
ItemData(906 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 5, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Increases Nova's health by 100 and armour by 1. Nova also regenerates life quickly out of combat."),
ItemNames.NOVA_JUMP_SUIT_MODULE:
ItemData(907 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 6, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Increases Nova's movement speed and allows her to jump up and down cliffs."),
ItemNames.NOVA_C20A_CANISTER_RIFLE:
ItemData(908 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 7, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Allows Nova to equip the C20A Canister Rifle, which has a ranged attack and allows Nova to cast Snipe."),
ItemNames.NOVA_HELLFIRE_SHOTGUN:
ItemData(909 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 8, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Allows Nova to equip the Hellfire Shotgun, which has a short-range area attack in a cone and allows Nova to cast Penetrating Blast."),
ItemNames.NOVA_PLASMA_RIFLE:
ItemData(910 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 9, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Allows Nova to equip the Plasma Rifle, which has a rapidfire ranged attack and allows Nova to cast Plasma Shot."),
ItemNames.NOVA_MONOMOLECULAR_BLADE:
ItemData(911 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 10, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Allows Nova to equip the Monomolecular Blade, which has a melee attack and allows Nova to cast Dash Attack."),
ItemNames.NOVA_BLAZEFIRE_GUNBLADE:
ItemData(912 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 11, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Allows Nova to equip the Blazefire Gunblade, which has a melee attack and allows Nova to cast Fury of One."),
ItemNames.NOVA_STIM_INFUSION:
ItemData(913 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 12, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to heal herself and temporarily increase her movement and attack speeds."),
ItemNames.NOVA_PULSE_GRENADES:
ItemData(914 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 13, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to throw a grenade dealing large damage in an area."),
ItemNames.NOVA_FLASHBANG_GRENADES:
ItemData(915 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 14, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to throw a grenade to stun enemies and disable detection in a large area."),
ItemNames.NOVA_IONIC_FORCE_FIELD:
ItemData(916 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 15, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to shield herself temporarily."),
ItemNames.NOVA_HOLO_DECOY:
ItemData(917 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 16, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to summon a decoy unit which enemies will prefer to target and takes reduced damage."),
ItemNames.NOVA_NUKE:
ItemData(918 + SC2WOL_ITEM_ID_OFFSET, "Nova Gear", 17, SC2Race.TERRAN, origin={"nco"},
classification=ItemClassification.progression,
description="Gives Nova the ability to launch tactical nukes built from the Shadow Ops."),
# HotS
ItemNames.ZERGLING:
ItemData(0 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 0, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Fast inexpensive melee attacker. Hatches in pairs from a single larva. Can morph into a Baneling."),
ItemNames.SWARM_QUEEN:
ItemData(1 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 1, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Ranged support caster. Can use the Spawn Creep Tumor and Rapid Transfusion abilities."),
ItemNames.ROACH:
ItemData(2 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 2, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Durable short ranged attacker. Regenerates life quickly when burrowed."),
ItemNames.HYDRALISK:
ItemData(3 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 3, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="High-damage generalist ranged attacker."),
ItemNames.ZERGLING_BANELING_ASPECT:
ItemData(4 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 5, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Anti-ground suicide unit. Does damage over a small area on death."),
ItemNames.ABERRATION:
ItemData(5 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 5, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Durable melee attacker that deals heavy damage and can walk over other units."),
ItemNames.MUTALISK:
ItemData(6 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 6, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Fragile flying attacker. Attacks bounce between targets."),
ItemNames.SWARM_HOST:
ItemData(7 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 7, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Siege unit that attacks by rooting in place and continually spawning Locusts."),
ItemNames.INFESTOR:
ItemData(8 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 8, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Support caster that can move while burrowed. Can use the Fungal Growth, Parasitic Domination, and Consumption abilities."),
ItemNames.ULTRALISK:
ItemData(9 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 9, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Massive melee attacker. Has an area-damage cleave attack."),
ItemNames.SPORE_CRAWLER:
ItemData(10 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 10, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Anti-air defensive structure that can detect cloaked units."),
ItemNames.SPINE_CRAWLER:
ItemData(11 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 11, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"hots"},
description="Anti-ground defensive structure."),
ItemNames.CORRUPTOR:
ItemData(12 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 12, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"ext"},
description="Anti-air flying attacker specializing in taking down enemy capital ships."),
ItemNames.SCOURGE:
ItemData(13 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 13, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"bw", "ext"},
description="Flying anti-air suicide unit. Hatches in pairs from a single larva."),
ItemNames.BROOD_QUEEN:
ItemData(14 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 4, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"bw", "ext"},
description="Flying support caster. Can cast the Ocular Symbiote and Spawn Broodlings abilities."),
ItemNames.DEFILER:
ItemData(15 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 14, SC2Race.ZERG,
classification=ItemClassification.progression, origin={"bw"},
description="Support caster. Can use the Dark Swarm, Consume, and Plague abilities."),
ItemNames.PROGRESSIVE_ZERG_MELEE_ATTACK: ItemData(100 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 0, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_MISSILE_ATTACK: ItemData(101 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 2, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_GROUND_CARAPACE: ItemData(102 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 4, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_FLYER_ATTACK: ItemData(103 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 6, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_FLYER_CARAPACE: ItemData(104 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 8, SC2Race.ZERG, quantity=3, origin={"hots"}),
# Upgrade bundle 'number' values are used as indices to get affected 'number's
ItemNames.PROGRESSIVE_ZERG_WEAPON_UPGRADE: ItemData(105 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 6, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_ARMOR_UPGRADE: ItemData(106 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 7, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_GROUND_UPGRADE: ItemData(107 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 8, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_FLYER_UPGRADE: ItemData(108 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 9, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE: ItemData(109 + SC2HOTS_ITEM_ID_OFFSET, "Upgrade", 10, SC2Race.ZERG, quantity=3, origin={"hots"}),
ItemNames.ZERGLING_HARDENED_CARAPACE:
ItemData(200 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 0, SC2Race.ZERG, parent_item=ItemNames.ZERGLING,
origin={"hots"}, description="Increases Zergling health by +10."),
ItemNames.ZERGLING_ADRENAL_OVERLOAD:
ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 1, SC2Race.ZERG, parent_item=ItemNames.ZERGLING,
origin={"hots"}, description="Increases Zergling attack speed."),
ItemNames.ZERGLING_METABOLIC_BOOST:
ItemData(202 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 2, SC2Race.ZERG, parent_item=ItemNames.ZERGLING,
origin={"hots"}, classification=ItemClassification.filler,
description="Increases Zergling movement speed."),
ItemNames.ROACH_HYDRIODIC_BILE:
ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 3, SC2Race.ZERG, parent_item=ItemNames.ROACH,
origin={"hots"}, description="Roaches deal +8 damage to light targets."),
ItemNames.ROACH_ADAPTIVE_PLATING:
ItemData(204 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 4, SC2Race.ZERG, parent_item=ItemNames.ROACH,
origin={"hots"}, description="Roaches gain +3 armour when their life is below 50%."),
ItemNames.ROACH_TUNNELING_CLAWS:
ItemData(205 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 5, SC2Race.ZERG, parent_item=ItemNames.ROACH,
origin={"hots"}, classification=ItemClassification.filler,
description="Allows Roaches to move while burrowed."),
ItemNames.HYDRALISK_FRENZY:
ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 6, SC2Race.ZERG, parent_item=ItemNames.HYDRALISK,
origin={"hots"},
description="Allows Hydralisks to use the Frenzy ability, which increases their attack speed by 50%."),
ItemNames.HYDRALISK_ANCILLARY_CARAPACE:
ItemData(207 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 7, SC2Race.ZERG, parent_item=ItemNames.HYDRALISK,
origin={"hots"}, classification=ItemClassification.filler, description="Hydralisks gain +20 health."),
ItemNames.HYDRALISK_GROOVED_SPINES:
ItemData(208 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 8, SC2Race.ZERG, parent_item=ItemNames.HYDRALISK,
origin={"hots"}, description="Hydralisks gain +1 range."),
ItemNames.BANELING_CORROSIVE_ACID:
ItemData(209 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 9, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"hots"},
description="Increases the damage banelings deal to their primary target. Splash damage remains the same."),
ItemNames.BANELING_RUPTURE:
ItemData(210 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 10, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"hots"},
classification=ItemClassification.filler,
description="Increases the splash radius of baneling attacks."),
ItemNames.BANELING_REGENERATIVE_ACID:
ItemData(211 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 11, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"hots"},
classification=ItemClassification.filler,
description="Banelings will heal nearby friendly units when they explode."),
ItemNames.MUTALISK_VICIOUS_GLAIVE:
ItemData(212 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 12, SC2Race.ZERG, parent_item=ItemNames.MUTALISK,
origin={"hots"}, description="Mutalisks attacks will bounce an additional 3 times."),
ItemNames.MUTALISK_RAPID_REGENERATION:
ItemData(213 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 13, SC2Race.ZERG, parent_item=ItemNames.MUTALISK,
origin={"hots"}, description="Mutalisks will regenerate quickly when out of combat."),
ItemNames.MUTALISK_SUNDERING_GLAIVE:
ItemData(214 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 14, SC2Race.ZERG, parent_item=ItemNames.MUTALISK,
origin={"hots"}, description="Mutalisks deal increased damage to their primary target."),
ItemNames.SWARM_HOST_BURROW:
ItemData(215 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 15, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"hots"}, classification=ItemClassification.filler,
description="Allows Swarm Hosts to burrow instead of root to spawn locusts."),
ItemNames.SWARM_HOST_RAPID_INCUBATION:
ItemData(216 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 16, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"hots"}, description="Swarm Hosts will spawn locusts 20% faster."),
ItemNames.SWARM_HOST_PRESSURIZED_GLANDS:
ItemData(217 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 17, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"hots"}, classification=ItemClassification.progression,
description="Allows Swarm Host Locusts to attack air targets."),
ItemNames.ULTRALISK_BURROW_CHARGE:
ItemData(218 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 18, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"hots"},
description="Allows Ultralisks to burrow and charge at enemy units, knocking back and stunning units when it emerges."),
ItemNames.ULTRALISK_TISSUE_ASSIMILATION:
ItemData(219 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 19, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"hots"}, description="Ultralisks recover health when they deal damage."),
ItemNames.ULTRALISK_MONARCH_BLADES:
ItemData(220 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 20, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"hots"}, description="Ultralisks gain increased splash damage."),
ItemNames.CORRUPTOR_CAUSTIC_SPRAY:
ItemData(221 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 21, SC2Race.ZERG, parent_item=ItemNames.CORRUPTOR,
origin={"ext"},
description="Allows Corruptors to use the Caustic Spray ability, which deals ramping damage to buildings over time."),
ItemNames.CORRUPTOR_CORRUPTION:
ItemData(222 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 22, SC2Race.ZERG, parent_item=ItemNames.CORRUPTOR,
origin={"ext"},
description="Allows Corruptors to use the Corruption ability, which causes a target enemy unit to take increased damage."),
ItemNames.SCOURGE_VIRULENT_SPORES:
ItemData(223 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 23, SC2Race.ZERG, parent_item=ItemNames.SCOURGE,
origin={"ext"}, description="Scourge will deal splash damage."),
ItemNames.SCOURGE_RESOURCE_EFFICIENCY:
ItemData(224 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 24, SC2Race.ZERG, parent_item=ItemNames.SCOURGE,
origin={"ext"}, classification=ItemClassification.progression,
description="Reduces the cost of Scourge by 50 gas per egg."),
ItemNames.SCOURGE_SWARM_SCOURGE:
ItemData(225 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 25, SC2Race.ZERG, parent_item=ItemNames.SCOURGE,
origin={"ext"}, description="An extra Scourge will be built from each egg at no additional cost."),
ItemNames.ZERGLING_SHREDDING_CLAWS:
ItemData(226 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 26, SC2Race.ZERG, parent_item=ItemNames.ZERGLING,
origin={"ext"}, description="Zergling attacks will temporarily reduce their target's armour to 0."),
ItemNames.ROACH_GLIAL_RECONSTITUTION:
ItemData(227 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 27, SC2Race.ZERG, parent_item=ItemNames.ROACH,
origin={"ext"}, description="Increases Roach movement speed."),
ItemNames.ROACH_ORGANIC_CARAPACE:
ItemData(228 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 28, SC2Race.ZERG, parent_item=ItemNames.ROACH,
origin={"ext"}, description="Increases Roach health by +25."),
ItemNames.HYDRALISK_MUSCULAR_AUGMENTS:
ItemData(229 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 1", 29, SC2Race.ZERG, parent_item=ItemNames.HYDRALISK,
origin={"bw"}, description="Increases Hydralisk movement speed."),
ItemNames.HYDRALISK_RESOURCE_EFFICIENCY:
ItemData(230 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 0, SC2Race.ZERG, parent_item=ItemNames.HYDRALISK,
origin={"bw"}, description="Reduces Hydralisk resource cost by 25/25 and supply cost by 1."),
ItemNames.BANELING_CENTRIFUGAL_HOOKS:
ItemData(231 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 1, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"ext"},
description="Increases the movement speed of Banelings."),
ItemNames.BANELING_TUNNELING_JAWS:
ItemData(232 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 2, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"ext"},
description="Allows Banelings to move while burrowed."),
ItemNames.BANELING_RAPID_METAMORPH:
ItemData(233 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 3, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"ext"}, description="Banelings morph faster."),
ItemNames.MUTALISK_SEVERING_GLAIVE:
ItemData(234 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 4, SC2Race.ZERG, parent_item=ItemNames.MUTALISK,
origin={"ext"}, description="Mutalisk bounce attacks will deal full damage."),
ItemNames.MUTALISK_AERODYNAMIC_GLAIVE_SHAPE:
ItemData(235 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 5, SC2Race.ZERG, parent_item=ItemNames.MUTALISK,
origin={"ext"}, description="Increases the attack range of Mutalisks by 2."),
ItemNames.SWARM_HOST_LOCUST_METABOLIC_BOOST:
ItemData(236 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 6, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"ext"}, classification=ItemClassification.filler,
description="Increases Locust movement speed."),
ItemNames.SWARM_HOST_ENDURING_LOCUSTS:
ItemData(237 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 7, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"ext"}, description="Increases the duration of Swarm Hosts' Locusts by 10s."),
ItemNames.SWARM_HOST_ORGANIC_CARAPACE:
ItemData(238 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 8, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"ext"}, description="Increases Swarm Host health by +40."),
ItemNames.SWARM_HOST_RESOURCE_EFFICIENCY:
ItemData(239 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 9, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"ext"}, description="Reduces Swarm Host resource cost by 100/25."),
ItemNames.ULTRALISK_ANABOLIC_SYNTHESIS:
ItemData(240 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 10, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"bw"}, classification=ItemClassification.filler),
ItemNames.ULTRALISK_CHITINOUS_PLATING:
ItemData(241 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 11, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"bw"}),
ItemNames.ULTRALISK_ORGANIC_CARAPACE:
ItemData(242 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 12, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"ext"}),
ItemNames.ULTRALISK_RESOURCE_EFFICIENCY:
ItemData(243 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 13, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"bw"}),
ItemNames.DEVOURER_CORROSIVE_SPRAY:
ItemData(244 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 14, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}),
ItemNames.DEVOURER_GAPING_MAW:
ItemData(245 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 15, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}),
ItemNames.DEVOURER_IMPROVED_OSMOSIS:
ItemData(246 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 16, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"},
classification=ItemClassification.filler),
ItemNames.DEVOURER_PRESCIENT_SPORES:
ItemData(247 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 17, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}),
ItemNames.GUARDIAN_PROLONGED_DISPERSION:
ItemData(248 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 18, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}),
ItemNames.GUARDIAN_PRIMAL_ADAPTATION:
ItemData(249 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 19, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}),
ItemNames.GUARDIAN_SORONAN_ACID:
ItemData(250 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 20, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}),
ItemNames.IMPALER_ADAPTIVE_TALONS:
ItemData(251 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 21, SC2Race.ZERG,
parent_item=ItemNames.HYDRALISK_IMPALER_ASPECT, origin={"ext"},
classification=ItemClassification.filler),
ItemNames.IMPALER_SECRETION_GLANDS:
ItemData(252 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 22, SC2Race.ZERG,
parent_item=ItemNames.HYDRALISK_IMPALER_ASPECT, origin={"ext"}),
ItemNames.IMPALER_HARDENED_TENTACLE_SPINES:
ItemData(253 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 23, SC2Race.ZERG,
parent_item=ItemNames.HYDRALISK_IMPALER_ASPECT, origin={"ext"}),
ItemNames.LURKER_SEISMIC_SPINES:
ItemData(254 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 24, SC2Race.ZERG,
parent_item=ItemNames.HYDRALISK_LURKER_ASPECT, origin={"ext"}),
ItemNames.LURKER_ADAPTED_SPINES:
ItemData(255 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 25, SC2Race.ZERG,
parent_item=ItemNames.HYDRALISK_LURKER_ASPECT, origin={"ext"}),
ItemNames.RAVAGER_POTENT_BILE:
ItemData(256 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 26, SC2Race.ZERG,
parent_item=ItemNames.ROACH_RAVAGER_ASPECT, origin={"ext"}),
ItemNames.RAVAGER_BLOATED_BILE_DUCTS:
ItemData(257 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 27, SC2Race.ZERG,
parent_item=ItemNames.ROACH_RAVAGER_ASPECT, origin={"ext"}),
ItemNames.RAVAGER_DEEP_TUNNEL:
ItemData(258 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 28, SC2Race.ZERG,
parent_item=ItemNames.ROACH_RAVAGER_ASPECT, origin={"ext"}),
ItemNames.VIPER_PARASITIC_BOMB:
ItemData(259 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 2", 29, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_VIPER_ASPECT, origin={"ext"}),
ItemNames.VIPER_PARALYTIC_BARBS:
ItemData(260 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 0, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_VIPER_ASPECT, origin={"ext"}),
ItemNames.VIPER_VIRULENT_MICROBES:
ItemData(261 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 1, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_VIPER_ASPECT, origin={"ext"}),
ItemNames.BROOD_LORD_POROUS_CARTILAGE:
ItemData(262 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 2, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}),
ItemNames.BROOD_LORD_EVOLVED_CARAPACE:
ItemData(263 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 3, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}),
ItemNames.BROOD_LORD_SPLITTER_MITOSIS:
ItemData(264 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 4, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}),
ItemNames.BROOD_LORD_RESOURCE_EFFICIENCY:
ItemData(265 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 5, SC2Race.ZERG,
parent_item=ItemNames.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}),
ItemNames.INFESTOR_INFESTED_TERRAN:
ItemData(266 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 6, SC2Race.ZERG, parent_item=ItemNames.INFESTOR,
origin={"ext"}),
ItemNames.INFESTOR_MICROBIAL_SHROUD:
ItemData(267 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 7, SC2Race.ZERG, parent_item=ItemNames.INFESTOR,
origin={"ext"}),
ItemNames.SWARM_QUEEN_SPAWN_LARVAE:
ItemData(268 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 8, SC2Race.ZERG, parent_item=ItemNames.SWARM_QUEEN,
origin={"ext"}),
ItemNames.SWARM_QUEEN_DEEP_TUNNEL:
ItemData(269 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 9, SC2Race.ZERG, parent_item=ItemNames.SWARM_QUEEN,
origin={"ext"}),
ItemNames.SWARM_QUEEN_ORGANIC_CARAPACE:
ItemData(270 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 10, SC2Race.ZERG, parent_item=ItemNames.SWARM_QUEEN,
origin={"ext"}, classification=ItemClassification.filler),
ItemNames.SWARM_QUEEN_BIO_MECHANICAL_TRANSFUSION:
ItemData(271 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 11, SC2Race.ZERG, parent_item=ItemNames.SWARM_QUEEN,
origin={"ext"}),
ItemNames.SWARM_QUEEN_RESOURCE_EFFICIENCY:
ItemData(272 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 12, SC2Race.ZERG, parent_item=ItemNames.SWARM_QUEEN,
origin={"ext"}),
ItemNames.SWARM_QUEEN_INCUBATOR_CHAMBER:
ItemData(273 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 13, SC2Race.ZERG, parent_item=ItemNames.SWARM_QUEEN,
origin={"ext"}),
ItemNames.BROOD_QUEEN_FUNGAL_GROWTH:
ItemData(274 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 14, SC2Race.ZERG, parent_item=ItemNames.BROOD_QUEEN,
origin={"ext"}),
ItemNames.BROOD_QUEEN_ENSNARE:
ItemData(275 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 15, SC2Race.ZERG, parent_item=ItemNames.BROOD_QUEEN,
origin={"ext"}),
ItemNames.BROOD_QUEEN_ENHANCED_MITOCHONDRIA:
ItemData(276 + SC2HOTS_ITEM_ID_OFFSET, "Mutation 3", 16, SC2Race.ZERG, parent_item=ItemNames.BROOD_QUEEN,
origin={"ext"}),
ItemNames.ZERGLING_RAPTOR_STRAIN:
ItemData(300 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 0, SC2Race.ZERG, parent_item=ItemNames.ZERGLING,
origin={"hots"},
description="Allows Zerglings to jump up and down cliffs and leap onto enemies. Also increases Zergling attack damage by 2."),
ItemNames.ZERGLING_SWARMLING_STRAIN:
ItemData(301 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 1, SC2Race.ZERG, parent_item=ItemNames.ZERGLING,
origin={"hots"},
description="Zerglings will spawn instantly and with an extra Zergling per egg at no additional cost."),
ItemNames.ROACH_VILE_STRAIN:
ItemData(302 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 2, SC2Race.ZERG, parent_item=ItemNames.ROACH, origin={"hots"},
description="Roach attacks will slow the movement and attack speed of enemies."),
ItemNames.ROACH_CORPSER_STRAIN:
ItemData(303 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 3, SC2Race.ZERG, parent_item=ItemNames.ROACH, origin={"hots"},
description="Units killed after being attacked by Roaches will spawn 2 Roachlings."),
ItemNames.HYDRALISK_IMPALER_ASPECT:
ItemData(304 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 0, SC2Race.ZERG, origin={"hots"},
classification=ItemClassification.progression,
description="Allows Hydralisks to morph into Impalers."),
ItemNames.HYDRALISK_LURKER_ASPECT:
ItemData(305 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 1, SC2Race.ZERG, origin={"hots"},
classification=ItemClassification.progression, description="Allows Hydralisks to morph into Lurkers."),
ItemNames.BANELING_SPLITTER_STRAIN:
ItemData(306 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 6, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"hots"},
description="Banelings will split into two smaller Splitterlings on exploding."),
ItemNames.BANELING_HUNTER_STRAIN:
ItemData(307 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 7, SC2Race.ZERG,
parent_item=ItemNames.ZERGLING_BANELING_ASPECT, origin={"hots"},
description="Allows Banelings to jump up and down cliffs and leap onto enemies."),
ItemNames.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT:
ItemData(308 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 2, SC2Race.ZERG, origin={"hots"},
classification=ItemClassification.progression,
description="Allows Mutalisks and Corruptors to morph into Brood Lords."),
ItemNames.MUTALISK_CORRUPTOR_VIPER_ASPECT:
ItemData(309 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 3, SC2Race.ZERG, origin={"hots"},
classification=ItemClassification.progression,
description="Allows Mutalisks and Corruptors to morph into Vipers."),
ItemNames.SWARM_HOST_CARRION_STRAIN:
ItemData(310 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 10, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"hots"}, description="Swarm Hosts will spawn Flying Locusts."),
ItemNames.SWARM_HOST_CREEPER_STRAIN:
ItemData(311 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 11, SC2Race.ZERG, parent_item=ItemNames.SWARM_HOST,
origin={"hots"}, classification=ItemClassification.filler,
description="Allows Swarm Hosts to teleport to any creep on the map in vision. Swarm Hosts will spread creep around them when rooted or burrowed."),
ItemNames.ULTRALISK_NOXIOUS_STRAIN:
ItemData(312 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 12, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"hots"}, classification=ItemClassification.filler,
description="Ultralisks will periodically spread poison, damaging nearby biological enemies."),
ItemNames.ULTRALISK_TORRASQUE_STRAIN:
ItemData(313 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 13, SC2Race.ZERG, parent_item=ItemNames.ULTRALISK,
origin={"hots"}, description="Ultralisks will revive after being killed."),
ItemNames.KERRIGAN_KINETIC_BLAST: ItemData(400 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 0, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_HEROIC_FORTITUDE: ItemData(401 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 1, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEAPING_STRIKE: ItemData(402 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 2, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_CRUSHING_GRIP: ItemData(403 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 3, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_CHAIN_REACTION: ItemData(404 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 4, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_PSIONIC_SHIFT: ItemData(405 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 5, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_ZERGLING_RECONSTITUTION: ItemData(406 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 0, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.filler),
ItemNames.KERRIGAN_IMPROVED_OVERLORDS: ItemData(407 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 1, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_AUTOMATED_EXTRACTORS: ItemData(408 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 2, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_WILD_MUTATION: ItemData(409 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 6, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_SPAWN_BANELINGS: ItemData(410 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 7, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_MEND: ItemData(411 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 8, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_TWIN_DRONES: ItemData(412 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 3, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_MALIGNANT_CREEP: ItemData(413 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 4, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_VESPENE_EFFICIENCY: ItemData(414 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 5, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_INFEST_BROODLINGS: ItemData(415 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 9, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_FURY: ItemData(416 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 10, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_ABILITY_EFFICIENCY: ItemData(417 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 11, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_APOCALYPSE: ItemData(418 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 12, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_SPAWN_LEVIATHAN: ItemData(419 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 13, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
ItemNames.KERRIGAN_DROP_PODS: ItemData(420 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 14, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression),
# Handled separately from other abilities
ItemNames.KERRIGAN_PRIMAL_FORM: ItemData(421 + SC2HOTS_ITEM_ID_OFFSET, "Primal Form", 0, SC2Race.ZERG, origin={"hots"}),
ItemNames.KERRIGAN_LEVELS_10: ItemData(500 + SC2HOTS_ITEM_ID_OFFSET, "Level", 10, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_9: ItemData(501 + SC2HOTS_ITEM_ID_OFFSET, "Level", 9, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_8: ItemData(502 + SC2HOTS_ITEM_ID_OFFSET, "Level", 8, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_7: ItemData(503 + SC2HOTS_ITEM_ID_OFFSET, "Level", 7, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_6: ItemData(504 + SC2HOTS_ITEM_ID_OFFSET, "Level", 6, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_5: ItemData(505 + SC2HOTS_ITEM_ID_OFFSET, "Level", 5, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_4: ItemData(506 + SC2HOTS_ITEM_ID_OFFSET, "Level", 4, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing),
ItemNames.KERRIGAN_LEVELS_3: ItemData(507 + SC2HOTS_ITEM_ID_OFFSET, "Level", 3, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing),
ItemNames.KERRIGAN_LEVELS_2: ItemData(508 + SC2HOTS_ITEM_ID_OFFSET, "Level", 2, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing),
ItemNames.KERRIGAN_LEVELS_1: ItemData(509 + SC2HOTS_ITEM_ID_OFFSET, "Level", 1, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing),
ItemNames.KERRIGAN_LEVELS_14: ItemData(510 + SC2HOTS_ITEM_ID_OFFSET, "Level", 14, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_35: ItemData(511 + SC2HOTS_ITEM_ID_OFFSET, "Level", 35, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
ItemNames.KERRIGAN_LEVELS_70: ItemData(512 + SC2HOTS_ITEM_ID_OFFSET, "Level", 70, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression),
# Zerg Mercs
ItemNames.INFESTED_MEDICS: ItemData(600 + SC2HOTS_ITEM_ID_OFFSET, "Mercenary", 0, SC2Race.ZERG, origin={"ext"}),
ItemNames.INFESTED_SIEGE_TANKS: ItemData(601 + SC2HOTS_ITEM_ID_OFFSET, "Mercenary", 1, SC2Race.ZERG, origin={"ext"}),
ItemNames.INFESTED_BANSHEES: ItemData(602 + SC2HOTS_ITEM_ID_OFFSET, "Mercenary", 2, SC2Race.ZERG, origin={"ext"}),
# Misc Upgrades
ItemNames.OVERLORD_VENTRAL_SACS: ItemData(700 + SC2HOTS_ITEM_ID_OFFSET, "Evolution Pit", 6, SC2Race.ZERG, origin={"bw"}),
# Morphs
ItemNames.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT: ItemData(800 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 6, SC2Race.ZERG, origin={"bw"}),
ItemNames.MUTALISK_CORRUPTOR_DEVOURER_ASPECT: ItemData(801 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 7, SC2Race.ZERG, origin={"bw"}),
ItemNames.ROACH_RAVAGER_ASPECT: ItemData(802 + SC2HOTS_ITEM_ID_OFFSET, "Morph", 8, SC2Race.ZERG, origin={"ext"}),
# Protoss Units (those that aren't as items in WoL (Prophecy))
ItemNames.OBSERVER: ItemData(0 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 9, SC2Race.PROTOSS,
classification=ItemClassification.filler, origin={"wol"},
description="Flying spy. Cloak renders the unit invisible to enemies without detection."),
ItemNames.CENTURION: ItemData(1 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 10, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Powerful melee warrior. Has the Shadow Charge and Darkcoil abilities."),
ItemNames.SENTINEL: ItemData(2 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 11, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Powerful melee warrior. Has the Charge and Reconstruction abilities."),
ItemNames.SUPPLICANT: ItemData(3 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 12, SC2Race.PROTOSS,
classification=ItemClassification.filler, important_for_filtering=True, origin={"ext"},
description="Powerful melee warrior. Has powerful damage resistant shields."),
ItemNames.INSTIGATOR: ItemData(4 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 13, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Ranged support strider. Can store multiple Blink charges."),
ItemNames.SLAYER: ItemData(5 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 14, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Ranged attack strider. Can use the Phase Blink and Phasing Armor abilities."),
ItemNames.SENTRY: ItemData(6 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 15, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Robotic support unit can use the Guardian Shield ability and restore the shields of nearby Protoss units."),
ItemNames.ENERGIZER: ItemData(7 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 16, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Robotic support unit. Can use the Chrono Beam ability and become stationary to power nearby structures."),
ItemNames.HAVOC: ItemData(8 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 17, SC2Race.PROTOSS,
origin={"lotv"}, important_for_filtering=True,
description="Robotic support unit. Can use the Target Lock and Force Field abilities and increase the range of nearby Protoss units."),
ItemNames.SIGNIFIER: ItemData(9 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 18, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Potent permanently cloaked psionic master. Can use the Feedback and Crippling Psionic Storm abilities. Can merge into an Archon."),
ItemNames.ASCENDANT: ItemData(10 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 19, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Potent psionic master. Can use the Psionic Orb, Mind Blast, and Sacrifice abilities."),
ItemNames.AVENGER: ItemData(11 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 20, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Deadly warrior-assassin. Permanently cloaked. Recalls to the nearest Dark Shrine upon death."),
ItemNames.BLOOD_HUNTER: ItemData(12 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 21, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Deadly warrior-assassin. Permanently cloaked. Can use the Void Stasis ability."),
ItemNames.DRAGOON: ItemData(13 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 22, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Ranged assault strider. Has enhanced health and damage."),
ItemNames.DARK_ARCHON: ItemData(14 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 23, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Potent psionic master. Can use the Confuse and Mind Control abilities."),
ItemNames.ADEPT: ItemData(15 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 24, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Ranged specialist. Can use the Psionic Transfer ability."),
ItemNames.WARP_PRISM: ItemData(16 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 25, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Flying transport. Can carry units and become stationary to deploy a power field."),
ItemNames.ANNIHILATOR: ItemData(17 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 26, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Assault Strider. Can use the Shadow Cannon ability to damage air and ground units."),
ItemNames.VANGUARD: ItemData(18 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 27, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Assault Strider. Deals splash damage around the primary target."),
ItemNames.WRATHWALKER: ItemData(19 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 28, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Battle strider with a powerful single target attack. Can walk up and down cliffs."),
ItemNames.REAVER: ItemData(20 + SC2LOTV_ITEM_ID_OFFSET, "Unit", 29, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Area damage siege unit. Builds and launches explosive Scarabs for high burst damage."),
ItemNames.DISRUPTOR: ItemData(21 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 0, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Robotic disruption unit. Can use the Purification Nova ability to deal heavy area damage."),
ItemNames.MIRAGE: ItemData(22 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 1, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Air superiority starfighter. Can use Graviton Beam and Phasing Armor abilities."),
ItemNames.CORSAIR: ItemData(23 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 2, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Air superiority starfighter. Can use the Disruption Web ability."),
ItemNames.DESTROYER: ItemData(24 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 3, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Area assault craft. Can use the Destruction Beam ability to attack multiple units at once."),
ItemNames.SCOUT: ItemData(25 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 4, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Versatile high-speed fighter."),
ItemNames.TEMPEST: ItemData(26 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 5, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Siege artillery craft. Attacks from long range. Can use the Disintegration ability."),
ItemNames.MOTHERSHIP: ItemData(27 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 6, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Ultimate Protoss vessel, Can use the Vortex and Mass Recall abilities. Cloaks nearby units and structures."),
ItemNames.ARBITER: ItemData(28 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 7, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="Army support craft. Has the Stasis Field and Recall abilities. Cloaks nearby units."),
ItemNames.ORACLE: ItemData(29 + SC2LOTV_ITEM_ID_OFFSET, "Unit 2", 8, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"},
description="Flying caster. Can use the Revelation and Stasis Ward abilities."),
# Protoss Upgrades
ItemNames.PROGRESSIVE_PROTOSS_GROUND_WEAPON: ItemData(100 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 0, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_GROUND_ARMOR: ItemData(101 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 2, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_SHIELDS: ItemData(102 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 4, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_AIR_WEAPON: ItemData(103 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 6, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_AIR_ARMOR: ItemData(104 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 8, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
# Upgrade bundle 'number' values are used as indices to get affected 'number's
ItemNames.PROGRESSIVE_PROTOSS_WEAPON_UPGRADE: ItemData(105 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 11, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_ARMOR_UPGRADE: ItemData(106 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 12, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_GROUND_UPGRADE: ItemData(107 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 13, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_AIR_UPGRADE: ItemData(108 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 14, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
ItemNames.PROGRESSIVE_PROTOSS_WEAPON_ARMOR_UPGRADE: ItemData(109 + SC2LOTV_ITEM_ID_OFFSET, "Upgrade", 15, SC2Race.PROTOSS, quantity=3, origin={"wol", "lotv"}),
# Protoss Buildings
ItemNames.PHOTON_CANNON: ItemData(200 + SC2LOTV_ITEM_ID_OFFSET, "Building", 0, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"wol", "lotv"}),
ItemNames.KHAYDARIN_MONOLITH: ItemData(201 + SC2LOTV_ITEM_ID_OFFSET, "Building", 1, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}),
ItemNames.SHIELD_BATTERY: ItemData(202 + SC2LOTV_ITEM_ID_OFFSET, "Building", 2, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}),
# Protoss Unit Upgrades
ItemNames.SUPPLICANT_BLOOD_SHIELD: ItemData(300 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 0, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.SUPPLICANT),
ItemNames.SUPPLICANT_SOUL_AUGMENTATION: ItemData(301 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 1, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.SUPPLICANT),
ItemNames.SUPPLICANT_SHIELD_REGENERATION: ItemData(302 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 2, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.SUPPLICANT),
ItemNames.ADEPT_SHOCKWAVE: ItemData(303 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 3, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ADEPT),
ItemNames.ADEPT_RESONATING_GLAIVES: ItemData(304 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 4, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ADEPT),
ItemNames.ADEPT_PHASE_BULWARK: ItemData(305 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 5, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ADEPT),
ItemNames.STALKER_INSTIGATOR_SLAYER_DISINTEGRATING_PARTICLES: ItemData(306 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 6, SC2Race.PROTOSS, origin={"ext"}, classification=ItemClassification.progression),
ItemNames.STALKER_INSTIGATOR_SLAYER_PARTICLE_REFLECTION: ItemData(307 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 7, SC2Race.PROTOSS, origin={"ext"}, classification=ItemClassification.progression),
ItemNames.DRAGOON_HIGH_IMPACT_PHASE_DISRUPTORS: ItemData(308 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 8, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.DRAGOON),
ItemNames.DRAGOON_TRILLIC_COMPRESSION_SYSTEM: ItemData(309 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 9, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.DRAGOON),
ItemNames.DRAGOON_SINGULARITY_CHARGE: ItemData(310 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 10, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.DRAGOON),
ItemNames.DRAGOON_ENHANCED_STRIDER_SERVOS: ItemData(311 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 11, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.DRAGOON),
ItemNames.SCOUT_COMBAT_SENSOR_ARRAY: ItemData(312 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 12, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.SCOUT),
ItemNames.SCOUT_APIAL_SENSORS: ItemData(313 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 13, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.SCOUT),
ItemNames.SCOUT_GRAVITIC_THRUSTERS: ItemData(314 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 14, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.SCOUT),
ItemNames.SCOUT_ADVANCED_PHOTON_BLASTERS: ItemData(315 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 15, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.SCOUT),
ItemNames.TEMPEST_TECTONIC_DESTABILIZERS: ItemData(316 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 16, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.TEMPEST),
ItemNames.TEMPEST_QUANTIC_REACTOR: ItemData(317 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 17, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.TEMPEST),
ItemNames.TEMPEST_GRAVITY_SLING: ItemData(318 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 18, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.TEMPEST),
ItemNames.PHOENIX_MIRAGE_IONIC_WAVELENGTH_FLUX: ItemData(319 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 19, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.PHOENIX_MIRAGE_ANION_PULSE_CRYSTALS: ItemData(320 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 20, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.CORSAIR_STEALTH_DRIVE: ItemData(321 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 21, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.CORSAIR),
ItemNames.CORSAIR_ARGUS_JEWEL: ItemData(322 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 22, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.CORSAIR),
ItemNames.CORSAIR_SUSTAINING_DISRUPTION: ItemData(323 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 23, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.CORSAIR),
ItemNames.CORSAIR_NEUTRON_SHIELDS: ItemData(324 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 24, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.CORSAIR),
ItemNames.ORACLE_STEALTH_DRIVE: ItemData(325 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 25, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ORACLE),
ItemNames.ORACLE_STASIS_CALIBRATION: ItemData(326 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 26, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ORACLE),
ItemNames.ORACLE_TEMPORAL_ACCELERATION_BEAM: ItemData(327 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 27, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ORACLE),
ItemNames.ARBITER_CHRONOSTATIC_REINFORCEMENT: ItemData(328 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 28, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.ARBITER),
ItemNames.ARBITER_KHAYDARIN_CORE: ItemData(329 + SC2LOTV_ITEM_ID_OFFSET, "Forge 1", 29, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.ARBITER),
ItemNames.ARBITER_SPACETIME_ANCHOR: ItemData(330 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 0, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.ARBITER),
ItemNames.ARBITER_RESOURCE_EFFICIENCY: ItemData(331 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 1, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.ARBITER),
ItemNames.ARBITER_ENHANCED_CLOAK_FIELD: ItemData(332 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 2, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.ARBITER),
ItemNames.CARRIER_GRAVITON_CATAPULT:
ItemData(333 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 3, SC2Race.PROTOSS, origin={"wol"},
parent_item=ItemNames.CARRIER,
description="Carriers can launch Interceptors more quickly."),
ItemNames.CARRIER_HULL_OF_PAST_GLORIES:
ItemData(334 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 4, SC2Race.PROTOSS, origin={"bw"},
parent_item=ItemNames.CARRIER,
description="Carriers gain +2 armour."),
ItemNames.VOID_RAY_DESTROYER_FLUX_VANES:
ItemData(335 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 5, SC2Race.PROTOSS, classification=ItemClassification.filler,
origin={"ext"},
description="Increases Void Ray and Destroyer movement speed."),
ItemNames.DESTROYER_REFORGED_BLOODSHARD_CORE:
ItemData(336 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 6, SC2Race.PROTOSS, origin={"ext"},
parent_item=ItemNames.DESTROYER,
description="When fully charged, the Destroyer's Destruction Beam weapon does full damage to secondary targets."),
ItemNames.WARP_PRISM_GRAVITIC_DRIVE:
ItemData(337 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 7, SC2Race.PROTOSS, classification=ItemClassification.filler,
origin={"ext"}, parent_item=ItemNames.WARP_PRISM,
description="Increases the movement speed of Warp Prisms."),
ItemNames.WARP_PRISM_PHASE_BLASTER:
ItemData(338 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 8, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"ext"}, parent_item=ItemNames.WARP_PRISM,
description="Equips Warp Prisms with an auto-attack that can hit ground and air targets."),
ItemNames.WARP_PRISM_WAR_CONFIGURATION: ItemData(339 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 9, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.WARP_PRISM),
ItemNames.OBSERVER_GRAVITIC_BOOSTERS: ItemData(340 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 10, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.OBSERVER),
ItemNames.OBSERVER_SENSOR_ARRAY: ItemData(341 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 11, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.OBSERVER),
ItemNames.REAVER_SCARAB_DAMAGE: ItemData(342 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 12, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.REAVER),
ItemNames.REAVER_SOLARITE_PAYLOAD: ItemData(343 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 13, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.REAVER),
ItemNames.REAVER_REAVER_CAPACITY: ItemData(344 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 14, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=ItemNames.REAVER),
ItemNames.REAVER_RESOURCE_EFFICIENCY: ItemData(345 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 15, SC2Race.PROTOSS, origin={"bw"}, parent_item=ItemNames.REAVER),
ItemNames.VANGUARD_AGONY_LAUNCHERS: ItemData(346 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 16, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.VANGUARD),
ItemNames.VANGUARD_MATTER_DISPERSION: ItemData(347 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 17, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.VANGUARD),
ItemNames.IMMORTAL_ANNIHILATOR_SINGULARITY_CHARGE: ItemData(348 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 18, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.IMMORTAL_ANNIHILATOR_ADVANCED_TARGETING_MECHANICS: ItemData(349 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 19, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"ext"}),
ItemNames.COLOSSUS_PACIFICATION_PROTOCOL: ItemData(350 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 20, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.COLOSSUS),
ItemNames.WRATHWALKER_RAPID_POWER_CYCLING: ItemData(351 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 21, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.WRATHWALKER),
ItemNames.WRATHWALKER_EYE_OF_WRATH: ItemData(352 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 22, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.WRATHWALKER),
ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHROUD_OF_ADUN: ItemData(353 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 23, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHADOW_GUARD_TRAINING: ItemData(354 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 24, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_BLINK: ItemData(355 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 25, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"ext"}),
ItemNames.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_RESOURCE_EFFICIENCY: ItemData(356 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 26, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.DARK_TEMPLAR_DARK_ARCHON_MELD: ItemData(357 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 27, SC2Race.PROTOSS, origin={"bw"}, important_for_filtering=True ,parent_item=ItemNames.DARK_TEMPLAR),
ItemNames.HIGH_TEMPLAR_SIGNIFIER_UNSHACKLED_PSIONIC_STORM: ItemData(358 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 28, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.HIGH_TEMPLAR_SIGNIFIER_HALLUCINATION: ItemData(359 + SC2LOTV_ITEM_ID_OFFSET, "Forge 2", 29, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}),
ItemNames.HIGH_TEMPLAR_SIGNIFIER_KHAYDARIN_AMULET: ItemData(360 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 0, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.ARCHON_HIGH_ARCHON: ItemData(361 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 1, SC2Race.PROTOSS, origin={"ext"}, important_for_filtering=True),
ItemNames.DARK_ARCHON_FEEDBACK: ItemData(362 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 2, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.DARK_ARCHON_MAELSTROM: ItemData(363 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 3, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.DARK_ARCHON_ARGUS_TALISMAN: ItemData(364 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 4, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.ASCENDANT_POWER_OVERWHELMING: ItemData(365 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 5, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ASCENDANT),
ItemNames.ASCENDANT_CHAOTIC_ATTUNEMENT: ItemData(366 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 6, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ASCENDANT),
ItemNames.ASCENDANT_BLOOD_AMULET: ItemData(367 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 7, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ASCENDANT),
ItemNames.SENTRY_ENERGIZER_HAVOC_CLOAKING_MODULE: ItemData(368 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 8, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.SENTRY_ENERGIZER_HAVOC_SHIELD_BATTERY_RAPID_RECHARGING: ItemData(369 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 9, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.SENTRY_FORCE_FIELD: ItemData(370 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 10, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.SENTRY),
ItemNames.SENTRY_HALLUCINATION: ItemData(371 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 11, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=ItemNames.SENTRY),
ItemNames.ENERGIZER_RECLAMATION: ItemData(372 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 12, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ENERGIZER),
ItemNames.ENERGIZER_FORGED_CHASSIS: ItemData(373 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 13, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.ENERGIZER),
ItemNames.HAVOC_DETECT_WEAKNESS: ItemData(374 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 14, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.HAVOC),
ItemNames.HAVOC_BLOODSHARD_RESONANCE: ItemData(375 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 15, SC2Race.PROTOSS, origin={"ext"}, parent_item=ItemNames.HAVOC),
ItemNames.ZEALOT_SENTINEL_CENTURION_LEG_ENHANCEMENTS: ItemData(376 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 16, SC2Race.PROTOSS, origin={"bw"}),
ItemNames.ZEALOT_SENTINEL_CENTURION_SHIELD_CAPACITY: ItemData(377 + SC2LOTV_ITEM_ID_OFFSET, "Forge 3", 17, SC2Race.PROTOSS, origin={"bw"}),
# SoA Calldown powers
ItemNames.SOA_CHRONO_SURGE: ItemData(700 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 0, SC2Race.PROTOSS, origin={"lotv"}),
ItemNames.SOA_PROGRESSIVE_PROXY_PYLON: ItemData(701 + SC2LOTV_ITEM_ID_OFFSET, "Progressive Upgrade", 0, SC2Race.PROTOSS, origin={"lotv"}, quantity=2),
ItemNames.SOA_PYLON_OVERCHARGE: ItemData(702 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 1, SC2Race.PROTOSS, origin={"ext"}),
ItemNames.SOA_ORBITAL_STRIKE: ItemData(703 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 2, SC2Race.PROTOSS, origin={"lotv"}),
ItemNames.SOA_TEMPORAL_FIELD: ItemData(704 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 3, SC2Race.PROTOSS, origin={"lotv"}),
ItemNames.SOA_SOLAR_LANCE: ItemData(705 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 4, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}),
ItemNames.SOA_MASS_RECALL: ItemData(706 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 5, SC2Race.PROTOSS, origin={"lotv"}),
ItemNames.SOA_SHIELD_OVERCHARGE: ItemData(707 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 6, SC2Race.PROTOSS, origin={"lotv"}),
ItemNames.SOA_DEPLOY_FENIX: ItemData(708 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 7, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}),
ItemNames.SOA_PURIFIER_BEAM: ItemData(709 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 8, SC2Race.PROTOSS, origin={"lotv"}),
ItemNames.SOA_TIME_STOP: ItemData(710 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 9, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}),
ItemNames.SOA_SOLAR_BOMBARDMENT: ItemData(711 + SC2LOTV_ITEM_ID_OFFSET, "Spear of Adun", 10, SC2Race.PROTOSS, origin={"lotv"}),
# Generic Protoss Upgrades
ItemNames.MATRIX_OVERLOAD:
ItemData(800 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 0, SC2Race.PROTOSS, origin={"lotv"},
description=r"All friendly units gain 25% movement speed and 15% attack speed within a Pylon's power field and for 15 seconds after leaving it."),
ItemNames.QUATRO:
ItemData(801 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 1, SC2Race.PROTOSS, origin={"ext"},
description="All friendly Protoss units gain the equivalent of their +1 armour, attack, and shield upgrades."),
ItemNames.NEXUS_OVERCHARGE:
ItemData(802 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 2, SC2Race.PROTOSS, origin={"lotv"},
important_for_filtering=True, description="The Protoss Nexus gains a long-range auto-attack."),
ItemNames.ORBITAL_ASSIMILATORS:
ItemData(803 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 3, SC2Race.PROTOSS, origin={"lotv"},
description="Assimilators automatically harvest Vespene Gas without the need for Probes."),
ItemNames.WARP_HARMONIZATION:
ItemData(804 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 4, SC2Race.PROTOSS, origin={"lotv"},
description=r"Stargates and Robotics Facilities can transform to utilize Warp In technology. Warp In cooldowns are 20% faster than original build times."),
ItemNames.GUARDIAN_SHELL:
ItemData(805 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 5, SC2Race.PROTOSS, origin={"lotv"},
description="The Spear of Adun passively shields friendly Protoss units before death, making them invulnerable for 5 seconds. Each unit can only be shielded once every 60 seconds."),
ItemNames.RECONSTRUCTION_BEAM:
ItemData(806 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 6, SC2Race.PROTOSS,
classification=ItemClassification.progression, origin={"lotv"},
description="The Spear of Adun will passively heal mechanical units for 5 and non-biological structures for 10 life per second. Up to 3 targets can be repaired at once."),
ItemNames.OVERWATCH:
ItemData(807 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 7, SC2Race.PROTOSS, origin={"ext"},
description="Once per second, the Spear of Adun will last-hit a damaged enemy unit that is below 50 health."),
ItemNames.SUPERIOR_WARP_GATES:
ItemData(808 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 8, SC2Race.PROTOSS, origin={"ext"},
description="Protoss Warp Gates can hold up to 3 charges of unit warp-ins."),
ItemNames.ENHANCED_TARGETING:
ItemData(809 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 9, SC2Race.PROTOSS, origin={"ext"},
description="Protoss defensive structures gain +2 range."),
ItemNames.OPTIMIZED_ORDNANCE:
ItemData(810 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 10, SC2Race.PROTOSS, origin={"ext"},
description="Increases the attack speed of Protoss defensive structures by 25%."),
ItemNames.KHALAI_INGENUITY:
ItemData(811 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 11, SC2Race.PROTOSS, origin={"ext"},
description="Pylons, Photon Cannons, Monoliths, and Shield Batteries warp in near-instantly."),
ItemNames.AMPLIFIED_ASSIMILATORS:
ItemData(812 + SC2LOTV_ITEM_ID_OFFSET, "Solarite Core", 12, SC2Race.PROTOSS, origin={"ext"},
description=r"Assimilators produce Vespene gas 25% faster."),
}
def get_item_table():
return item_table
basic_units = {
SC2Race.TERRAN: {
ItemNames.MARINE,
ItemNames.MARAUDER,
ItemNames.GOLIATH,
ItemNames.HELLION,
ItemNames.VULTURE,
ItemNames.WARHOUND,
},
SC2Race.ZERG: {
ItemNames.ZERGLING,
ItemNames.SWARM_QUEEN,
ItemNames.ROACH,
ItemNames.HYDRALISK,
},
SC2Race.PROTOSS: {
ItemNames.ZEALOT,
ItemNames.CENTURION,
ItemNames.SENTINEL,
ItemNames.STALKER,
ItemNames.INSTIGATOR,
ItemNames.SLAYER,
ItemNames.DRAGOON,
ItemNames.ADEPT,
}
}
advanced_basic_units = {
SC2Race.TERRAN: basic_units[SC2Race.TERRAN].union({
ItemNames.REAPER,
ItemNames.DIAMONDBACK,
ItemNames.VIKING,
ItemNames.SIEGE_TANK,
ItemNames.BANSHEE,
ItemNames.THOR,
ItemNames.BATTLECRUISER,
ItemNames.CYCLONE
}),
SC2Race.ZERG: basic_units[SC2Race.ZERG].union({
ItemNames.INFESTOR,
ItemNames.ABERRATION,
}),
SC2Race.PROTOSS: basic_units[SC2Race.PROTOSS].union({
ItemNames.DARK_TEMPLAR,
ItemNames.BLOOD_HUNTER,
ItemNames.AVENGER,
ItemNames.IMMORTAL,
ItemNames.ANNIHILATOR,
ItemNames.VANGUARD,
})
}
no_logic_starting_units = {
SC2Race.TERRAN: advanced_basic_units[SC2Race.TERRAN].union({
ItemNames.FIREBAT,
ItemNames.GHOST,
ItemNames.SPECTRE,
ItemNames.WRAITH,
ItemNames.RAVEN,
ItemNames.PREDATOR,
ItemNames.LIBERATOR,
ItemNames.HERC,
}),
SC2Race.ZERG: advanced_basic_units[SC2Race.ZERG].union({
ItemNames.ULTRALISK,
ItemNames.SWARM_HOST
}),
SC2Race.PROTOSS: advanced_basic_units[SC2Race.PROTOSS].union({
ItemNames.CARRIER,
ItemNames.TEMPEST,
ItemNames.VOID_RAY,
ItemNames.DESTROYER,
ItemNames.COLOSSUS,
ItemNames.WRATHWALKER,
ItemNames.SCOUT,
ItemNames.HIGH_TEMPLAR,
ItemNames.SIGNIFIER,
ItemNames.ASCENDANT,
ItemNames.DARK_ARCHON,
ItemNames.SUPPLICANT,
})
}
not_balanced_starting_units = {
ItemNames.SIEGE_TANK,
ItemNames.THOR,
ItemNames.BANSHEE,
ItemNames.BATTLECRUISER,
ItemNames.ULTRALISK,
ItemNames.CARRIER,
ItemNames.TEMPEST,
}
def get_basic_units(world: World, race: SC2Race) -> typing.Set[str]:
logic_level = get_option_value(world, 'required_tactics')
if logic_level == RequiredTactics.option_no_logic:
return no_logic_starting_units[race]
elif logic_level == RequiredTactics.option_advanced:
return advanced_basic_units[race]
else:
return basic_units[race]
# Items that can be placed before resources if not already in
# General upgrades and Mercs
second_pass_placeable_items: typing.Tuple[str, ...] = (
# Global weapon/armor upgrades
ItemNames.PROGRESSIVE_TERRAN_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_TERRAN_WEAPON_UPGRADE,
ItemNames.PROGRESSIVE_TERRAN_WEAPON_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_WEAPON_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_WEAPON_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_WEAPON_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_SHIELDS,
# Terran Buildings without upgrades
ItemNames.SENSOR_TOWER,
ItemNames.HIVE_MIND_EMULATOR,
ItemNames.PSI_DISRUPTER,
ItemNames.PERDITION_TURRET,
# Terran units without upgrades
ItemNames.HERC,
ItemNames.WARHOUND,
# General Terran upgrades without any dependencies
ItemNames.SCV_ADVANCED_CONSTRUCTION,
ItemNames.SCV_DUAL_FUSION_WELDERS,
ItemNames.PROGRESSIVE_FIRE_SUPPRESSION_SYSTEM,
ItemNames.PROGRESSIVE_ORBITAL_COMMAND,
ItemNames.ULTRA_CAPACITORS,
ItemNames.VANADIUM_PLATING,
ItemNames.ORBITAL_DEPOTS,
ItemNames.MICRO_FILTERING,
ItemNames.AUTOMATED_REFINERY,
ItemNames.COMMAND_CENTER_REACTOR,
ItemNames.TECH_REACTOR,
ItemNames.CELLULAR_REACTOR,
ItemNames.PROGRESSIVE_REGENERATIVE_BIO_STEEL, # Place only L1
ItemNames.STRUCTURE_ARMOR,
ItemNames.HI_SEC_AUTO_TRACKING,
ItemNames.ADVANCED_OPTICS,
ItemNames.ROGUE_FORCES,
# Mercenaries (All races)
*[item_name for item_name, item_data in get_full_item_list().items()
if item_data.type == "Mercenary"],
# Kerrigan and Nova levels, abilities and generally useful stuff
*[item_name for item_name, item_data in get_full_item_list().items()
if item_data.type in ("Level", "Ability", "Evolution Pit", "Nova Gear")],
ItemNames.NOVA_PROGRESSIVE_STEALTH_SUIT_MODULE,
# Zerg static defenses
ItemNames.SPORE_CRAWLER,
ItemNames.SPINE_CRAWLER,
# Defiler, Aberration (no upgrades)
ItemNames.DEFILER,
ItemNames.ABERRATION,
# Spear of Adun Abilities
ItemNames.SOA_CHRONO_SURGE,
ItemNames.SOA_PROGRESSIVE_PROXY_PYLON,
ItemNames.SOA_PYLON_OVERCHARGE,
ItemNames.SOA_ORBITAL_STRIKE,
ItemNames.SOA_TEMPORAL_FIELD,
ItemNames.SOA_SOLAR_LANCE,
ItemNames.SOA_MASS_RECALL,
ItemNames.SOA_SHIELD_OVERCHARGE,
ItemNames.SOA_DEPLOY_FENIX,
ItemNames.SOA_PURIFIER_BEAM,
ItemNames.SOA_TIME_STOP,
ItemNames.SOA_SOLAR_BOMBARDMENT,
# Protoss generic upgrades
ItemNames.MATRIX_OVERLOAD,
ItemNames.QUATRO,
ItemNames.NEXUS_OVERCHARGE,
ItemNames.ORBITAL_ASSIMILATORS,
ItemNames.WARP_HARMONIZATION,
ItemNames.GUARDIAN_SHELL,
ItemNames.RECONSTRUCTION_BEAM,
ItemNames.OVERWATCH,
ItemNames.SUPERIOR_WARP_GATES,
ItemNames.KHALAI_INGENUITY,
ItemNames.AMPLIFIED_ASSIMILATORS,
# Protoss static defenses
ItemNames.PHOTON_CANNON,
ItemNames.KHAYDARIN_MONOLITH,
ItemNames.SHIELD_BATTERY
)
filler_items: typing.Tuple[str, ...] = (
ItemNames.STARTING_MINERALS,
ItemNames.STARTING_VESPENE,
ItemNames.STARTING_SUPPLY,
)
# Defense rating table
# Commented defense ratings are handled in LogicMixin
defense_ratings = {
ItemNames.SIEGE_TANK: 5,
# "Maelstrom Rounds": 2,
ItemNames.PLANETARY_FORTRESS: 3,
# Bunker w/ Marine/Marauder: 3,
ItemNames.PERDITION_TURRET: 2,
ItemNames.VULTURE: 1,
ItemNames.BANSHEE: 1,
ItemNames.BATTLECRUISER: 1,
ItemNames.LIBERATOR: 4,
ItemNames.WIDOW_MINE: 1,
# "Concealment (Widow Mine)": 1
}
zerg_defense_ratings = {
ItemNames.PERDITION_TURRET: 2,
# Bunker w/ Firebat: 2,
ItemNames.LIBERATOR: -2,
ItemNames.HIVE_MIND_EMULATOR: 3,
ItemNames.PSI_DISRUPTER: 3,
}
air_defense_ratings = {
ItemNames.MISSILE_TURRET: 2,
}
kerrigan_levels = [item_name for item_name, item_data in get_full_item_list().items()
if item_data.type == "Level" and item_data.race == SC2Race.ZERG]
spider_mine_sources = {
ItemNames.VULTURE,
ItemNames.REAPER_SPIDER_MINES,
ItemNames.SIEGE_TANK_SPIDER_MINES,
ItemNames.RAVEN_SPIDER_MINES,
}
progressive_if_nco = {
ItemNames.MARINE_PROGRESSIVE_STIMPACK,
ItemNames.FIREBAT_PROGRESSIVE_STIMPACK,
ItemNames.BANSHEE_PROGRESSIVE_CROSS_SPECTRUM_DAMPENERS,
ItemNames.PROGRESSIVE_REGENERATIVE_BIO_STEEL,
}
progressive_if_ext = {
ItemNames.VULTURE_PROGRESSIVE_REPLENISHABLE_MAGAZINE,
ItemNames.WRAITH_PROGRESSIVE_TOMAHAWK_POWER_CELLS,
ItemNames.BATTLECRUISER_PROGRESSIVE_DEFENSIVE_MATRIX,
ItemNames.BATTLECRUISER_PROGRESSIVE_MISSILE_PODS,
ItemNames.THOR_PROGRESSIVE_IMMORTALITY_PROTOCOL,
ItemNames.PROGRESSIVE_FIRE_SUPPRESSION_SYSTEM,
ItemNames.DIAMONDBACK_PROGRESSIVE_TRI_LITHIUM_POWER_CELL
}
kerrigan_actives: typing.List[typing.Set[str]] = [
{ItemNames.KERRIGAN_KINETIC_BLAST, ItemNames.KERRIGAN_LEAPING_STRIKE},
{ItemNames.KERRIGAN_CRUSHING_GRIP, ItemNames.KERRIGAN_PSIONIC_SHIFT},
set(),
{ItemNames.KERRIGAN_WILD_MUTATION, ItemNames.KERRIGAN_SPAWN_BANELINGS, ItemNames.KERRIGAN_MEND},
set(),
set(),
{ItemNames.KERRIGAN_APOCALYPSE, ItemNames.KERRIGAN_SPAWN_LEVIATHAN, ItemNames.KERRIGAN_DROP_PODS},
]
kerrigan_passives: typing.List[typing.Set[str]] = [
{ItemNames.KERRIGAN_HEROIC_FORTITUDE},
{ItemNames.KERRIGAN_CHAIN_REACTION},
{ItemNames.KERRIGAN_ZERGLING_RECONSTITUTION, ItemNames.KERRIGAN_IMPROVED_OVERLORDS, ItemNames.KERRIGAN_AUTOMATED_EXTRACTORS},
set(),
{ItemNames.KERRIGAN_TWIN_DRONES, ItemNames.KERRIGAN_MALIGNANT_CREEP, ItemNames.KERRIGAN_VESPENE_EFFICIENCY},
{ItemNames.KERRIGAN_INFEST_BROODLINGS, ItemNames.KERRIGAN_FURY, ItemNames.KERRIGAN_ABILITY_EFFICIENCY},
set(),
]
kerrigan_only_passives = {
ItemNames.KERRIGAN_HEROIC_FORTITUDE, ItemNames.KERRIGAN_CHAIN_REACTION,
ItemNames.KERRIGAN_INFEST_BROODLINGS, ItemNames.KERRIGAN_FURY, ItemNames.KERRIGAN_ABILITY_EFFICIENCY,
}
spear_of_adun_calldowns = {
ItemNames.SOA_CHRONO_SURGE,
ItemNames.SOA_PROGRESSIVE_PROXY_PYLON,
ItemNames.SOA_PYLON_OVERCHARGE,
ItemNames.SOA_ORBITAL_STRIKE,
ItemNames.SOA_TEMPORAL_FIELD,
ItemNames.SOA_SOLAR_LANCE,
ItemNames.SOA_MASS_RECALL,
ItemNames.SOA_SHIELD_OVERCHARGE,
ItemNames.SOA_DEPLOY_FENIX,
ItemNames.SOA_PURIFIER_BEAM,
ItemNames.SOA_TIME_STOP,
ItemNames.SOA_SOLAR_BOMBARDMENT
}
spear_of_adun_castable_passives = {
ItemNames.RECONSTRUCTION_BEAM,
ItemNames.OVERWATCH,
}
nova_equipment = {
*[item_name for item_name, item_data in get_full_item_list().items()
if item_data.type == "Nova Gear"],
ItemNames.NOVA_PROGRESSIVE_STEALTH_SUIT_MODULE
}
# 'number' values of upgrades for upgrade bundle items
upgrade_numbers = [
# Terran
{0, 4, 8}, # Weapon
{2, 6, 10}, # Armor
{0, 2}, # Infantry
{4, 6}, # Vehicle
{8, 10}, # Starship
{0, 2, 4, 6, 8, 10}, # All
# Zerg
{0, 2, 6}, # Weapon
{4, 8}, # Armor
{0, 2, 4}, # Ground
{6, 8}, # Flyer
{0, 2, 4, 6, 8}, # All
# Protoss
{0, 6}, # Weapon
{2, 4, 8}, # Armor
{0, 2}, # Ground, Shields are handled specially
{6, 8}, # Air, Shields are handled specially
{0, 2, 4, 6, 8}, # All
]
# 'upgrade_numbers' indices for all upgrades
upgrade_numbers_all = {
SC2Race.TERRAN: 5,
SC2Race.ZERG: 10,
SC2Race.PROTOSS: 15,
}
# Names of upgrades to be included for different options
upgrade_included_names = [
{ # Individual Items
ItemNames.PROGRESSIVE_TERRAN_INFANTRY_WEAPON,
ItemNames.PROGRESSIVE_TERRAN_INFANTRY_ARMOR,
ItemNames.PROGRESSIVE_TERRAN_VEHICLE_WEAPON,
ItemNames.PROGRESSIVE_TERRAN_VEHICLE_ARMOR,
ItemNames.PROGRESSIVE_TERRAN_SHIP_WEAPON,
ItemNames.PROGRESSIVE_TERRAN_SHIP_ARMOR,
ItemNames.PROGRESSIVE_ZERG_MELEE_ATTACK,
ItemNames.PROGRESSIVE_ZERG_MISSILE_ATTACK,
ItemNames.PROGRESSIVE_ZERG_GROUND_CARAPACE,
ItemNames.PROGRESSIVE_ZERG_FLYER_ATTACK,
ItemNames.PROGRESSIVE_ZERG_FLYER_CARAPACE,
ItemNames.PROGRESSIVE_PROTOSS_GROUND_WEAPON,
ItemNames.PROGRESSIVE_PROTOSS_GROUND_ARMOR,
ItemNames.PROGRESSIVE_PROTOSS_SHIELDS,
ItemNames.PROGRESSIVE_PROTOSS_AIR_WEAPON,
ItemNames.PROGRESSIVE_PROTOSS_AIR_ARMOR,
},
{ # Bundle Weapon And Armor
ItemNames.PROGRESSIVE_TERRAN_WEAPON_UPGRADE,
ItemNames.PROGRESSIVE_TERRAN_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_WEAPON_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_WEAPON_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_ARMOR_UPGRADE,
},
{ # Bundle Unit Class
ItemNames.PROGRESSIVE_TERRAN_INFANTRY_UPGRADE,
ItemNames.PROGRESSIVE_TERRAN_VEHICLE_UPGRADE,
ItemNames.PROGRESSIVE_TERRAN_SHIP_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_GROUND_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_FLYER_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_GROUND_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_AIR_UPGRADE,
},
{ # Bundle All
ItemNames.PROGRESSIVE_TERRAN_WEAPON_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE,
ItemNames.PROGRESSIVE_PROTOSS_WEAPON_ARMOR_UPGRADE,
}
]
lookup_id_to_name: typing.Dict[int, str] = {data.code: item_name for item_name, data in get_full_item_list().items() if
data.code}
# Map type to expected int
type_flaggroups: typing.Dict[SC2Race, typing.Dict[str, int]] = {
SC2Race.ANY: {
"Minerals": 0,
"Vespene": 1,
"Supply": 2,
"Goal": 3,
"Nothing Group": 4,
},
SC2Race.TERRAN: {
"Armory 1": 0,
"Armory 2": 1,
"Armory 3": 2,
"Armory 4": 3,
"Armory 5": 4,
"Armory 6": 5,
"Progressive Upgrade": 6, # Unit upgrades that exist multiple times (Stimpack / Super Stimpack)
"Laboratory": 7,
"Upgrade": 8, # Weapon / Armor upgrades
"Unit": 9,
"Building": 10,
"Mercenary": 11,
"Nova Gear": 12,
"Progressive Upgrade 2": 13,
},
SC2Race.ZERG: {
"Ability": 0,
"Mutation 1": 1,
"Strain": 2,
"Morph": 3,
"Upgrade": 4,
"Mercenary": 5,
"Unit": 6,
"Level": 7,
"Primal Form": 8,
"Evolution Pit": 9,
"Mutation 2": 10,
"Mutation 3": 11
},
SC2Race.PROTOSS: {
"Unit": 0,
"Unit 2": 1,
"Upgrade": 2, # Weapon / Armor upgrades
"Building": 3,
"Progressive Upgrade": 4,
"Spear of Adun": 5,
"Solarite Core": 6,
"Forge 1": 7,
"Forge 2": 8,
"Forge 3": 9,
}
}