From 0fa545387693c2300491b893dd69b05ab0c2936f Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 13 Oct 2023 23:08:20 -0700 Subject: [PATCH] sc2: Made item name variables UPPER_CASE --- worlds/sc2/ItemNames.py | 602 ++++++++++++++--------------- worlds/sc2/Items.py | 798 +++++++++++++++++++-------------------- worlds/sc2/LogicMixin.py | 136 +++---- worlds/sc2/PoolFilter.py | 44 +-- 4 files changed, 790 insertions(+), 790 deletions(-) diff --git a/worlds/sc2/ItemNames.py b/worlds/sc2/ItemNames.py index 3e6bec1066bf..34c3daa0144e 100644 --- a/worlds/sc2/ItemNames.py +++ b/worlds/sc2/ItemNames.py @@ -6,335 +6,335 @@ """ # Terran Units -Marine = "Marine" -Medic = "Medic" -Firebat = "Firebat" -Marauder = "Marauder" -Reaper = "Reaper" -Hellion = "Hellion" -Vulture = "Vulture" -Goliath = "Goliath" -Diamondback = "Diamondback" -Siege_Tank = "Siege Tank" -Medivac = "Medivac" -Wraith = "Wraith" -Viking = "Viking" -Banshee = "Banshee" -Battlecruiser = "Battlecruiser" -Ghost = "Ghost" -Spectre = "Spectre" -Thor = "Thor" -Raven = "Raven" -Science_Vessel = "Science Vessel" -Predator = "Predator" -Hercules = "Hercules" +MARINE = "Marine" +MEDIC = "Medic" +FIREBAT = "Firebat" +MARAUDER = "Marauder" +REAPER = "Reaper" +HELLION = "Hellion" +VULTURE = "Vulture" +GOLIATH = "Goliath" +DIAMONDBACK = "Diamondback" +SIEGE_TANK = "Siege Tank" +MEDIVAC = "Medivac" +WRAITH = "Wraith" +VIKING = "Viking" +BANSHEE = "Banshee" +BATTLECRUISER = "Battlecruiser" +GHOST = "Ghost" +SPECTRE = "Spectre" +THOR = "Thor" +RAVEN = "Raven" +SCIENCE_VESSEL = "Science Vessel" +PREDATOR = "Predator" +HERCULES = "Hercules" # Extended units -Liberator = "Liberator" -Valkyrie = "Valkyrie" -Widow_Mine = "Widow Mine" -Cyclone = "Cyclone" +LIBERATOR = "Liberator" +VALKYRIE = "Valkyrie" +WIDOW_MINE = "Widow Mine" +CYCLONE = "Cyclone" # Terran Buildings -Bunker = "Bunker" -Missile_Turret = "Missile Turret" -Sensor_Tower = "Sensor Tower" +BUNKER = "Bunker" +MISSILE_TURRET = "Missile Turret" +SENSOR_TOWER = "Sensor Tower" # Terran Weapon / Armor Upgrades -terran_upgrade_prefix = "Progressive Terran" -terran_infantry_upgrade_prefix = f"{terran_upgrade_prefix} Infantry" -terran_vehicle_upgrade_prefix = f"{terran_upgrade_prefix} Vehicle" -terran_ship_upgrade_prefix = f"{terran_upgrade_prefix} Ship" +TERRAN_UPGRADE_PREFIX = "Progressive Terran" +TERRAN_INFANTRY_UPGRADE_PREFIX = f"{TERRAN_UPGRADE_PREFIX} Infantry" +TERRAN_VEHICLE_UPGRADE_PREFIX = f"{TERRAN_UPGRADE_PREFIX} Vehicle" +TERRAN_SHIP_UPGRADE_PREFIX = f"{TERRAN_UPGRADE_PREFIX} Ship" -Progressive_Terran_Infantry_Weapon = f"{terran_infantry_upgrade_prefix} Weapon" -Progressive_Terran_Infantry_Armor = f"{terran_infantry_upgrade_prefix} Armor" -Progressive_Terran_Vehicle_Weapon = f"{terran_vehicle_upgrade_prefix} Weapon" -Progressive_Terran_Vehicle_Armor = f"{terran_vehicle_upgrade_prefix} Armor" -Progressive_Terran_Ship_Weapon = f"{terran_ship_upgrade_prefix} Weapon" -Progressive_Terran_Ship_Armor = f"{terran_ship_upgrade_prefix} Armor" -Progressive_Terran_Weapon_Upgrade = f"{terran_upgrade_prefix} Weapon Upgrade" -Progressive_Terran_Armor_Upgrade = f"{terran_upgrade_prefix} Armor Upgrade" -Progressive_Terran_Infantry_Upgrade = f"{terran_infantry_upgrade_prefix} Upgrade" -Progressive_Terran_Vehicle_Upgrade = f"{terran_vehicle_upgrade_prefix} Upgrade" -Progressive_Terran_Ship_Upgrade = f"{terran_ship_upgrade_prefix} Upgrade" -Progressive_Terran_Weapon_Armor_Upgrade = f"{terran_upgrade_prefix} Weapon/Armor Upgrade" +PROGRESSIVE_TERRAN_INFANTRY_WEAPON = f"{TERRAN_INFANTRY_UPGRADE_PREFIX} Weapon" +PROGRESSIVE_TERRAN_INFANTRY_ARMOR = f"{TERRAN_INFANTRY_UPGRADE_PREFIX} Armor" +PROGRESSIVE_TERRAN_VEHICLE_WEAPON = f"{TERRAN_VEHICLE_UPGRADE_PREFIX} Weapon" +PROGRESSIVE_TERRAN_VEHICLE_ARMOR = f"{TERRAN_VEHICLE_UPGRADE_PREFIX} Armor" +PROGRESSIVE_TERRAN_SHIP_WEAPON = f"{TERRAN_SHIP_UPGRADE_PREFIX} Weapon" +PROGRESSIVE_TERRAN_SHIP_ARMOR = f"{TERRAN_SHIP_UPGRADE_PREFIX} Armor" +PROGRESSIVE_TERRAN_WEAPON_UPGRADE = f"{TERRAN_UPGRADE_PREFIX} Weapon Upgrade" +PROGRESSIVE_TERRAN_ARMOR_UPGRADE = f"{TERRAN_UPGRADE_PREFIX} Armor Upgrade" +PROGRESSIVE_TERRAN_INFANTRY_UPGRADE = f"{TERRAN_INFANTRY_UPGRADE_PREFIX} Upgrade" +PROGRESSIVE_TERRAN_VEHICLE_UPGRADE = f"{TERRAN_VEHICLE_UPGRADE_PREFIX} Upgrade" +PROGRESSIVE_TERRAN_SHIP_UPGRADE = f"{TERRAN_SHIP_UPGRADE_PREFIX} Upgrade" +PROGRESSIVE_TERRAN_WEAPON_ARMOR_UPGRADE = f"{TERRAN_UPGRADE_PREFIX} Weapon/Armor Upgrade" # Mercenaries -War_Pigs = "War Pigs" -Devil_Dogs = "Devil Dogs" -Hammer_Securities = "Hammer Securities" -Spartan_Company = "Spartan Company" -Siege_Breakers = "Siege Breakers" -Hels_Angel = "Hel's Angel" -Dusk_Wings = "Dusk Wings" -Jacksons_Revenge = "Jackson's Revenge" +WAR_PIGS = "War Pigs" +DEVIL_DOGS = "Devil Dogs" +HAMMER_SECURITIES = "Hammer Securities" +SPARTAN_COMPANY = "Spartan Company" +SIEGE_BREAKERS = "Siege Breakers" +HELS_ANGEL = "Hel's Angel" +DUSK_WINGS = "Dusk Wings" +JACKSONS_REVENGE = "Jackson's Revenge" # Lab / Global -Ultra_Capacitors = "Ultra-Capacitors" -Vanadium_Plating = "Vanadium Plating" -Orbital_Depots = "Orbital Depots" -Micro_Filtering = "Micro-Filtering" -Automated_Refinery = "Automated Refinery" -Command_Center_Reactor = "Command Center Reactor" -Tech_Reactor = "Tech Reactor" -Orbital_Strike = "Orbital Strike" -Bunker_Shrike_Turret = "Shrike Turret (Bunker)" -Bunker_Fortified_Bunker = "Fortified Bunker (Bunker)" -Planetary_Fortress = "Planetary Fortress" -Perdition_Turret = "Perdition Turret" -Cellular_Reactor = "Cellular Reactor" -Progressive_Regenerative_Bio_Steel = "Progressive Regenerative Bio-Steel" -Hive_Mind_Emulator = "Hive Mind Emulator" -Psi_Disrupter = "Psi Disrupter" +ULTRA_CAPACITORS = "Ultra-Capacitors" +VANADIUM_PLATING = "Vanadium Plating" +ORBITAL_DEPOTS = "Orbital Depots" +MICRO_FILTERING = "Micro-Filtering" +AUTOMATED_REFINERY = "Automated Refinery" +COMMAND_CENTER_REACTOR = "Command Center Reactor" +TECH_REACTOR = "Tech Reactor" +ORBITAL_STRIKE = "Orbital Strike" +BUNKER_SHRIKE_TURRET = "Shrike Turret (Bunker)" +BUNKER_FORTIFIED_BUNKER = "Fortified Bunker (Bunker)" +PLANETARY_FORTRESS = "Planetary Fortress" +PERDITION_TURRET = "Perdition Turret" +CELLULAR_REACTOR = "Cellular Reactor" +PROGRESSIVE_REGENERATIVE_BIO_STEEL = "Progressive Regenerative Bio-Steel" +HIVE_MIND_EMULATOR = "Hive Mind Emulator" +PSI_DISRUPTER = "Psi Disrupter" # Terran Unit Upgrades -Banshee_Hyperflight_Rotors = "Hyperflight Rotors (Banshee)" -Banshee_Internal_Tech_Module = "Internal Tech Module (Banshee)" -Banshee_Laser_Targeting_System = "Laser Targeting System (Banshee)" -Banshee_Progressive_Cross_Spectrum_Dampeners = "Progressive Cross-Spectrum Dampeners (Banshee)" -Banshee_Shockwave_Missile_Battery = "Shockwave Missile Battery (Banshee)" -Battlecruiser_ATX_Laser_Battery = "ATX Laser Battery (Battlecruiser)" -Battlecruiser_Cloak = "Cloak (Battlecruiser)" -Battlecruiser_Defensive_Matrix = "Defensive Matrix (Battlecruiser)" -Battlecruiser_Internal_Tech_Module = "Internal Tech Module (Battlecruiser)" -Battlecruiser_Missile_Pods = "Missile Pods (Battlecruiser)" -Battlecruiser_Optimized_Logistics = "Optimized Logistics (Battlecruiser)" -Battlecruiser_Tactical_Jump = "Tactical Jump (Battlecruiser)" -Building_Fire_Suppression_System = "Fire-Suppression System (Building)" -Building_Orbital_Command = "Orbital Command (Building)" -Bunker_Neosteel_Bunker = "Neosteel Bunker (Bunker)" -Bunker_Projectile_Accelerator = "Projectile Accelerator (Bunker)" -Cyclone_Mag_Field_Accelerators = "Mag-Field Accelerators (Cyclone)" -Cyclone_Mag_Field_Launchers = "Mag-Field Launchers (Cyclone)" -Cyclone_Rapid_Fire_Launchers = "Rapid Fire Launchers (Cyclone)" -Cyclone_Targeting_Optics = "Targeting Optics (Cyclone)" -Diamondback_Burst_Capacitors = "Burst Capacitors (Diamondback)" -Diamondback_Hyperfluxor = "Hyperfluxor (Diamondback)" -Diamondback_Optimized_Logistics = "Optimized Logistics (Diamondback)" -Diamondback_Shaped_Hull = "Shaped Hull (Diamondback)" -Diamondback_Tri_Lithium_Power_Cell = "Tri-Lithium Power Cell (Diamondback)" -Firebat_Incinerator_Gauntlets = "Incinerator Gauntlets (Firebat)" -Firebat_Juggernaut_Plating = "Juggernaut Plating (Firebat)" -Firebat_Optimized_Logistics = "Optimized Logistics (Firebat)" -Firebat_Progressive_Stimpack = "Progressive Stimpack (Firebat)" -Ghost_Crius_Suit = "Crius Suit (Ghost)" -Ghost_EMP_Rounds = "EMP Rounds (Ghost)" -Ghost_Lockdown = "Lockdown (Ghost)" -Ghost_Ocular_Implants = "Ocular Implants (Ghost)" -Goliath_Ares_Class_Targeting_System = "Ares-Class Targeting System (Goliath)" -Goliath_Jump_Jets = "Jump Jets (Goliath)" -Goliath_Multi_Lock_Weapons_System = "Multi-Lock Weapons System (Goliath)" -Goliath_Optimized_Logistics = "Optimized Logistics (Goliath)" -Hellion_Hellbat_Aspect = "Hellbat Aspect (Hellion)" -Hellion_Jump_Jets = "Jump Jets (Hellion)" -Hellion_Optimized_Logistics = "Optimized Logistics (Hellion)" -Hellion_Progressive_Stimpack = "Progressive Stimpack (Hellion)" -Hellion_Smart_Servos = "Smart Servos (Hellion)" -Hellion_Thermite_Filaments = "Thermite Filaments (Hellion)" -Hellion_Twin_Linked_Flamethrower = "Twin-Linked Flamethrower (Hellion)" -Liberator_Advanced_Ballistics = "Advanced Ballistics (Liberator)" -Liberator_Cloak = "Cloak (Liberator)" -Liberator_Laser_Targeting_System = "Laser Targeting System (Liberator)" -Liberator_Optimized_Logistics = "Optimized Logistics (Liberator)" -Liberator_Raid_Artillery = "Raid Artillery (Liberator)" -Marauder_Concussive_Shells = "Concussive Shells (Marauder)" -Marauder_Internal_Tech_Module = "Internal Tech Module (Marauder)" -Marauder_Kinetic_Foam = "Kinetic Foam (Marauder)" -Marauder_Laser_Targeting_System = "Laser Targeting System (Marauder)" -Marauder_Magrail_Munitions = "Magrail Munitions (Marauder)" -Marauder_Progressive_Stimpack = "Progressive Stimpack (Marauder)" -Marine_Combat_Shield = "Combat Shield (Marine)" -Marine_Laser_Targeting_System = "Laser Targeting System (Marine)" -Marine_Magrail_Munitions = "Magrail Munitions (Marine)" -Marine_Optimized_Logistics = "Optimized Logistics (Marine)" -Marine_Progressive_Stimpack = "Progressive Stimpack (Marine)" -Medic_Advanced_Medic_Facilities = "Advanced Medic Facilities (Medic)" -Medic_Optical_Flare = "Optical Flare (Medic)" -Medic_Optimized_Logistics = "Optimized Logistics (Medic)" -Medic_Restoration = "Restoration (Medic)" -Medic_Stabilizer_Medpacks = "Stabilizer Medpacks (Medic)" -Medivac_Advanced_Healing_AI = "Advanced Healing AI (Medivac)" -Medivac_Afterburners = "Afterburners (Medivac)" -Medivac_Expanded_Hull = "Expanded Hull (Medivac)" -Medivac_Rapid_Deployment_Tube = "Rapid Deployment Tube (Medivac)" -Missile_Turret_Hellstorm_Batteries = "Hellstorm Batteries (Missile Turret)" -Missile_Turret_Titanium_Housing = "Titanium Housing (Missile Turret)" -Predator_Optimized_Logistics = "Optimized Logistics (Predator)" -Raven_Anti_Armor_Missile = "Anti-Armor Missile (Raven)" -Raven_Bio_Mechanical_Repair_Drone = "Bio Mechanical Repair Drone (Raven)" -Raven_Hunter_Seeker_Weapon = "Hunter-Seeker Weapon (Raven)" -Raven_Interference_Matrix = "Interference Matrix (Raven)" -Raven_Internal_Tech_Module = "Internal Tech Module (Raven)" -Raven_Railgun_Turret = "Railgun Turret (Raven)" -Raven_Spider_Mines = "Spider Mines (Raven)" -Reaper_Advanced_Cloaking_Field = "Advanced Cloaking Field (Reaper)" -Reaper_Combat_Drugs = "Combat Drugs (Reaper)" -Reaper_G4_Clusterbomb = "G-4 Clusterbomb (Reaper)" -Reaper_Laser_Targeting_System = "Laser Targeting System (Reaper)" -Reaper_Progressive_Stimpack = "Progressive Stimpack (Reaper)" -Reaper_Spider_Mines = "Spider Mines (Reaper)" -Reaper_U238_Rounds = "U-238 Rounds (Reaper)" -Science_Vessel_Defensive_Matrix = "Defensive Matrix (Science Vessel)" -Science_Vessel_EMP_Shockwave = "EMP Shockwave (Science Vessel)" -SCV_Advanced_Construction = "Advanced Construction (SCV)" -SCV_Dual_Fusion_Welders = "Dual-Fusion Welders (SCV)" -Siege_Tank_Advanced_Siege_Tech = "Advanced Siege Tech (Siege Tank)" -Siege_Tank_Graduating_Range = "Graduating Range (Siege Tank)" -Siege_Tank_Internal_Tech_Module = "Internal Tech Module (Siege Tank)" -Siege_Tank_Jump_Jets = "Jump Jets (Siege Tank)" -Siege_Tank_Laser_Targeting_System = "Laser Targeting System (Siege Tank)" -Siege_Tank_Maelstrom_Rounds = "Maelstrom Rounds (Siege Tank)" -Siege_Tank_Shaped_Blast = "Shaped Blast (Siege Tank)" -Siege_Tank_Smart_Servos = "Smart Servos (Siege Tank)" -Siege_Tank_Spider_Mines = "Spider Mines (Siege Tank)" -Spectre_Impaler_Rounds = "Impaler Rounds (Spectre)" -Spectre_Nyx_Class_Cloaking_Module = "Nyx-Class Cloaking Module (Spectre)" -Spectre_Psionic_Lash = "Psionic Lash (Spectre)" -Spider_Mine_Cerberus_Mine = "Cerberus Mine (Spider Mine)" -Spider_Mine_High_Explosive_Munition = "High Explosive Munition (Spider Mine)" -Thor_330mm_Barrage_Cannon = "330mm Barrage Cannon (Thor)" -Thor_Immortality_Protocol = "Immortality Protocol (Thor)" -Thor_Progressive_High_Impact_Payload = "Progressive High Impact Payload (Thor)" -Valkyrie_Afterburners = "Afterburners (Valkyrie)" -Valkyrie_Burst_Lasers = "Burst Lasers (Valkyrie)" -Valkyrie_Enhanced_Cluster_Launchers = "Enhanced Cluster Launchers (Valkyrie)" -Valkyrie_Shaped_Hull = "Shaped Hull (Valkyrie)" -Viking_Magrail_Munitions = "Magrail Munitions (Viking)" -Viking_Phobos_Class_Weapons_System = "Phobos-Class Weapons System (Viking)" -Viking_Ripwave_Missiles = "Ripwave Missiles (Viking)" -Viking_Smart_Servos = "Smart Servos (Viking)" -Vulture_Auto_Launchers = "Auto Launchers (Vulture)" -Vulture_Ion_Thrusters = "Ion Thrusters (Vulture)" -Vulture_Replenishable_Magazine = "Replenishable Magazine (Vulture)" -Widow_Mine_Black_Market_Launchers = "Black Market Launchers (Widow Mine)" -Widow_Mine_Concealment = "Concealment (Widow Mine)" -Widow_Mine_Drilling_Claws = "Drilling Claws (Widow Mine)" -Widow_Mine_Executioner_Missiles = "Executioner Missiles (Widow Mine)" -Wraith_Advanced_Laser_Technology = "Advanced Laser Technology (Wraith)" -Wraith_Displacement_Field = "Displacement Field (Wraith)" -Wraith_Tomahawk_Power_Cells = "Tomahawk Power Cells (Wraith)" +BANSHEE_HYPERFLIGHT_ROTORS = "Hyperflight Rotors (Banshee)" +BANSHEE_INTERNAL_TECH_MODULE = "Internal Tech Module (Banshee)" +BANSHEE_LASER_TARGETING_SYSTEM = "Laser Targeting System (Banshee)" +BANSHEE_PROGRESSIVE_CROSS_SPECTRUM_DAMPENERS = "Progressive Cross-Spectrum Dampeners (Banshee)" +BANSHEE_SHOCKWAVE_MISSILE_BATTERY = "Shockwave Missile Battery (Banshee)" +BATTLECRUISER_ATX_LASER_BATTERY = "ATX Laser Battery (Battlecruiser)" +BATTLECRUISER_CLOAK = "Cloak (Battlecruiser)" +BATTLECRUISER_DEFENSIVE_MATRIX = "Defensive Matrix (Battlecruiser)" +BATTLECRUISER_INTERNAL_TECH_MODULE = "Internal Tech Module (Battlecruiser)" +BATTLECRUISER_MISSILE_PODS = "Missile Pods (Battlecruiser)" +BATTLECRUISER_OPTIMIZED_LOGISTICS = "Optimized Logistics (Battlecruiser)" +BATTLECRUISER_TACTICAL_JUMP = "Tactical Jump (Battlecruiser)" +BUILDING_FIRE_SUPPRESSION_SYSTEM = "Fire-Suppression System (Building)" +BUILDING_ORBITAL_COMMAND = "Orbital Command (Building)" +BUNKER_NEOSTEEL_BUNKER = "Neosteel Bunker (Bunker)" +BUNKER_PROJECTILE_ACCELERATOR = "Projectile Accelerator (Bunker)" +CYCLONE_MAG_FIELD_ACCELERATORS = "Mag-Field Accelerators (Cyclone)" +CYCLONE_MAG_FIELD_LAUNCHERS = "Mag-Field Launchers (Cyclone)" +CYCLONE_RAPID_FIRE_LAUNCHERS = "Rapid Fire Launchers (Cyclone)" +CYCLONE_TARGETING_OPTICS = "Targeting Optics (Cyclone)" +DIAMONDBACK_BURST_CAPACITORS = "Burst Capacitors (Diamondback)" +DIAMONDBACK_HYPERFLUXOR = "Hyperfluxor (Diamondback)" +DIAMONDBACK_OPTIMIZED_LOGISTICS = "Optimized Logistics (Diamondback)" +DIAMONDBACK_SHAPED_HULL = "Shaped Hull (Diamondback)" +DIAMONDBACK_TRI_LITHIUM_POWER_CELL = "Tri-Lithium Power Cell (Diamondback)" +FIREBAT_INCINERATOR_GAUNTLETS = "Incinerator Gauntlets (Firebat)" +FIREBAT_JUGGERNAUT_PLATING = "Juggernaut Plating (Firebat)" +FIREBAT_OPTIMIZED_LOGISTICS = "Optimized Logistics (Firebat)" +FIREBAT_PROGRESSIVE_STIMPACK = "Progressive Stimpack (Firebat)" +GHOST_CRIUS_SUIT = "Crius Suit (Ghost)" +GHOST_EMP_ROUNDS = "EMP Rounds (Ghost)" +GHOST_LOCKDOWN = "Lockdown (Ghost)" +GHOST_OCULAR_IMPLANTS = "Ocular Implants (Ghost)" +GOLIATH_ARES_CLASS_TARGETING_SYSTEM = "Ares-Class Targeting System (Goliath)" +GOLIATH_JUMP_JETS = "Jump Jets (Goliath)" +GOLIATH_MULTI_LOCK_WEAPONS_SYSTEM = "Multi-Lock Weapons System (Goliath)" +GOLIATH_OPTIMIZED_LOGISTICS = "Optimized Logistics (Goliath)" +HELLION_HELLBAT_ASPECT = "Hellbat Aspect (Hellion)" +HELLION_JUMP_JETS = "Jump Jets (Hellion)" +HELLION_OPTIMIZED_LOGISTICS = "Optimized Logistics (Hellion)" +HELLION_PROGRESSIVE_STIMPACK = "Progressive Stimpack (Hellion)" +HELLION_SMART_SERVOS = "Smart Servos (Hellion)" +HELLION_THERMITE_FILAMENTS = "Thermite Filaments (Hellion)" +HELLION_TWIN_LINKED_FLAMETHROWER = "Twin-Linked Flamethrower (Hellion)" +LIBERATOR_ADVANCED_BALLISTICS = "Advanced Ballistics (Liberator)" +LIBERATOR_CLOAK = "Cloak (Liberator)" +LIBERATOR_LASER_TARGETING_SYSTEM = "Laser Targeting System (Liberator)" +LIBERATOR_OPTIMIZED_LOGISTICS = "Optimized Logistics (Liberator)" +LIBERATOR_RAID_ARTILLERY = "Raid Artillery (Liberator)" +MARAUDER_CONCUSSIVE_SHELLS = "Concussive Shells (Marauder)" +MARAUDER_INTERNAL_TECH_MODULE = "Internal Tech Module (Marauder)" +MARAUDER_KINETIC_FOAM = "Kinetic Foam (Marauder)" +MARAUDER_LASER_TARGETING_SYSTEM = "Laser Targeting System (Marauder)" +MARAUDER_MAGRAIL_MUNITIONS = "Magrail Munitions (Marauder)" +MARAUDER_PROGRESSIVE_STIMPACK = "Progressive Stimpack (Marauder)" +MARINE_COMBAT_SHIELD = "Combat Shield (Marine)" +MARINE_LASER_TARGETING_SYSTEM = "Laser Targeting System (Marine)" +MARINE_MAGRAIL_MUNITIONS = "Magrail Munitions (Marine)" +MARINE_OPTIMIZED_LOGISTICS = "Optimized Logistics (Marine)" +MARINE_PROGRESSIVE_STIMPACK = "Progressive Stimpack (Marine)" +MEDIC_ADVANCED_MEDIC_FACILITIES = "Advanced Medic Facilities (Medic)" +MEDIC_OPTICAL_FLARE = "Optical Flare (Medic)" +MEDIC_OPTIMIZED_LOGISTICS = "Optimized Logistics (Medic)" +MEDIC_RESTORATION = "Restoration (Medic)" +MEDIC_STABILIZER_MEDPACKS = "Stabilizer Medpacks (Medic)" +MEDIVAC_ADVANCED_HEALING_AI = "Advanced Healing AI (Medivac)" +MEDIVAC_AFTERBURNERS = "Afterburners (Medivac)" +MEDIVAC_EXPANDED_HULL = "Expanded Hull (Medivac)" +MEDIVAC_RAPID_DEPLOYMENT_TUBE = "Rapid Deployment Tube (Medivac)" +MISSILE_TURRET_HELLSTORM_BATTERIES = "Hellstorm Batteries (Missile Turret)" +MISSILE_TURRET_TITANIUM_HOUSING = "Titanium Housing (Missile Turret)" +PREDATOR_OPTIMIZED_LOGISTICS = "Optimized Logistics (Predator)" +RAVEN_ANTI_ARMOR_MISSILE = "Anti-Armor Missile (Raven)" +RAVEN_BIO_MECHANICAL_REPAIR_DRONE = "Bio Mechanical Repair Drone (Raven)" +RAVEN_HUNTER_SEEKER_WEAPON = "Hunter-Seeker Weapon (Raven)" +RAVEN_INTERFERENCE_MATRIX = "Interference Matrix (Raven)" +RAVEN_INTERNAL_TECH_MODULE = "Internal Tech Module (Raven)" +RAVEN_RAILGUN_TURRET = "Railgun Turret (Raven)" +RAVEN_SPIDER_MINES = "Spider Mines (Raven)" +REAPER_ADVANCED_CLOAKING_FIELD = "Advanced Cloaking Field (Reaper)" +REAPER_COMBAT_DRUGS = "Combat Drugs (Reaper)" +REAPER_G4_CLUSTERBOMB = "G-4 Clusterbomb (Reaper)" +REAPER_LASER_TARGETING_SYSTEM = "Laser Targeting System (Reaper)" +REAPER_PROGRESSIVE_STIMPACK = "Progressive Stimpack (Reaper)" +REAPER_SPIDER_MINES = "Spider Mines (Reaper)" +REAPER_U238_ROUNDS = "U-238 Rounds (Reaper)" +SCIENCE_VESSEL_DEFENSIVE_MATRIX = "Defensive Matrix (Science Vessel)" +SCIENCE_VESSEL_EMP_SHOCKWAVE = "EMP Shockwave (Science Vessel)" +SCV_ADVANCED_CONSTRUCTION = "Advanced Construction (SCV)" +SCV_DUAL_FUSION_WELDERS = "Dual-Fusion Welders (SCV)" +SIEGE_TANK_ADVANCED_SIEGE_TECH = "Advanced Siege Tech (Siege Tank)" +SIEGE_TANK_GRADUATING_RANGE = "Graduating Range (Siege Tank)" +SIEGE_TANK_INTERNAL_TECH_MODULE = "Internal Tech Module (Siege Tank)" +SIEGE_TANK_JUMP_JETS = "Jump Jets (Siege Tank)" +SIEGE_TANK_LASER_TARGETING_SYSTEM = "Laser Targeting System (Siege Tank)" +SIEGE_TANK_MAELSTROM_ROUNDS = "Maelstrom Rounds (Siege Tank)" +SIEGE_TANK_SHAPED_BLAST = "Shaped Blast (Siege Tank)" +SIEGE_TANK_SMART_SERVOS = "Smart Servos (Siege Tank)" +SIEGE_TANK_SPIDER_MINES = "Spider Mines (Siege Tank)" +SPECTRE_IMPALER_ROUNDS = "Impaler Rounds (Spectre)" +SPECTRE_NYX_CLASS_CLOAKING_MODULE = "Nyx-Class Cloaking Module (Spectre)" +SPECTRE_PSIONIC_LASH = "Psionic Lash (Spectre)" +SPIDER_MINE_CERBERUS_MINE = "Cerberus Mine (Spider Mine)" +SPIDER_MINE_HIGH_EXPLOSIVE_MUNITION = "High Explosive Munition (Spider Mine)" +THOR_330MM_BARRAGE_CANNON = "330mm Barrage Cannon (Thor)" +THOR_IMMORTALITY_PROTOCOL = "Immortality Protocol (Thor)" +THOR_PROGRESSIVE_HIGH_IMPACT_PAYLOAD = "Progressive High Impact Payload (Thor)" +VALKYRIE_AFTERBURNERS = "Afterburners (Valkyrie)" +VALKYRIE_BURST_LASERS = "Burst Lasers (Valkyrie)" +VALKYRIE_ENHANCED_CLUSTER_LAUNCHERS = "Enhanced Cluster Launchers (Valkyrie)" +VALKYRIE_SHAPED_HULL = "Shaped Hull (Valkyrie)" +VIKING_MAGRAIL_MUNITIONS = "Magrail Munitions (Viking)" +VIKING_PHOBOS_CLASS_WEAPONS_SYSTEM = "Phobos-Class Weapons System (Viking)" +VIKING_RIPWAVE_MISSILES = "Ripwave Missiles (Viking)" +VIKING_SMART_SERVOS = "Smart Servos (Viking)" +VULTURE_AUTO_LAUNCHERS = "Auto Launchers (Vulture)" +VULTURE_ION_THRUSTERS = "Ion Thrusters (Vulture)" +VULTURE_REPLENISHABLE_MAGAZINE = "Replenishable Magazine (Vulture)" +WIDOW_MINE_BLACK_MARKET_LAUNCHERS = "Black Market Launchers (Widow Mine)" +WIDOW_MINE_CONCEALMENT = "Concealment (Widow Mine)" +WIDOW_MINE_DRILLING_CLAWS = "Drilling Claws (Widow Mine)" +WIDOW_MINE_EXECUTIONER_MISSILES = "Executioner Missiles (Widow Mine)" +WRAITH_ADVANCED_LASER_TECHNOLOGY = "Advanced Laser Technology (Wraith)" +WRAITH_DISPLACEMENT_FIELD = "Displacement Field (Wraith)" +WRAITH_TOMAHAWK_POWER_CELLS = "Tomahawk Power Cells (Wraith)" # Protoss Units -Zealot = "Zealot" -Stalker = "Stalker" -High_Templar = "High Templar" -Dark_Templar = "Dark Templar" -Immortal = "Immortal" -Colossus = "Colossus" -Phoenix = "Phoenix" -Void_Ray = "Void Ray" -Carrier = "Carrier" +ZEALOT = "Zealot" +STALKER = "Stalker" +HIGH_TEMPLAR = "High Templar" +DARK_TEMPLAR = "Dark Templar" +IMMORTAL = "Immortal" +COLOSSUS = "Colossus" +PHOENIX = "Phoenix" +VOID_RAY = "Void Ray" +CARRIER = "Carrier" # Filler items -Starting_Minerals = "+15 Starting Minerals" -Starting_Vespene = "+15 Starting Vespene" -Starting_Supply = "+2 Starting Supply" -Nothing = "Nothing" +STARTING_MINERALS = "+15 Starting Minerals" +STARTING_VESPENE = "+15 Starting Vespene" +STARTING_SUPPLY = "+2 Starting Supply" +NOTHING = "Nothing" # Zerg Units -Zergling = "Zergling" -Swarm_Queen = "Swarm Queen" -Roach = "Roach" -Hydralisk = "Hydralisk" -Baneling = "Baneling" -Aberration = "Aberration" -Mutalisk = "Mutalisk" -Swarm_Host = "Swarm Host" -Infestor = "Infestor" -Ultralisk = "Ultralisk" -Spore_Crawler = "Spore Crawler" -Spine_Crawler = "Spine Crawler" +ZERGLING = "Zergling" +SWARM_QUEEN = "Swarm Queen" +ROACH = "Roach" +HYDRALISK = "Hydralisk" +BANELING = "Baneling" +ABERRATION = "Aberration" +MUTALISK = "Mutalisk" +SWARM_HOST = "Swarm Host" +INFESTOR = "Infestor" +ULTRALISK = "Ultralisk" +SPORE_CRAWLER = "Spore Crawler" +SPINE_CRAWLER = "Spine Crawler" # Zerg Weapon / Armor Upgrades -zerg_upgrade_prefix = "Progressive Zerg" -zerg_flyer_upgrade_prefix = f"{zerg_upgrade_prefix} Flyer" +ZERG_UPGRADE_PREFIX = "Progressive Zerg" +ZERG_FLYER_UPGRADE_PREFIX = f"{ZERG_UPGRADE_PREFIX} Flyer" -Progressive_Zerg_Melee_Attack = f"{zerg_upgrade_prefix} Melee Attack" -Progressive_Zerg_Missile_Attack = f"{zerg_upgrade_prefix} Missile Attack" -Progressive_Zerg_Ground_Carapace = f"{zerg_upgrade_prefix} Ground Carapace" -Progressive_Zerg_Flyer_Attack = f"{zerg_flyer_upgrade_prefix} Attack" -Progressive_Zerg_Flyer_Carapace = f"{zerg_flyer_upgrade_prefix} Carapace" -Progressive_Zerg_Weapon_Upgrade = f"{zerg_upgrade_prefix} Weapon Upgrade" -Progressive_Zerg_Armor_Upgrade = f"{zerg_upgrade_prefix} Armor Upgrade" -Progressive_Zerg_Ground_Upgrade = f"{zerg_upgrade_prefix} Ground Upgrade" -Progressive_Zerg_Flyer_Upgrade = f"{zerg_flyer_upgrade_prefix} Upgrade" -Progressive_Zerg_Weapon_Armor_Upgrade = f"{zerg_upgrade_prefix} Weapon/Armor Upgrade" +PROGRESSIVE_ZERG_MELEE_ATTACK = f"{ZERG_UPGRADE_PREFIX} Melee Attack" +PROGRESSIVE_ZERG_MISSILE_ATTACK = f"{ZERG_UPGRADE_PREFIX} Missile Attack" +PROGRESSIVE_ZERG_GROUND_CARAPACE = f"{ZERG_UPGRADE_PREFIX} Ground Carapace" +PROGRESSIVE_ZERG_FLYER_ATTACK = f"{ZERG_FLYER_UPGRADE_PREFIX} Attack" +PROGRESSIVE_ZERG_FLYER_CARAPACE = f"{ZERG_FLYER_UPGRADE_PREFIX} Carapace" +PROGRESSIVE_ZERG_WEAPON_UPGRADE = f"{ZERG_UPGRADE_PREFIX} Weapon Upgrade" +PROGRESSIVE_ZERG_ARMOR_UPGRADE = f"{ZERG_UPGRADE_PREFIX} Armor Upgrade" +PROGRESSIVE_ZERG_GROUND_UPGRADE = f"{ZERG_UPGRADE_PREFIX} Ground Upgrade" +PROGRESSIVE_ZERG_FLYER_UPGRADE = f"{ZERG_FLYER_UPGRADE_PREFIX} Upgrade" +PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE = f"{ZERG_UPGRADE_PREFIX} Weapon/Armor Upgrade" # Zerg Unit Upgrades -Zergling_Hardened_Carapace = "Hardened Carapace (Zergling)" -Zergling_Adrenal_Overload = "Adrenal Overload (Zergling)" -Zergling_Metabolic_Boost = "Metabolic Boost (Zergling)" -Roach_Hydriodic_Bile = "Hydriodic Bile (Roach)" -Roach_Adaptive_Plating = "Adaptive Plating (Roach)" -Roach_Tunneling_Claws = "Tunneling Claws (Roach)" -Hydralisk_Frenzy = "Frenzy (Hydralisk)" -Hydralisk_Ancillary_Carapace = "Ancillary Carapace (Hydralisk)" -Hydralisk_Grooved_Spines = "Grooved Spines (Hydralisk)" -Baneling_Corrosive_Acid = "Corrosive Acid (Baneling)" -Baneling_Rupture = "Rupture (Baneling)" -Baneling_Regenerative_Acid = "Regenerative Acid (Baneling)" -Mutalisk_Vicious_Glave = "Vicious Glave (Mutalisk)" -Mutalisk_Rapid_Regeneration = "Rapid Regeneration (Mutalisk)" -Mutalisk_Sundering_Glave = "Sundering Glave (Mutalisk)" -Swarm_Host_Burrow = "Burrow (Swarm Host)" -Swarm_Host_Rapid_Incubation = "Rapid Incubation (Swarm Host)" -Swarm_Host_Pressurized_Glands = "Pressurized Glands (Swarm Host)" -Ultralisk_Burrow_Charge = "Burrow Charge (Ultralisk)" -Ultralisk_Tissue_Animation = "Tissue Animation (Ultralisk)" -Ultralisk_Monarch_Blades = "Monarch Blades (Ultralisk)" +ZERGLING_HARDENED_CARAPACE = "Hardened Carapace (Zergling)" +ZERGLING_ADRENAL_OVERLOAD = "Adrenal Overload (Zergling)" +ZERGLING_METABOLIC_BOOST = "Metabolic Boost (Zergling)" +ROACH_HYDRIODIC_BILE = "Hydriodic Bile (Roach)" +ROACH_ADAPTIVE_PLATING = "Adaptive Plating (Roach)" +ROACH_TUNNELING_CLAWS = "Tunneling Claws (Roach)" +HYDRALISK_FRENZY = "Frenzy (Hydralisk)" +HYDRALISK_ANCILLARY_CARAPACE = "Ancillary Carapace (Hydralisk)" +HYDRALISK_GROOVED_SPINES = "Grooved Spines (Hydralisk)" +BANELING_CORROSIVE_ACID = "Corrosive Acid (Baneling)" +BANELING_RUPTURE = "Rupture (Baneling)" +BANELING_REGENERATIVE_ACID = "Regenerative Acid (Baneling)" +MUTALISK_VICIOUS_GLAVE = "Vicious Glave (Mutalisk)" +MUTALISK_RAPID_REGENERATION = "Rapid Regeneration (Mutalisk)" +MUTALISK_SUNDERING_GLAVE = "Sundering Glave (Mutalisk)" +SWARM_HOST_BURROW = "Burrow (Swarm Host)" +SWARM_HOST_RAPID_INCUBATION = "Rapid Incubation (Swarm Host)" +SWARM_HOST_PRESSURIZED_GLANDS = "Pressurized Glands (Swarm Host)" +ULTRALISK_BURROW_CHARGE = "Burrow Charge (Ultralisk)" +ULTRALISK_TISSUE_ANIMATION = "Tissue Animation (Ultralisk)" +ULTRALISK_MONARCH_BLADES = "Monarch Blades (Ultralisk)" # Zerg Strains -Zergling_Raptor_Strain = "Raptor Strain (Zergling)" -Zergling_Swarmling_Strain = "Swarmling Strain (Zergling)" -Roach_Vile_Strain = "Vile Strain (Roach)" -Roach_Corpser_Strain = "Corpser Strain (Roach)" -Hydralisk_Impaler_Strain = "Impaler Strain (Hydralisk)" -Hydralisk_Lurker_Strain = "Lurker Strain (Hydralisk)" -Baneling_Splitter_Strain = "Splitter Strain (Baneling)" -Baneling_Hunter_Strain = "Hunter Strain (Baneling)" -Mutalisk_Brood_Lord_Strain = "Brood Lord Strain (Mutalisk)" -Mutalisk_Viper_Strain = "Viper Strain (Mutalisk)" -Swarm_Host_Carrion_Strain = "Carrion Strain (Swarm Host)" -Swarm_Host_Creeper_Strain = "Creeper Strain (Swarm Host)" -Ultralisk_Noxious_Strain = "Noxious Strain (Ultralisk)" -Ultralisk_Torrasque_Strain = "Torrasque Strain (Ultralisk)" +ZERGLING_RAPTOR_STRAIN = "Raptor Strain (Zergling)" +ZERGLING_SWARMLING_STRAIN = "Swarmling Strain (Zergling)" +ROACH_VILE_STRAIN = "Vile Strain (Roach)" +ROACH_CORPSER_STRAIN = "Corpser Strain (Roach)" +HYDRALISK_IMPALER_STRAIN = "Impaler Strain (Hydralisk)" +HYDRALISK_LURKER_STRAIN = "Lurker Strain (Hydralisk)" +BANELING_SPLITTER_STRAIN = "Splitter Strain (Baneling)" +BANELING_HUNTER_STRAIN = "Hunter Strain (Baneling)" +MUTALISK_BROOD_LORD_STRAIN = "Brood Lord Strain (Mutalisk)" +MUTALISK_VIPER_STRAIN = "Viper Strain (Mutalisk)" +SWARM_HOST_CARRION_STRAIN = "Carrion Strain (Swarm Host)" +SWARM_HOST_CREEPER_STRAIN = "Creeper Strain (Swarm Host)" +ULTRALISK_NOXIOUS_STRAIN = "Noxious Strain (Ultralisk)" +ULTRALISK_TORRASQUE_STRAIN = "Torrasque Strain (Ultralisk)" # Kerrigan Upgrades -Kerrigan_Kinetic_Blast = "Kinetic Blast (Kerrigan Tier 1)" -Kerrigan_Heroic_Fortitude = "Heroic Fortitude (Kerrigan Tier 1)" -Kerrigan_Leaping_Strike = "Leaping Strike (Kerrigan Tier 1)" -Kerrigan_Crushing_Grip = "Crushing Grip (Kerrigan Tier 2)" -Kerrigan_Chain_Reaction = "Chain Reaction (Kerrigan Tier 2)" -Kerrigan_Psionic_Shift = "Psionic Shift (Kerrigan Tier 2)" -Kerrigan_Zergling_Reconstitution = "Zergling Reconstitution (Kerrigan Tier 3)" -Kerrigan_Improved_Overlords = "Improved Overlords (Kerrigan Tier 3)" -Kerrigan_Automated_Extractors = "Automated Extractors (Kerrigan Tier 3)" -Kerrigan_Wild_Mutation = "Wild Mutation (Kerrigan Tier 4)" -Kerrigan_Spawn_Banelings = "Spawn Banelings (Kerrigan Tier 4)" -Kerrigan_Mend = "Mend (Kerrigan Tier 4)" -Kerrigan_Twin_Drones = "Twin Drones (Kerrigan Tier 5)" -Kerrigan_Malignant_Creep = "Malignant Creep (Kerrigan Tier 5)" -Kerrigan_Vespene_Efficiency = "Vespene Efficiency (Kerrigan Tier 5)" -Kerrigan_Infest_Broodlings = "Infest Broodlings (Kerrigan Tier 6)" -Kerrigan_Fury = "Fury (Kerrigan Tier 6)" -Kerrigan_Ability_Efficiency = "Ability Efficiency (Kerrigan Tier 6)" -Kerrigan_Apocalypse = "Apocalypse (Kerrigan Tier 7)" -Kerrigan_Spawn_Leviathan = "Spawn Leviathan (Kerrigan Tier 7)" -Kerrigan_Drop_Pods = "Drop-Pods (Kerrigan Tier 7)" -Kerrigan_Primal_Form = "Primal Form (Kerrigan)" +KERRIGAN_KINETIC_BLAST = "Kinetic Blast (Kerrigan Tier 1)" +KERRIGAN_HEROIC_FORTITUDE = "Heroic Fortitude (Kerrigan Tier 1)" +KERRIGAN_LEAPING_STRIKE = "Leaping Strike (Kerrigan Tier 1)" +KERRIGAN_CRUSHING_GRIP = "Crushing Grip (Kerrigan Tier 2)" +KERRIGAN_CHAIN_REACTION = "Chain Reaction (Kerrigan Tier 2)" +KERRIGAN_PSIONIC_SHIFT = "Psionic Shift (Kerrigan Tier 2)" +KERRIGAN_ZERGLING_RECONSTITUTION = "Zergling Reconstitution (Kerrigan Tier 3)" +KERRIGAN_IMPROVED_OVERLORDS = "Improved Overlords (Kerrigan Tier 3)" +KERRIGAN_AUTOMATED_EXTRACTORS = "Automated Extractors (Kerrigan Tier 3)" +KERRIGAN_WILD_MUTATION = "Wild Mutation (Kerrigan Tier 4)" +KERRIGAN_SPAWN_BANELINGS = "Spawn Banelings (Kerrigan Tier 4)" +KERRIGAN_MEND = "Mend (Kerrigan Tier 4)" +KERRIGAN_TWIN_DRONES = "Twin Drones (Kerrigan Tier 5)" +KERRIGAN_MALIGNANT_CREEP = "Malignant Creep (Kerrigan Tier 5)" +KERRIGAN_VESPENE_EFFICIENCY = "Vespene Efficiency (Kerrigan Tier 5)" +KERRIGAN_INFEST_BROODLINGS = "Infest Broodlings (Kerrigan Tier 6)" +KERRIGAN_FURY = "Fury (Kerrigan Tier 6)" +KERRIGAN_ABILITY_EFFICIENCY = "Ability Efficiency (Kerrigan Tier 6)" +KERRIGAN_APOCALYPSE = "Apocalypse (Kerrigan Tier 7)" +KERRIGAN_SPAWN_LEVIATHAN = "Spawn Leviathan (Kerrigan Tier 7)" +KERRIGAN_DROP_PODS = "Drop-Pods (Kerrigan Tier 7)" +KERRIGAN_PRIMAL_FORM = "Primal Form (Kerrigan)" # Kerrigan Levels -Kerrigan_Levels_1 = "1 Kerrigan Level" -Kerrigan_Levels_2 = "2 Kerrigan Levels" -Kerrigan_Levels_3 = "3 Kerrigan Levels" -Kerrigan_Levels_4 = "4 Kerrigan Levels" -Kerrigan_Levels_5 = "5 Kerrigan Levels" -Kerrigan_Levels_6 = "6 Kerrigan Levels" -Kerrigan_Levels_7 = "7 Kerrigan Levels" -Kerrigan_Levels_8 = "8 Kerrigan Levels" -Kerrigan_Levels_9 = "9 Kerrigan Levels" -Kerrigan_Levels_10 = "10 Kerrigan Levels" -Kerrigan_Levels_14 = "14 Kerrigan Levels" -Kerrigan_Levels_35 = "35 Kerrigan Levels" -Kerrigan_Levels_70 = "70 Kerrigan Levels" +KERRIGAN_LEVELS_1 = "1 Kerrigan Level" +KERRIGAN_LEVELS_2 = "2 Kerrigan Levels" +KERRIGAN_LEVELS_3 = "3 Kerrigan Levels" +KERRIGAN_LEVELS_4 = "4 Kerrigan Levels" +KERRIGAN_LEVELS_5 = "5 Kerrigan Levels" +KERRIGAN_LEVELS_6 = "6 Kerrigan Levels" +KERRIGAN_LEVELS_7 = "7 Kerrigan Levels" +KERRIGAN_LEVELS_8 = "8 Kerrigan Levels" +KERRIGAN_LEVELS_9 = "9 Kerrigan Levels" +KERRIGAN_LEVELS_10 = "10 Kerrigan Levels" +KERRIGAN_LEVELS_14 = "14 Kerrigan Levels" +KERRIGAN_LEVELS_35 = "35 Kerrigan Levels" +KERRIGAN_LEVELS_70 = "70 Kerrigan Levels" diff --git a/worlds/sc2/Items.py b/worlds/sc2/Items.py index fb0411219e4d..d9dfd1987515 100644 --- a/worlds/sc2/Items.py +++ b/worlds/sc2/Items.py @@ -29,335 +29,335 @@ def get_full_item_list(): item_table = { # WoL - ItemNames.Marine: ItemData(0 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Medic: ItemData(1 + SC2WOL_ITEM_ID_OFFSET, "Unit", 1, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Firebat: ItemData(2 + SC2WOL_ITEM_ID_OFFSET, "Unit", 2, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Marauder: ItemData(3 + SC2WOL_ITEM_ID_OFFSET, "Unit", 3, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Reaper: ItemData(4 + SC2WOL_ITEM_ID_OFFSET, "Unit", 4, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Hellion: ItemData(5 + SC2WOL_ITEM_ID_OFFSET, "Unit", 5, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Vulture: ItemData(6 + SC2WOL_ITEM_ID_OFFSET, "Unit", 6, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Goliath: ItemData(7 + SC2WOL_ITEM_ID_OFFSET, "Unit", 7, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Diamondback: ItemData(8 + SC2WOL_ITEM_ID_OFFSET, "Unit", 8, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Siege_Tank: ItemData(9 + SC2WOL_ITEM_ID_OFFSET, "Unit", 9, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Medivac: ItemData(10 + SC2WOL_ITEM_ID_OFFSET, "Unit", 10, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Wraith: ItemData(11 + SC2WOL_ITEM_ID_OFFSET, "Unit", 11, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Viking: ItemData(12 + SC2WOL_ITEM_ID_OFFSET, "Unit", 12, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Banshee: ItemData(13 + SC2WOL_ITEM_ID_OFFSET, "Unit", 13, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Battlecruiser: ItemData(14 + SC2WOL_ITEM_ID_OFFSET, "Unit", 14, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Ghost: ItemData(15 + SC2WOL_ITEM_ID_OFFSET, "Unit", 15, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Spectre: ItemData(16 + SC2WOL_ITEM_ID_OFFSET, "Unit", 16, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Thor: ItemData(17 + SC2WOL_ITEM_ID_OFFSET, "Unit", 17, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.MARINE: ItemData(0 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.MEDIC: ItemData(1 + SC2WOL_ITEM_ID_OFFSET, "Unit", 1, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.FIREBAT: ItemData(2 + SC2WOL_ITEM_ID_OFFSET, "Unit", 2, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.MARAUDER: ItemData(3 + SC2WOL_ITEM_ID_OFFSET, "Unit", 3, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.REAPER: ItemData(4 + SC2WOL_ITEM_ID_OFFSET, "Unit", 4, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.HELLION: ItemData(5 + SC2WOL_ITEM_ID_OFFSET, "Unit", 5, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.VULTURE: ItemData(6 + SC2WOL_ITEM_ID_OFFSET, "Unit", 6, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.GOLIATH: ItemData(7 + SC2WOL_ITEM_ID_OFFSET, "Unit", 7, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.DIAMONDBACK: ItemData(8 + SC2WOL_ITEM_ID_OFFSET, "Unit", 8, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.SIEGE_TANK: ItemData(9 + SC2WOL_ITEM_ID_OFFSET, "Unit", 9, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.MEDIVAC: ItemData(10 + SC2WOL_ITEM_ID_OFFSET, "Unit", 10, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.WRAITH: ItemData(11 + SC2WOL_ITEM_ID_OFFSET, "Unit", 11, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.VIKING: ItemData(12 + SC2WOL_ITEM_ID_OFFSET, "Unit", 12, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.BANSHEE: ItemData(13 + SC2WOL_ITEM_ID_OFFSET, "Unit", 13, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.BATTLECRUISER: ItemData(14 + SC2WOL_ITEM_ID_OFFSET, "Unit", 14, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.GHOST: ItemData(15 + SC2WOL_ITEM_ID_OFFSET, "Unit", 15, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.SPECTRE: ItemData(16 + SC2WOL_ITEM_ID_OFFSET, "Unit", 16, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.THOR: ItemData(17 + SC2WOL_ITEM_ID_OFFSET, "Unit", 17, SC2Race.TERRAN, classification=ItemClassification.progression), # EE units - ItemNames.Liberator: ItemData(18 + SC2WOL_ITEM_ID_OFFSET, "Unit", 18, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"nco", "ext"}), - ItemNames.Valkyrie: ItemData(19 + SC2WOL_ITEM_ID_OFFSET, "Unit", 19, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"bw"}), - ItemNames.Widow_Mine: ItemData(20 + SC2WOL_ITEM_ID_OFFSET, "Unit", 20, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"ext"}), - ItemNames.Cyclone: ItemData(21 + SC2WOL_ITEM_ID_OFFSET, "Unit", 21, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"ext"}), + ItemNames.LIBERATOR: ItemData(18 + SC2WOL_ITEM_ID_OFFSET, "Unit", 18, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"nco", "ext"}), + ItemNames.VALKYRIE: ItemData(19 + SC2WOL_ITEM_ID_OFFSET, "Unit", 19, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"bw"}), + ItemNames.WIDOW_MINE: ItemData(20 + SC2WOL_ITEM_ID_OFFSET, "Unit", 20, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"ext"}), + ItemNames.CYCLONE: ItemData(21 + SC2WOL_ITEM_ID_OFFSET, "Unit", 21, SC2Race.TERRAN, classification=ItemClassification.progression, origin={"ext"}), # 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), - ItemNames.Progressive_Terran_Infantry_Armor: ItemData(102 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 2, SC2Race.TERRAN, quantity=3), - ItemNames.Progressive_Terran_Vehicle_Weapon: ItemData(103 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 4, SC2Race.TERRAN, quantity=3), - ItemNames.Progressive_Terran_Vehicle_Armor: ItemData(104 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 6, SC2Race.TERRAN, quantity=3), - ItemNames.Progressive_Terran_Ship_Weapon: ItemData(105 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 8, SC2Race.TERRAN, quantity=3), - ItemNames.Progressive_Terran_Ship_Armor: ItemData(106 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 10, SC2Race.TERRAN, quantity=3), + ItemNames.PROGRESSIVE_TERRAN_INFANTRY_WEAPON: ItemData(100 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 0, SC2Race.TERRAN, quantity=3), + ItemNames.PROGRESSIVE_TERRAN_INFANTRY_ARMOR: ItemData(102 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 2, SC2Race.TERRAN, quantity=3), + ItemNames.PROGRESSIVE_TERRAN_VEHICLE_WEAPON: ItemData(103 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 4, SC2Race.TERRAN, quantity=3), + ItemNames.PROGRESSIVE_TERRAN_VEHICLE_ARMOR: ItemData(104 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 6, SC2Race.TERRAN, quantity=3), + ItemNames.PROGRESSIVE_TERRAN_SHIP_WEAPON: ItemData(105 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 8, SC2Race.TERRAN, quantity=3), + ItemNames.PROGRESSIVE_TERRAN_SHIP_ARMOR: ItemData(106 + SC2WOL_ITEM_ID_OFFSET, "Upgrade", 10, SC2Race.TERRAN, quantity=3), # 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), - - ItemNames.Bunker_Projectile_Accelerator: ItemData(200 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 0, SC2Race.TERRAN, parent_item="Bunker"), - ItemNames.Bunker_Neosteel_Bunker: ItemData(201 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 1, SC2Race.TERRAN, parent_item="Bunker"), - ItemNames.Missile_Turret_Titanium_Housing: ItemData(202 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Missile Turret"), - ItemNames.Missile_Turret_Hellstorm_Batteries: ItemData(203 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 3, SC2Race.TERRAN, parent_item="Missile Turret"), - ItemNames.SCV_Advanced_Construction: ItemData(204 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 4, SC2Race.TERRAN), - ItemNames.SCV_Dual_Fusion_Welders: ItemData(205 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 5, SC2Race.TERRAN), - ItemNames.Building_Fire_Suppression_System: ItemData(206 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 6, SC2Race.TERRAN), - ItemNames.Building_Orbital_Command: ItemData(207 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 7, SC2Race.TERRAN), - ItemNames.Marine_Progressive_Stimpack: ItemData(208 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 0, SC2Race.TERRAN, parent_item="Marine", quantity=2), - ItemNames.Marine_Combat_Shield: ItemData(209 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 9, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Marine"), - ItemNames.Medic_Advanced_Medic_Facilities: ItemData(210 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 10, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic"), - ItemNames.Medic_Stabilizer_Medpacks: ItemData(211 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 11, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Medic"), - ItemNames.Firebat_Incinerator_Gauntlets: ItemData(212 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 12, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Firebat"), - ItemNames.Firebat_Juggernaut_Plating: ItemData(213 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 13, SC2Race.TERRAN, parent_item="Firebat"), - ItemNames.Marauder_Concussive_Shells: ItemData(214 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 14, SC2Race.TERRAN, parent_item="Marauder"), - ItemNames.Marauder_Kinetic_Foam: ItemData(215 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 15, SC2Race.TERRAN, parent_item="Marauder"), - ItemNames.Reaper_U238_Rounds: ItemData(216 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 16, SC2Race.TERRAN, parent_item="Reaper"), - ItemNames.Reaper_G4_Clusterbomb: ItemData(217 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 17, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Reaper"), + 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), + + ItemNames.BUNKER_PROJECTILE_ACCELERATOR: ItemData(200 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 0, SC2Race.TERRAN, parent_item="Bunker"), + ItemNames.BUNKER_NEOSTEEL_BUNKER: ItemData(201 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 1, SC2Race.TERRAN, parent_item="Bunker"), + ItemNames.MISSILE_TURRET_TITANIUM_HOUSING: ItemData(202 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Missile Turret"), + ItemNames.MISSILE_TURRET_HELLSTORM_BATTERIES: ItemData(203 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 3, SC2Race.TERRAN, parent_item="Missile Turret"), + ItemNames.SCV_ADVANCED_CONSTRUCTION: ItemData(204 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 4, SC2Race.TERRAN), + ItemNames.SCV_DUAL_FUSION_WELDERS: ItemData(205 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 5, SC2Race.TERRAN), + ItemNames.BUILDING_FIRE_SUPPRESSION_SYSTEM: ItemData(206 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 6, SC2Race.TERRAN), + ItemNames.BUILDING_ORBITAL_COMMAND: ItemData(207 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 7, SC2Race.TERRAN), + ItemNames.MARINE_PROGRESSIVE_STIMPACK: ItemData(208 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 0, SC2Race.TERRAN, parent_item="Marine", quantity=2), + ItemNames.MARINE_COMBAT_SHIELD: ItemData(209 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 9, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Marine"), + ItemNames.MEDIC_ADVANCED_MEDIC_FACILITIES: ItemData(210 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 10, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic"), + ItemNames.MEDIC_STABILIZER_MEDPACKS: ItemData(211 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 11, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Medic"), + ItemNames.FIREBAT_INCINERATOR_GAUNTLETS: ItemData(212 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 12, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Firebat"), + ItemNames.FIREBAT_JUGGERNAUT_PLATING: ItemData(213 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 13, SC2Race.TERRAN, parent_item="Firebat"), + ItemNames.MARAUDER_CONCUSSIVE_SHELLS: ItemData(214 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 14, SC2Race.TERRAN, parent_item="Marauder"), + ItemNames.MARAUDER_KINETIC_FOAM: ItemData(215 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 15, SC2Race.TERRAN, parent_item="Marauder"), + ItemNames.REAPER_U238_ROUNDS: ItemData(216 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 16, SC2Race.TERRAN, parent_item="Reaper"), + ItemNames.REAPER_G4_CLUSTERBOMB: ItemData(217 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 17, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Reaper"), # Items from EE - ItemNames.Cyclone_Mag_Field_Accelerators: ItemData(218 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 18, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), - ItemNames.Cyclone_Mag_Field_Launchers: ItemData(219 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 19, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), + ItemNames.CYCLONE_MAG_FIELD_ACCELERATORS: ItemData(218 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 18, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), + ItemNames.CYCLONE_MAG_FIELD_LAUNCHERS: ItemData(219 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 19, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), # Items from new mod - ItemNames.Marine_Laser_Targeting_System: ItemData(220 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 8, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marine", origin={"nco"}), # Freed slot from Stimpack - ItemNames.Marine_Magrail_Munitions: ItemData(221 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 20, SC2Race.TERRAN, parent_item="Marine", origin={"nco"}), - ItemNames.Marine_Optimized_Logistics: ItemData(222 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 21, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marine", origin={"nco"}), - ItemNames.Medic_Restoration: ItemData(223 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 22, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic", origin={"bw"}), - ItemNames.Medic_Optical_Flare: ItemData(224 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 23, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic", origin={"bw"}), - ItemNames.Medic_Optimized_Logistics: ItemData(225 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic", origin={"bw"}), - ItemNames.Firebat_Progressive_Stimpack: ItemData(226 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 6, SC2Race.TERRAN, parent_item="Firebat", quantity=2, origin={"bw"}), - ItemNames.Firebat_Optimized_Logistics: ItemData(227 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 25, SC2Race.TERRAN, parent_item="Firebat", origin={"bw"}), - ItemNames.Marauder_Progressive_Stimpack: ItemData(228 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 8, SC2Race.TERRAN, parent_item="Marauder", quantity=2, origin={"nco"}), - ItemNames.Marauder_Laser_Targeting_System: ItemData(229 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 26, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marauder", origin={"nco"}), - ItemNames.Marauder_Magrail_Munitions: ItemData(230 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 27, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marauder", origin={"nco"}), - ItemNames.Marauder_Internal_Tech_Module: ItemData(231 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 28, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marauder", origin={"nco"}), + ItemNames.MARINE_LASER_TARGETING_SYSTEM: ItemData(220 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 8, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marine", origin={"nco"}), # Freed slot from Stimpack + ItemNames.MARINE_MAGRAIL_MUNITIONS: ItemData(221 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 20, SC2Race.TERRAN, parent_item="Marine", origin={"nco"}), + ItemNames.MARINE_OPTIMIZED_LOGISTICS: ItemData(222 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 21, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marine", origin={"nco"}), + ItemNames.MEDIC_RESTORATION: ItemData(223 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 22, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic", origin={"bw"}), + ItemNames.MEDIC_OPTICAL_FLARE: ItemData(224 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 23, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic", origin={"bw"}), + ItemNames.MEDIC_OPTIMIZED_LOGISTICS: ItemData(225 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medic", origin={"bw"}), + ItemNames.FIREBAT_PROGRESSIVE_STIMPACK: ItemData(226 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 6, SC2Race.TERRAN, parent_item="Firebat", quantity=2, origin={"bw"}), + ItemNames.FIREBAT_OPTIMIZED_LOGISTICS: ItemData(227 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 25, SC2Race.TERRAN, parent_item="Firebat", origin={"bw"}), + ItemNames.MARAUDER_PROGRESSIVE_STIMPACK: ItemData(228 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 8, SC2Race.TERRAN, parent_item="Marauder", quantity=2, origin={"nco"}), + ItemNames.MARAUDER_LASER_TARGETING_SYSTEM: ItemData(229 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 26, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marauder", origin={"nco"}), + ItemNames.MARAUDER_MAGRAIL_MUNITIONS: ItemData(230 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 27, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marauder", origin={"nco"}), + ItemNames.MARAUDER_INTERNAL_TECH_MODULE: ItemData(231 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 28, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Marauder", origin={"nco"}), # Items from new mod - ItemNames.Reaper_Progressive_Stimpack: ItemData(250 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 10, SC2Race.TERRAN, parent_item="Reaper", quantity=2, origin={"nco"}), - ItemNames.Reaper_Laser_Targeting_System: ItemData(251 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 0, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Reaper", origin={"nco"}), - ItemNames.Reaper_Advanced_Cloaking_Field: ItemData(252 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 1, SC2Race.TERRAN, parent_item="Reaper", origin={"nco"}), - ItemNames.Reaper_Spider_Mines: ItemData(253 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Reaper", origin={"nco"}), - ItemNames.Reaper_Combat_Drugs: ItemData(254 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 3, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Reaper", origin={"ext"}), - ItemNames.Hellion_Hellbat_Aspect: ItemData(255 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 4, SC2Race.TERRAN, parent_item="Hellion", origin={"nco"}), - ItemNames.Hellion_Smart_Servos: ItemData(256 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 5, SC2Race.TERRAN, parent_item="Hellion", origin={"nco"}), - ItemNames.Hellion_Optimized_Logistics: ItemData(257 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 6, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Hellion", origin={"nco"}), - ItemNames.Hellion_Jump_Jets: ItemData(258 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 7, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Hellion", origin={"nco"}), - ItemNames.Hellion_Progressive_Stimpack: ItemData(259 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 12, SC2Race.TERRAN, parent_item="Hellion", quantity=2, origin={"nco"}), - ItemNames.Vulture_Ion_Thrusters: ItemData(260 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 8, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Vulture", origin={"bw"}), - ItemNames.Vulture_Auto_Launchers: ItemData(261 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 9, SC2Race.TERRAN, parent_item="Vulture", origin={"bw"}), - ItemNames.Spider_Mine_High_Explosive_Munition: ItemData(262 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 10, SC2Race.TERRAN, origin={"bw"}), - ItemNames.Goliath_Jump_Jets: ItemData(263 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 11, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Goliath", origin={"nco"}), - ItemNames.Goliath_Optimized_Logistics: ItemData(264 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 12, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Goliath", origin={"nco"}), - ItemNames.Diamondback_Hyperfluxor: ItemData(265 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 13, SC2Race.TERRAN, parent_item="Diamondback", origin={"ext"}), - ItemNames.Diamondback_Burst_Capacitors: ItemData(266 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 14, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Diamondback", origin={"ext"}), - ItemNames.Diamondback_Optimized_Logistics: ItemData(267 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 15, SC2Race.TERRAN, parent_item="Diamondback", origin={"ext"}), - ItemNames.Siege_Tank_Jump_Jets: ItemData(268 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 16, SC2Race.TERRAN, parent_item="Siege Tank", origin={"nco"}), - ItemNames.Siege_Tank_Spider_Mines: ItemData(269 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 17, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Siege Tank", origin={"nco"}), - ItemNames.Siege_Tank_Smart_Servos: ItemData(270 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 18, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Siege Tank", origin={"nco"}), - ItemNames.Siege_Tank_Graduating_Range: ItemData(271 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 19, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Siege Tank", origin={"ext"}), - ItemNames.Siege_Tank_Laser_Targeting_System: ItemData(272 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 20, SC2Race.TERRAN, parent_item="Siege Tank", origin={"nco"}), - ItemNames.Siege_Tank_Advanced_Siege_Tech: ItemData(273 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 21, SC2Race.TERRAN, parent_item="Siege Tank", origin={"ext"}), - ItemNames.Siege_Tank_Internal_Tech_Module: ItemData(274 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 22, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Siege Tank", origin={"nco"}), - ItemNames.Predator_Optimized_Logistics: ItemData(275 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 23, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Predator", origin={"ext"}), - ItemNames.Medivac_Expanded_Hull: ItemData(276 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac", origin={"ext"}), - ItemNames.Medivac_Afterburners: ItemData(277 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 25, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac", origin={"ext"}), - ItemNames.Wraith_Advanced_Laser_Technology: ItemData(278 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 26, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Wraith", origin={"ext"}), - ItemNames.Viking_Smart_Servos: ItemData(279 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 27, SC2Race.TERRAN, parent_item="Viking", origin={"ext"}), - ItemNames.Viking_Magrail_Munitions: ItemData(280 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 28, SC2Race.TERRAN, parent_item="Viking", origin={"ext"}), - - ItemNames.Hellion_Twin_Linked_Flamethrower: ItemData(300 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 0, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Hellion"), - ItemNames.Hellion_Thermite_Filaments: ItemData(301 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 1, SC2Race.TERRAN, parent_item="Hellion"), - ItemNames.Spider_Mine_Cerberus_Mine: ItemData(302 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 2, SC2Race.TERRAN, classification=ItemClassification.filler), - ItemNames.Vulture_Replenishable_Magazine: ItemData(303 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 3, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Vulture"), - ItemNames.Goliath_Multi_Lock_Weapons_System: ItemData(304 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 4, SC2Race.TERRAN, parent_item="Goliath"), - ItemNames.Goliath_Ares_Class_Targeting_System: ItemData(305 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 5, SC2Race.TERRAN, parent_item="Goliath"), - ItemNames.Diamondback_Tri_Lithium_Power_Cell: ItemData(306 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 6, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Diamondback"), - ItemNames.Diamondback_Shaped_Hull: ItemData(307 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 7, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Diamondback"), - ItemNames.Siege_Tank_Maelstrom_Rounds: ItemData(308 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 8, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Siege Tank"), - ItemNames.Siege_Tank_Shaped_Blast: ItemData(309 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 9, SC2Race.TERRAN, parent_item="Siege Tank"), - ItemNames.Medivac_Rapid_Deployment_Tube: ItemData(310 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 10, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac"), - ItemNames.Medivac_Advanced_Healing_AI: ItemData(311 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 11, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac"), - ItemNames.Wraith_Tomahawk_Power_Cells: ItemData(312 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 12, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Wraith"), - ItemNames.Wraith_Displacement_Field: ItemData(313 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 13, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Wraith"), - ItemNames.Viking_Ripwave_Missiles: ItemData(314 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 14, SC2Race.TERRAN, parent_item="Viking"), - ItemNames.Viking_Phobos_Class_Weapons_System: ItemData(315 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 15, SC2Race.TERRAN, parent_item="Viking"), - ItemNames.Banshee_Progressive_Cross_Spectrum_Dampeners: ItemData(316 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", quantity=2), - ItemNames.Banshee_Shockwave_Missile_Battery: ItemData(317 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 17, SC2Race.TERRAN, parent_item="Banshee"), - ItemNames.Battlecruiser_Missile_Pods: ItemData(318 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 18, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser"), - ItemNames.Battlecruiser_Defensive_Matrix: ItemData(319 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 19, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser"), - ItemNames.Ghost_Ocular_Implants: ItemData(320 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 20, SC2Race.TERRAN, parent_item="Ghost"), - ItemNames.Ghost_Crius_Suit: ItemData(321 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 21, SC2Race.TERRAN, parent_item="Ghost"), - ItemNames.Spectre_Psionic_Lash: ItemData(322 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 22, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Spectre"), - ItemNames.Spectre_Nyx_Class_Cloaking_Module: ItemData(323 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 23, SC2Race.TERRAN, parent_item="Spectre"), - ItemNames.Thor_330mm_Barrage_Cannon: ItemData(324 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Thor"), - ItemNames.Thor_Immortality_Protocol: ItemData(325 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 25, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Thor"), + ItemNames.REAPER_PROGRESSIVE_STIMPACK: ItemData(250 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 10, SC2Race.TERRAN, parent_item="Reaper", quantity=2, origin={"nco"}), + ItemNames.REAPER_LASER_TARGETING_SYSTEM: ItemData(251 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 0, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Reaper", origin={"nco"}), + ItemNames.REAPER_ADVANCED_CLOAKING_FIELD: ItemData(252 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 1, SC2Race.TERRAN, parent_item="Reaper", origin={"nco"}), + ItemNames.REAPER_SPIDER_MINES: ItemData(253 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Reaper", origin={"nco"}), + ItemNames.REAPER_COMBAT_DRUGS: ItemData(254 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 3, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Reaper", origin={"ext"}), + ItemNames.HELLION_HELLBAT_ASPECT: ItemData(255 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 4, SC2Race.TERRAN, parent_item="Hellion", origin={"nco"}), + ItemNames.HELLION_SMART_SERVOS: ItemData(256 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 5, SC2Race.TERRAN, parent_item="Hellion", origin={"nco"}), + ItemNames.HELLION_OPTIMIZED_LOGISTICS: ItemData(257 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 6, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Hellion", origin={"nco"}), + ItemNames.HELLION_JUMP_JETS: ItemData(258 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 7, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Hellion", origin={"nco"}), + ItemNames.HELLION_PROGRESSIVE_STIMPACK: ItemData(259 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 12, SC2Race.TERRAN, parent_item="Hellion", quantity=2, origin={"nco"}), + ItemNames.VULTURE_ION_THRUSTERS: ItemData(260 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 8, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Vulture", origin={"bw"}), + ItemNames.VULTURE_AUTO_LAUNCHERS: ItemData(261 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 9, SC2Race.TERRAN, parent_item="Vulture", origin={"bw"}), + ItemNames.SPIDER_MINE_HIGH_EXPLOSIVE_MUNITION: ItemData(262 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 10, SC2Race.TERRAN, origin={"bw"}), + ItemNames.GOLIATH_JUMP_JETS: ItemData(263 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 11, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Goliath", origin={"nco"}), + ItemNames.GOLIATH_OPTIMIZED_LOGISTICS: ItemData(264 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 12, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Goliath", origin={"nco"}), + ItemNames.DIAMONDBACK_HYPERFLUXOR: ItemData(265 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 13, SC2Race.TERRAN, parent_item="Diamondback", origin={"ext"}), + ItemNames.DIAMONDBACK_BURST_CAPACITORS: ItemData(266 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 14, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Diamondback", origin={"ext"}), + ItemNames.DIAMONDBACK_OPTIMIZED_LOGISTICS: ItemData(267 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 15, SC2Race.TERRAN, parent_item="Diamondback", origin={"ext"}), + ItemNames.SIEGE_TANK_JUMP_JETS: ItemData(268 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 16, SC2Race.TERRAN, parent_item="Siege Tank", origin={"nco"}), + ItemNames.SIEGE_TANK_SPIDER_MINES: ItemData(269 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 17, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Siege Tank", origin={"nco"}), + ItemNames.SIEGE_TANK_SMART_SERVOS: ItemData(270 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 18, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Siege Tank", origin={"nco"}), + ItemNames.SIEGE_TANK_GRADUATING_RANGE: ItemData(271 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 19, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Siege Tank", origin={"ext"}), + ItemNames.SIEGE_TANK_LASER_TARGETING_SYSTEM: ItemData(272 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 20, SC2Race.TERRAN, parent_item="Siege Tank", origin={"nco"}), + ItemNames.SIEGE_TANK_ADVANCED_SIEGE_TECH: ItemData(273 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 21, SC2Race.TERRAN, parent_item="Siege Tank", origin={"ext"}), + ItemNames.SIEGE_TANK_INTERNAL_TECH_MODULE: ItemData(274 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 22, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Siege Tank", origin={"nco"}), + ItemNames.PREDATOR_OPTIMIZED_LOGISTICS: ItemData(275 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 23, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Predator", origin={"ext"}), + ItemNames.MEDIVAC_EXPANDED_HULL: ItemData(276 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac", origin={"ext"}), + ItemNames.MEDIVAC_AFTERBURNERS: ItemData(277 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 25, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac", origin={"ext"}), + ItemNames.WRAITH_ADVANCED_LASER_TECHNOLOGY: ItemData(278 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 26, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Wraith", origin={"ext"}), + ItemNames.VIKING_SMART_SERVOS: ItemData(279 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 27, SC2Race.TERRAN, parent_item="Viking", origin={"ext"}), + ItemNames.VIKING_MAGRAIL_MUNITIONS: ItemData(280 + SC2WOL_ITEM_ID_OFFSET, "Armory 3", 28, SC2Race.TERRAN, parent_item="Viking", origin={"ext"}), + + ItemNames.HELLION_TWIN_LINKED_FLAMETHROWER: ItemData(300 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 0, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Hellion"), + ItemNames.HELLION_THERMITE_FILAMENTS: ItemData(301 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 1, SC2Race.TERRAN, parent_item="Hellion"), + ItemNames.SPIDER_MINE_CERBERUS_MINE: ItemData(302 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 2, SC2Race.TERRAN, classification=ItemClassification.filler), + ItemNames.VULTURE_REPLENISHABLE_MAGAZINE: ItemData(303 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 3, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Vulture"), + ItemNames.GOLIATH_MULTI_LOCK_WEAPONS_SYSTEM: ItemData(304 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 4, SC2Race.TERRAN, parent_item="Goliath"), + ItemNames.GOLIATH_ARES_CLASS_TARGETING_SYSTEM: ItemData(305 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 5, SC2Race.TERRAN, parent_item="Goliath"), + ItemNames.DIAMONDBACK_TRI_LITHIUM_POWER_CELL: ItemData(306 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 6, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Diamondback"), + ItemNames.DIAMONDBACK_SHAPED_HULL: ItemData(307 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 7, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Diamondback"), + ItemNames.SIEGE_TANK_MAELSTROM_ROUNDS: ItemData(308 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 8, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Siege Tank"), + ItemNames.SIEGE_TANK_SHAPED_BLAST: ItemData(309 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 9, SC2Race.TERRAN, parent_item="Siege Tank"), + ItemNames.MEDIVAC_RAPID_DEPLOYMENT_TUBE: ItemData(310 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 10, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac"), + ItemNames.MEDIVAC_ADVANCED_HEALING_AI: ItemData(311 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 11, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Medivac"), + ItemNames.WRAITH_TOMAHAWK_POWER_CELLS: ItemData(312 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 12, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Wraith"), + ItemNames.WRAITH_DISPLACEMENT_FIELD: ItemData(313 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 13, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Wraith"), + ItemNames.VIKING_RIPWAVE_MISSILES: ItemData(314 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 14, SC2Race.TERRAN, parent_item="Viking"), + ItemNames.VIKING_PHOBOS_CLASS_WEAPONS_SYSTEM: ItemData(315 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 15, SC2Race.TERRAN, parent_item="Viking"), + ItemNames.BANSHEE_PROGRESSIVE_CROSS_SPECTRUM_DAMPENERS: ItemData(316 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", quantity=2), + ItemNames.BANSHEE_SHOCKWAVE_MISSILE_BATTERY: ItemData(317 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 17, SC2Race.TERRAN, parent_item="Banshee"), + ItemNames.BATTLECRUISER_MISSILE_PODS: ItemData(318 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 18, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser"), + ItemNames.BATTLECRUISER_DEFENSIVE_MATRIX: ItemData(319 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 19, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser"), + ItemNames.GHOST_OCULAR_IMPLANTS: ItemData(320 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 20, SC2Race.TERRAN, parent_item="Ghost"), + ItemNames.GHOST_CRIUS_SUIT: ItemData(321 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 21, SC2Race.TERRAN, parent_item="Ghost"), + ItemNames.SPECTRE_PSIONIC_LASH: ItemData(322 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 22, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Spectre"), + ItemNames.SPECTRE_NYX_CLASS_CLOAKING_MODULE: ItemData(323 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 23, SC2Race.TERRAN, parent_item="Spectre"), + ItemNames.THOR_330MM_BARRAGE_CANNON: ItemData(324 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Thor"), + ItemNames.THOR_IMMORTALITY_PROTOCOL: ItemData(325 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 25, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Thor"), # Items from EE - ItemNames.Liberator_Advanced_Ballistics: ItemData(326 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 26, SC2Race.TERRAN, parent_item="Liberator", origin={"ext"}), - ItemNames.Liberator_Raid_Artillery: ItemData(327 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 27, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Liberator", origin={"nco"}), - ItemNames.Widow_Mine_Drilling_Claws: ItemData(328 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 28, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Widow Mine", origin={"ext"}), - ItemNames.Widow_Mine_Concealment: ItemData(329 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 29, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Widow Mine", origin={"ext"}), + ItemNames.LIBERATOR_ADVANCED_BALLISTICS: ItemData(326 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 26, SC2Race.TERRAN, parent_item="Liberator", origin={"ext"}), + ItemNames.LIBERATOR_RAID_ARTILLERY: ItemData(327 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 27, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Liberator", origin={"nco"}), + ItemNames.WIDOW_MINE_DRILLING_CLAWS: ItemData(328 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 28, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Widow Mine", origin={"ext"}), + ItemNames.WIDOW_MINE_CONCEALMENT: ItemData(329 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 29, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Widow Mine", origin={"ext"}), #Items from new mod - ItemNames.Banshee_Hyperflight_Rotors: ItemData(350 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 0, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", origin={"ext"}), - ItemNames.Banshee_Laser_Targeting_System: ItemData(351 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 1, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", origin={"nco"}), - ItemNames.Banshee_Internal_Tech_Module: ItemData(352 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", origin={"nco"}), - ItemNames.Battlecruiser_Tactical_Jump: ItemData(353 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 3, SC2Race.TERRAN, parent_item="Battlecruiser", origin={"nco", "ext"}), - ItemNames.Battlecruiser_Cloak: ItemData(354 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 4, SC2Race.TERRAN, parent_item="Battlecruiser", origin={"nco"}), - ItemNames.Battlecruiser_ATX_Laser_Battery: ItemData(355 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 5, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Battlecruiser", origin={"nco"}), - ItemNames.Battlecruiser_Optimized_Logistics: ItemData(356 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 6, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser", origin={"ext"}), - ItemNames.Battlecruiser_Internal_Tech_Module: ItemData(357 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 7, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser", origin={"nco"}), - ItemNames.Ghost_EMP_Rounds: ItemData(358 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 8, SC2Race.TERRAN, parent_item="Ghost", origin={"ext"}), - ItemNames.Ghost_Lockdown: ItemData(359 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 9, SC2Race.TERRAN, parent_item="Ghost", origin={"bw"}), - ItemNames.Spectre_Impaler_Rounds: ItemData(360 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 10, SC2Race.TERRAN, parent_item="Spectre", origin={"ext"}), - ItemNames.Thor_Progressive_High_Impact_Payload: ItemData(361 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 14, SC2Race.TERRAN, parent_item="Thor", quantity=2, origin={"ext"}), # L2 is Smart Servos - ItemNames.Raven_Bio_Mechanical_Repair_Drone: ItemData(363 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 13, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), - ItemNames.Raven_Spider_Mines: ItemData(364 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 14, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), - ItemNames.Raven_Railgun_Turret: ItemData(365 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 15, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), - ItemNames.Raven_Hunter_Seeker_Weapon: ItemData(366 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 16, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), - ItemNames.Raven_Interference_Matrix: ItemData(367 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 17, SC2Race.TERRAN, parent_item="Raven", origin={"ext"}), - ItemNames.Raven_Anti_Armor_Missile: ItemData(368 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 18, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Raven", origin={"ext"}), - ItemNames.Raven_Internal_Tech_Module: ItemData(369 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 19, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Raven", origin={"nco"}), - ItemNames.Science_Vessel_EMP_Shockwave: ItemData(370 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 20, SC2Race.TERRAN, parent_item="Science Vessel", origin={"bw"}), - ItemNames.Science_Vessel_Defensive_Matrix: ItemData(371 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 21, SC2Race.TERRAN, parent_item="Science Vessel", origin={"bw"}), - ItemNames.Cyclone_Targeting_Optics: ItemData(372 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 22, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), - ItemNames.Cyclone_Rapid_Fire_Launchers: ItemData(373 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 23, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), - ItemNames.Liberator_Cloak: ItemData(374 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Liberator", origin={"nco"}), - ItemNames.Liberator_Laser_Targeting_System: ItemData(375 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 25, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Liberator", origin={"ext"}), - ItemNames.Liberator_Optimized_Logistics: ItemData(376 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 26, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Liberator", origin={"nco"}), - ItemNames.Widow_Mine_Black_Market_Launchers: ItemData(377 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 27, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Widow Mine", origin={"ext"}), - ItemNames.Widow_Mine_Executioner_Missiles: ItemData(378 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 28, SC2Race.TERRAN, parent_item="Widow Mine", origin={"ext"}), + ItemNames.BANSHEE_HYPERFLIGHT_ROTORS: ItemData(350 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 0, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", origin={"ext"}), + ItemNames.BANSHEE_LASER_TARGETING_SYSTEM: ItemData(351 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 1, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", origin={"nco"}), + ItemNames.BANSHEE_INTERNAL_TECH_MODULE: ItemData(352 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 2, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Banshee", origin={"nco"}), + ItemNames.BATTLECRUISER_TACTICAL_JUMP: ItemData(353 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 3, SC2Race.TERRAN, parent_item="Battlecruiser", origin={"nco", "ext"}), + ItemNames.BATTLECRUISER_CLOAK: ItemData(354 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 4, SC2Race.TERRAN, parent_item="Battlecruiser", origin={"nco"}), + ItemNames.BATTLECRUISER_ATX_LASER_BATTERY: ItemData(355 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 5, SC2Race.TERRAN, classification=ItemClassification.progression, parent_item="Battlecruiser", origin={"nco"}), + ItemNames.BATTLECRUISER_OPTIMIZED_LOGISTICS: ItemData(356 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 6, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser", origin={"ext"}), + ItemNames.BATTLECRUISER_INTERNAL_TECH_MODULE: ItemData(357 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 7, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Battlecruiser", origin={"nco"}), + ItemNames.GHOST_EMP_ROUNDS: ItemData(358 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 8, SC2Race.TERRAN, parent_item="Ghost", origin={"ext"}), + ItemNames.GHOST_LOCKDOWN: ItemData(359 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 9, SC2Race.TERRAN, parent_item="Ghost", origin={"bw"}), + ItemNames.SPECTRE_IMPALER_ROUNDS: ItemData(360 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 10, SC2Race.TERRAN, parent_item="Spectre", origin={"ext"}), + ItemNames.THOR_PROGRESSIVE_HIGH_IMPACT_PAYLOAD: ItemData(361 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 14, SC2Race.TERRAN, parent_item="Thor", quantity=2, origin={"ext"}), # L2 is Smart Servos + ItemNames.RAVEN_BIO_MECHANICAL_REPAIR_DRONE: ItemData(363 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 13, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), + ItemNames.RAVEN_SPIDER_MINES: ItemData(364 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 14, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), + ItemNames.RAVEN_RAILGUN_TURRET: ItemData(365 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 15, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), + ItemNames.RAVEN_HUNTER_SEEKER_WEAPON: ItemData(366 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 16, SC2Race.TERRAN, parent_item="Raven", origin={"nco"}), + ItemNames.RAVEN_INTERFERENCE_MATRIX: ItemData(367 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 17, SC2Race.TERRAN, parent_item="Raven", origin={"ext"}), + ItemNames.RAVEN_ANTI_ARMOR_MISSILE: ItemData(368 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 18, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Raven", origin={"ext"}), + ItemNames.RAVEN_INTERNAL_TECH_MODULE: ItemData(369 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 19, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Raven", origin={"nco"}), + ItemNames.SCIENCE_VESSEL_EMP_SHOCKWAVE: ItemData(370 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 20, SC2Race.TERRAN, parent_item="Science Vessel", origin={"bw"}), + ItemNames.SCIENCE_VESSEL_DEFENSIVE_MATRIX: ItemData(371 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 21, SC2Race.TERRAN, parent_item="Science Vessel", origin={"bw"}), + ItemNames.CYCLONE_TARGETING_OPTICS: ItemData(372 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 22, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), + ItemNames.CYCLONE_RAPID_FIRE_LAUNCHERS: ItemData(373 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 23, SC2Race.TERRAN, parent_item="Cyclone", origin={"ext"}), + ItemNames.LIBERATOR_CLOAK: ItemData(374 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 24, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Liberator", origin={"nco"}), + ItemNames.LIBERATOR_LASER_TARGETING_SYSTEM: ItemData(375 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 25, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Liberator", origin={"ext"}), + ItemNames.LIBERATOR_OPTIMIZED_LOGISTICS: ItemData(376 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 26, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Liberator", origin={"nco"}), + ItemNames.WIDOW_MINE_BLACK_MARKET_LAUNCHERS: ItemData(377 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 27, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Widow Mine", origin={"ext"}), + ItemNames.WIDOW_MINE_EXECUTIONER_MISSILES: ItemData(378 + SC2WOL_ITEM_ID_OFFSET, "Armory 4", 28, SC2Race.TERRAN, parent_item="Widow Mine", origin={"ext"}), # Just lazy to create a new group for one unit - ItemNames.Valkyrie_Enhanced_Cluster_Launchers: ItemData(379 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 17, SC2Race.TERRAN, parent_item="Valkyrie", origin={"ext"}), - ItemNames.Valkyrie_Shaped_Hull: ItemData(380 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 20, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Valkyrie", origin={"ext"}), - ItemNames.Valkyrie_Burst_Lasers: ItemData(381 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 21, SC2Race.TERRAN, parent_item="Valkyrie", origin={"ext"}), - ItemNames.Valkyrie_Afterburners: ItemData(382 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 22, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Valkyrie", origin={"ext"}), - - ItemNames.Bunker: ItemData(400 + SC2WOL_ITEM_ID_OFFSET, "Building", 0, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Missile_Turret: ItemData(401 + SC2WOL_ITEM_ID_OFFSET, "Building", 1, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Sensor_Tower: ItemData(402 + SC2WOL_ITEM_ID_OFFSET, "Building", 2, SC2Race.TERRAN), - - ItemNames.War_Pigs: ItemData(500 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 0, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Devil_Dogs: ItemData(501 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 1, SC2Race.TERRAN, classification=ItemClassification.filler), - ItemNames.Hammer_Securities: ItemData(502 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 2, SC2Race.TERRAN), - ItemNames.Spartan_Company: ItemData(503 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 3, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Siege_Breakers: ItemData(504 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 4, SC2Race.TERRAN), - ItemNames.Hels_Angel: ItemData(505 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 5, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Dusk_Wings: ItemData(506 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 6, SC2Race.TERRAN), - ItemNames.Jacksons_Revenge: ItemData(507 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 7, SC2Race.TERRAN), - - ItemNames.Ultra_Capacitors: ItemData(600 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 0, SC2Race.TERRAN), - ItemNames.Vanadium_Plating: ItemData(601 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 1, SC2Race.TERRAN), - ItemNames.Orbital_Depots: ItemData(602 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 2, SC2Race.TERRAN), - ItemNames.Micro_Filtering: ItemData(603 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 3, SC2Race.TERRAN), - ItemNames.Automated_Refinery: ItemData(604 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 4, SC2Race.TERRAN), - ItemNames.Command_Center_Reactor: ItemData(605 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 5, SC2Race.TERRAN), - ItemNames.Raven: ItemData(606 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 6, SC2Race.TERRAN), - ItemNames.Science_Vessel: ItemData(607 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 7, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Tech_Reactor: ItemData(608 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 8, SC2Race.TERRAN), - ItemNames.Orbital_Strike: ItemData(609 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 9, SC2Race.TERRAN), - ItemNames.Bunker_Shrike_Turret: ItemData(610 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 10, SC2Race.TERRAN, parent_item="Bunker"), - ItemNames.Bunker_Fortified_Bunker: ItemData(611 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 11, SC2Race.TERRAN, parent_item="Bunker"), - ItemNames.Planetary_Fortress: ItemData(612 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 12, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Perdition_Turret: ItemData(613 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 13, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Predator: ItemData(614 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 14, SC2Race.TERRAN, classification=ItemClassification.filler), - ItemNames.Hercules: ItemData(615 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 15, SC2Race.TERRAN, classification=ItemClassification.progression), - ItemNames.Cellular_Reactor: ItemData(616 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 16, SC2Race.TERRAN), - ItemNames.Progressive_Regenerative_Bio_Steel: ItemData(617 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 4, SC2Race.TERRAN, quantity=2), - ItemNames.Hive_Mind_Emulator: ItemData(618 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 18, SC2Race.TERRAN, ItemClassification.progression), - ItemNames.Psi_Disrupter: ItemData(619 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 19, SC2Race.TERRAN, classification=ItemClassification.progression), - - ItemNames.Zealot: ItemData(700 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.PROTOSS, classification=ItemClassification.progression), - ItemNames.Stalker: ItemData(701 + SC2WOL_ITEM_ID_OFFSET, "Unit", 1, SC2Race.PROTOSS, classification=ItemClassification.progression), - ItemNames.High_Templar: ItemData(702 + SC2WOL_ITEM_ID_OFFSET, "Unit", 2, SC2Race.PROTOSS, classification=ItemClassification.progression), - ItemNames.Dark_Templar: ItemData(703 + SC2WOL_ITEM_ID_OFFSET, "Unit", 3, SC2Race.PROTOSS, classification=ItemClassification.progression), - ItemNames.Immortal: ItemData(704 + SC2WOL_ITEM_ID_OFFSET, "Unit", 4, SC2Race.PROTOSS, classification=ItemClassification.progression), - ItemNames.Colossus: ItemData(705 + SC2WOL_ITEM_ID_OFFSET, "Unit", 5, SC2Race.PROTOSS), - ItemNames.Phoenix: ItemData(706 + SC2WOL_ITEM_ID_OFFSET, "Unit", 6, SC2Race.PROTOSS, classification=ItemClassification.filler), - ItemNames.Void_Ray: ItemData(707 + SC2WOL_ITEM_ID_OFFSET, "Unit", 7, SC2Race.PROTOSS, classification=ItemClassification.progression), - ItemNames.Carrier: ItemData(708 + SC2WOL_ITEM_ID_OFFSET, "Unit", 8, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.VALKYRIE_ENHANCED_CLUSTER_LAUNCHERS: ItemData(379 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 17, SC2Race.TERRAN, parent_item="Valkyrie", origin={"ext"}), + ItemNames.VALKYRIE_SHAPED_HULL: ItemData(380 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 20, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Valkyrie", origin={"ext"}), + ItemNames.VALKYRIE_BURST_LASERS: ItemData(381 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 21, SC2Race.TERRAN, parent_item="Valkyrie", origin={"ext"}), + ItemNames.VALKYRIE_AFTERBURNERS: ItemData(382 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 22, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item="Valkyrie", origin={"ext"}), + + ItemNames.BUNKER: ItemData(400 + SC2WOL_ITEM_ID_OFFSET, "Building", 0, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.MISSILE_TURRET: ItemData(401 + SC2WOL_ITEM_ID_OFFSET, "Building", 1, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.SENSOR_TOWER: ItemData(402 + SC2WOL_ITEM_ID_OFFSET, "Building", 2, SC2Race.TERRAN), + + ItemNames.WAR_PIGS: ItemData(500 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 0, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.DEVIL_DOGS: ItemData(501 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 1, SC2Race.TERRAN, classification=ItemClassification.filler), + ItemNames.HAMMER_SECURITIES: ItemData(502 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 2, SC2Race.TERRAN), + ItemNames.SPARTAN_COMPANY: ItemData(503 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 3, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.SIEGE_BREAKERS: ItemData(504 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 4, SC2Race.TERRAN), + ItemNames.HELS_ANGEL: ItemData(505 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 5, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.DUSK_WINGS: ItemData(506 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 6, SC2Race.TERRAN), + ItemNames.JACKSONS_REVENGE: ItemData(507 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 7, SC2Race.TERRAN), + + ItemNames.ULTRA_CAPACITORS: ItemData(600 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 0, SC2Race.TERRAN), + ItemNames.VANADIUM_PLATING: ItemData(601 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 1, SC2Race.TERRAN), + ItemNames.ORBITAL_DEPOTS: ItemData(602 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 2, SC2Race.TERRAN), + ItemNames.MICRO_FILTERING: ItemData(603 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 3, SC2Race.TERRAN), + ItemNames.AUTOMATED_REFINERY: ItemData(604 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 4, SC2Race.TERRAN), + ItemNames.COMMAND_CENTER_REACTOR: ItemData(605 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 5, SC2Race.TERRAN), + ItemNames.RAVEN: ItemData(606 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 6, SC2Race.TERRAN), + ItemNames.SCIENCE_VESSEL: ItemData(607 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 7, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.TECH_REACTOR: ItemData(608 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 8, SC2Race.TERRAN), + ItemNames.ORBITAL_STRIKE: ItemData(609 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 9, SC2Race.TERRAN), + ItemNames.BUNKER_SHRIKE_TURRET: ItemData(610 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 10, SC2Race.TERRAN, parent_item="Bunker"), + ItemNames.BUNKER_FORTIFIED_BUNKER: ItemData(611 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 11, SC2Race.TERRAN, parent_item="Bunker"), + ItemNames.PLANETARY_FORTRESS: ItemData(612 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 12, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.PERDITION_TURRET: ItemData(613 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 13, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.PREDATOR: ItemData(614 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 14, SC2Race.TERRAN, classification=ItemClassification.filler), + ItemNames.HERCULES: ItemData(615 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 15, SC2Race.TERRAN, classification=ItemClassification.progression), + ItemNames.CELLULAR_REACTOR: ItemData(616 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 16, SC2Race.TERRAN), + ItemNames.PROGRESSIVE_REGENERATIVE_BIO_STEEL: ItemData(617 + SC2WOL_ITEM_ID_OFFSET, "Progressive Upgrade", 4, SC2Race.TERRAN, quantity=2), + ItemNames.HIVE_MIND_EMULATOR: ItemData(618 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 18, SC2Race.TERRAN, ItemClassification.progression), + ItemNames.PSI_DISRUPTER: ItemData(619 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 19, SC2Race.TERRAN, classification=ItemClassification.progression), + + ItemNames.ZEALOT: ItemData(700 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.STALKER: ItemData(701 + SC2WOL_ITEM_ID_OFFSET, "Unit", 1, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.HIGH_TEMPLAR: ItemData(702 + SC2WOL_ITEM_ID_OFFSET, "Unit", 2, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.DARK_TEMPLAR: ItemData(703 + SC2WOL_ITEM_ID_OFFSET, "Unit", 3, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.IMMORTAL: ItemData(704 + SC2WOL_ITEM_ID_OFFSET, "Unit", 4, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.COLOSSUS: ItemData(705 + SC2WOL_ITEM_ID_OFFSET, "Unit", 5, SC2Race.PROTOSS), + ItemNames.PHOENIX: ItemData(706 + SC2WOL_ITEM_ID_OFFSET, "Unit", 6, SC2Race.PROTOSS, classification=ItemClassification.filler), + ItemNames.VOID_RAY: ItemData(707 + SC2WOL_ITEM_ID_OFFSET, "Unit", 7, SC2Race.PROTOSS, classification=ItemClassification.progression), + ItemNames.CARRIER: ItemData(708 + SC2WOL_ITEM_ID_OFFSET, "Unit", 8, SC2Race.PROTOSS, classification=ItemClassification.progression), # Filler items to fill remaining spots - ItemNames.Starting_Minerals: ItemData(800 + SC2WOL_ITEM_ID_OFFSET, "Minerals", 15, SC2Race.ANY, quantity=0, classification=ItemClassification.filler), - ItemNames.Starting_Vespene: ItemData(801 + SC2WOL_ITEM_ID_OFFSET, "Vespene", 15, SC2Race.ANY, quantity=0, classification=ItemClassification.filler), + ItemNames.STARTING_MINERALS: ItemData(800 + SC2WOL_ITEM_ID_OFFSET, "Minerals", 15, SC2Race.ANY, quantity=0, classification=ItemClassification.filler), + ItemNames.STARTING_VESPENE: ItemData(801 + SC2WOL_ITEM_ID_OFFSET, "Vespene", 15, SC2Race.ANY, quantity=0, classification=ItemClassification.filler), # This Filler item isn't placed by the generator yet unless plando'd - ItemNames.Starting_Supply: ItemData(802 + SC2WOL_ITEM_ID_OFFSET, "Supply", 2, SC2Race.ANY, quantity=0, classification=ItemClassification.filler), + ItemNames.STARTING_SUPPLY: ItemData(802 + SC2WOL_ITEM_ID_OFFSET, "Supply", 2, SC2Race.ANY, quantity=0, classification=ItemClassification.filler), # 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), + ItemNames.NOTHING: ItemData(803 + SC2WOL_ITEM_ID_OFFSET, "Nothing Group", 2, SC2Race.ANY, quantity=0, classification=ItemClassification.trap), - # ItemNames.Keystone_Piece: ItemData(850 + SC2WOL_ITEM_ID_OFFSET, "Goal", 0, quantity=0, classification=ItemClassification.progression_skip_balancing) + # ItemNames.KEYSTONE_PIECE: ItemData(850 + SC2WOL_ITEM_ID_OFFSET, "Goal", 0, quantity=0, classification=ItemClassification.progression_skip_balancing) # HotS - ItemNames.Zergling: ItemData(0 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 0, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Swarm_Queen: ItemData(1 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 1, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Roach: ItemData(2 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 2, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Hydralisk: ItemData(3 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 3, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Baneling: ItemData(4 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 4, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Aberration: ItemData(5 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 5, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Mutalisk: ItemData(6 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 6, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Swarm_Host: ItemData(7 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 7, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Infestor: ItemData(8 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 8, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Ultralisk: ItemData(9 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 9, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Spore_Crawler: ItemData(10 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 10, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - ItemNames.Spine_Crawler: ItemData(11 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 11, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.ZERGLING: ItemData(0 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 0, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.SWARM_QUEEN: ItemData(1 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 1, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.ROACH: ItemData(2 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 2, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.HYDRALISK: ItemData(3 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 3, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.BANELING: ItemData(4 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 4, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.ABERRATION: ItemData(5 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 5, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.MUTALISK: ItemData(6 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 6, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.SWARM_HOST: ItemData(7 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 7, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.INFESTOR: ItemData(8 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 8, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.ULTRALISK: ItemData(9 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 9, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.SPORE_CRAWLER: ItemData(10 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 10, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), + ItemNames.SPINE_CRAWLER: ItemData(11 + SC2HOTS_ITEM_ID_OFFSET, "Unit", 11, SC2Race.ZERG, classification=ItemClassification.progression, origin={"hots"}), - 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"}), + 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", 0, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), - ItemNames.Zergling_Adrenal_Overload: ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 1, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), - ItemNames.Zergling_Metabolic_Boost: ItemData(202 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 2, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Roach_Hydriodic_Bile: ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 3, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), - ItemNames.Roach_Adaptive_Plating: ItemData(204 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 4, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), - ItemNames.Roach_Tunneling_Claws: ItemData(205 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 5, SC2Race.ZERG, parent_item="Roach", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Hydralisk_Frenzy: ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 6, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}), - ItemNames.Hydralisk_Ancillary_Carapace: ItemData(207 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 7, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Hydralisk_Grooved_Spines: ItemData(208 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 8, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}), - ItemNames.Baneling_Corrosive_Acid: ItemData(209 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 9, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}), - ItemNames.Baneling_Rupture: ItemData(210 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 10, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Baneling_Regenerative_Acid: ItemData(211 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 11, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Mutalisk_Vicious_Glave: ItemData(212 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 12, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}), - ItemNames.Mutalisk_Rapid_Regeneration: ItemData(213 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 13, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}), - ItemNames.Mutalisk_Sundering_Glave: ItemData(214 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 14, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}), - ItemNames.Swarm_Host_Burrow: ItemData(215 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 15, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Swarm_Host_Rapid_Incubation: ItemData(216 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 16, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}), - ItemNames.Swarm_Host_Pressurized_Glands: ItemData(217 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 17, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Ultralisk_Burrow_Charge: ItemData(218 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 18, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), - ItemNames.Ultralisk_Tissue_Animation: ItemData(219 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 19, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), - ItemNames.Ultralisk_Monarch_Blades: ItemData(220 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 20, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), + 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", 0, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), + ItemNames.ZERGLING_ADRENAL_OVERLOAD: ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 1, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), + ItemNames.ZERGLING_METABOLIC_BOOST: ItemData(202 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 2, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.ROACH_HYDRIODIC_BILE: ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 3, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), + ItemNames.ROACH_ADAPTIVE_PLATING: ItemData(204 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 4, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), + ItemNames.ROACH_TUNNELING_CLAWS: ItemData(205 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 5, SC2Race.ZERG, parent_item="Roach", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.HYDRALISK_FRENZY: ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 6, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}), + ItemNames.HYDRALISK_ANCILLARY_CARAPACE: ItemData(207 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 7, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.HYDRALISK_GROOVED_SPINES: ItemData(208 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 8, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}), + ItemNames.BANELING_CORROSIVE_ACID: ItemData(209 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 9, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}), + ItemNames.BANELING_RUPTURE: ItemData(210 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 10, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.BANELING_REGENERATIVE_ACID: ItemData(211 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 11, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.MUTALISK_VICIOUS_GLAVE: ItemData(212 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 12, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}), + ItemNames.MUTALISK_RAPID_REGENERATION: ItemData(213 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 13, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}), + ItemNames.MUTALISK_SUNDERING_GLAVE: ItemData(214 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 14, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}), + ItemNames.SWARM_HOST_BURROW: ItemData(215 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 15, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.SWARM_HOST_RAPID_INCUBATION: ItemData(216 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 16, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}), + ItemNames.SWARM_HOST_PRESSURIZED_GLANDS: ItemData(217 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 17, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}, classification=ItemClassification.progression), + ItemNames.ULTRALISK_BURROW_CHARGE: ItemData(218 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 18, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), + ItemNames.ULTRALISK_TISSUE_ANIMATION: ItemData(219 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 19, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), + ItemNames.ULTRALISK_MONARCH_BLADES: ItemData(220 + SC2HOTS_ITEM_ID_OFFSET, "Mutation", 20, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), - ItemNames.Zergling_Raptor_Strain: ItemData(300 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 0, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), - ItemNames.Zergling_Swarmling_Strain: ItemData(301 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 1, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), - ItemNames.Roach_Vile_Strain: ItemData(302 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 2, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), - ItemNames.Roach_Corpser_Strain: ItemData(303 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 3, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), - ItemNames.Hydralisk_Impaler_Strain: ItemData(304 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 4, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Hydralisk_Lurker_Strain: ItemData(305 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 5, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Baneling_Splitter_Strain: ItemData(306 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 6, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}), - ItemNames.Baneling_Hunter_Strain: ItemData(307 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 7, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}), - ItemNames.Mutalisk_Brood_Lord_Strain: ItemData(308 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 8, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Mutalisk_Viper_Strain: ItemData(309 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 9, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Swarm_Host_Carrion_Strain: ItemData(310 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 10, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}), - ItemNames.Swarm_Host_Creeper_Strain: ItemData(311 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 11, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Ultralisk_Noxious_Strain: ItemData(312 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 12, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Ultralisk_Torrasque_Strain: ItemData(313 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 13, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), + ItemNames.ZERGLING_RAPTOR_STRAIN: ItemData(300 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 0, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), + ItemNames.ZERGLING_SWARMLING_STRAIN: ItemData(301 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 1, SC2Race.ZERG, parent_item="Zergling", origin={"hots"}), + ItemNames.ROACH_VILE_STRAIN: ItemData(302 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 2, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), + ItemNames.ROACH_CORPSER_STRAIN: ItemData(303 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 3, SC2Race.ZERG, parent_item="Roach", origin={"hots"}), + ItemNames.HYDRALISK_IMPALER_STRAIN: ItemData(304 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 4, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}, classification=ItemClassification.progression), + ItemNames.HYDRALISK_LURKER_STRAIN: ItemData(305 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 5, SC2Race.ZERG, parent_item="Hydralisk", origin={"hots"}, classification=ItemClassification.progression), + ItemNames.BANELING_SPLITTER_STRAIN: ItemData(306 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 6, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}), + ItemNames.BANELING_HUNTER_STRAIN: ItemData(307 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 7, SC2Race.ZERG, parent_item="Baneling", origin={"hots"}), + ItemNames.MUTALISK_BROOD_LORD_STRAIN: ItemData(308 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 8, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}, classification=ItemClassification.progression), + ItemNames.MUTALISK_VIPER_STRAIN: ItemData(309 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 9, SC2Race.ZERG, parent_item="Mutalisk", origin={"hots"}, classification=ItemClassification.progression), + ItemNames.SWARM_HOST_CARRION_STRAIN: ItemData(310 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 10, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}), + ItemNames.SWARM_HOST_CREEPER_STRAIN: ItemData(311 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 11, SC2Race.ZERG, parent_item="Swarm Host", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.ULTRALISK_NOXIOUS_STRAIN: ItemData(312 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 12, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}, classification=ItemClassification.filler), + ItemNames.ULTRALISK_TORRASQUE_STRAIN: ItemData(313 + SC2HOTS_ITEM_ID_OFFSET, "Strain", 13, SC2Race.ZERG, parent_item="Ultralisk", origin={"hots"}), - 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, "Ability", 6, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.filler), - ItemNames.Kerrigan_Improved_Overlords: ItemData(407 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 7, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Automated_Extractors: ItemData(408 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 8, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Wild_Mutation: ItemData(409 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 9, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Spawn_Banelings: ItemData(410 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 10, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Mend: ItemData(411 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 11, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Twin_Drones: ItemData(412 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 12, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Malignant_Creep: ItemData(413 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 13, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Vespene_Efficiency: ItemData(414 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 14, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Infest_Broodlings: ItemData(415 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 15, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Fury: ItemData(416 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 16, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Ability_Efficiency: ItemData(417 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 17, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Apocalypse: ItemData(418 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 18, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Spawn_Leviathan: ItemData(419 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 19, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - ItemNames.Kerrigan_Drop_Pods: ItemData(420 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 20, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + 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, "Ability", 6, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.filler), + ItemNames.KERRIGAN_IMPROVED_OVERLORDS: ItemData(407 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 7, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_AUTOMATED_EXTRACTORS: ItemData(408 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 8, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_WILD_MUTATION: ItemData(409 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 9, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_SPAWN_BANELINGS: ItemData(410 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 10, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_MEND: ItemData(411 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 11, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_TWIN_DRONES: ItemData(412 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 12, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_MALIGNANT_CREEP: ItemData(413 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 13, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_VESPENE_EFFICIENCY: ItemData(414 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 14, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_INFEST_BROODLINGS: ItemData(415 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 15, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_FURY: ItemData(416 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 16, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_ABILITY_EFFICIENCY: ItemData(417 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 17, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_APOCALYPSE: ItemData(418 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 18, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_SPAWN_LEVIATHAN: ItemData(419 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 19, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemNames.KERRIGAN_DROP_PODS: ItemData(420 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 20, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), # Handled separately from other abilities - ItemNames.Kerrigan_Primal_Form: ItemData(421 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 0, SC2Race.ZERG, origin={"hots"}), + ItemNames.KERRIGAN_PRIMAL_FORM: ItemData(421 + SC2HOTS_ITEM_ID_OFFSET, "Ability", 0, SC2Race.ZERG, origin={"hots"}), - ItemNames.Kerrigan_Levels_10: ItemData(500 + SC2HOTS_ITEM_ID_OFFSET, "Level", 10, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_9: ItemData(501 + SC2HOTS_ITEM_ID_OFFSET, "Level", 9, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_8: ItemData(502 + SC2HOTS_ITEM_ID_OFFSET, "Level", 8, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_7: ItemData(503 + SC2HOTS_ITEM_ID_OFFSET, "Level", 7, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_6: ItemData(504 + SC2HOTS_ITEM_ID_OFFSET, "Level", 6, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_5: ItemData(505 + SC2HOTS_ITEM_ID_OFFSET, "Level", 5, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_4: ItemData(506 + SC2HOTS_ITEM_ID_OFFSET, "Level", 4, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), - ItemNames.Kerrigan_Levels_3: ItemData(507 + SC2HOTS_ITEM_ID_OFFSET, "Level", 3, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), - ItemNames.Kerrigan_Levels_2: ItemData(508 + SC2HOTS_ITEM_ID_OFFSET, "Level", 2, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), - ItemNames.Kerrigan_Levels_1: ItemData(509 + SC2HOTS_ITEM_ID_OFFSET, "Level", 1, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), - ItemNames.Kerrigan_Levels_14: ItemData(510 + SC2HOTS_ITEM_ID_OFFSET, "Level", 14, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_35: ItemData(511 + SC2HOTS_ITEM_ID_OFFSET, "Level", 35, SC2Race.ZERG, origin={"hots"}, quantity=0), - ItemNames.Kerrigan_Levels_70: ItemData(512 + SC2HOTS_ITEM_ID_OFFSET, "Level", 70, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_10: ItemData(500 + SC2HOTS_ITEM_ID_OFFSET, "Level", 10, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_9: ItemData(501 + SC2HOTS_ITEM_ID_OFFSET, "Level", 9, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_8: ItemData(502 + SC2HOTS_ITEM_ID_OFFSET, "Level", 8, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_7: ItemData(503 + SC2HOTS_ITEM_ID_OFFSET, "Level", 7, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_6: ItemData(504 + SC2HOTS_ITEM_ID_OFFSET, "Level", 6, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_5: ItemData(505 + SC2HOTS_ITEM_ID_OFFSET, "Level", 5, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_4: ItemData(506 + SC2HOTS_ITEM_ID_OFFSET, "Level", 4, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), + ItemNames.KERRIGAN_LEVELS_3: ItemData(507 + SC2HOTS_ITEM_ID_OFFSET, "Level", 3, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), + ItemNames.KERRIGAN_LEVELS_2: ItemData(508 + SC2HOTS_ITEM_ID_OFFSET, "Level", 2, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), + ItemNames.KERRIGAN_LEVELS_1: ItemData(509 + SC2HOTS_ITEM_ID_OFFSET, "Level", 1, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.filler), + ItemNames.KERRIGAN_LEVELS_14: ItemData(510 + SC2HOTS_ITEM_ID_OFFSET, "Level", 14, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_35: ItemData(511 + SC2HOTS_ITEM_ID_OFFSET, "Level", 35, SC2Race.ZERG, origin={"hots"}, quantity=0), + ItemNames.KERRIGAN_LEVELS_70: ItemData(512 + SC2HOTS_ITEM_ID_OFFSET, "Level", 70, SC2Race.ZERG, origin={"hots"}, quantity=0), } def get_item_table(multiworld: MultiWorld, player: int): @@ -365,37 +365,37 @@ def get_item_table(multiworld: MultiWorld, player: int): basic_units = { SC2Race.TERRAN: { - ItemNames.Marine, - ItemNames.Marauder, - ItemNames.Goliath, - ItemNames.Hellion, - ItemNames.Vulture, + ItemNames.MARINE, + ItemNames.MARAUDER, + ItemNames.GOLIATH, + ItemNames.HELLION, + ItemNames.VULTURE, }, SC2Race.ZERG: { - ItemNames.Zergling, - ItemNames.Swarm_Queen, - ItemNames.Roach, - ItemNames.Hydralisk, + ItemNames.ZERGLING, + ItemNames.SWARM_QUEEN, + ItemNames.ROACH, + ItemNames.HYDRALISK, }, # TODO Placeholder for Prophecy SC2Race.PROTOSS: { - ItemNames.Zealot, - ItemNames.Stalker, + ItemNames.ZEALOT, + ItemNames.STALKER, } } advanced_basic_units = { SC2Race.TERRAN: basic_units[SC2Race.TERRAN].union({ - ItemNames.Reaper, - ItemNames.Diamondback, - ItemNames.Viking, + ItemNames.REAPER, + ItemNames.DIAMONDBACK, + ItemNames.VIKING, }), SC2Race.ZERG: basic_units[SC2Race.ZERG].union({ - ItemNames.Infestor, - ItemNames.Aberration, + ItemNames.INFESTOR, + ItemNames.ABERRATION, }), SC2Race.PROTOSS: basic_units[SC2Race.PROTOSS].union({ - ItemNames.Dark_Templar, + ItemNames.DARK_TEMPLAR, }) } @@ -430,100 +430,100 @@ def get_basic_units(multiworld: MultiWorld, player: int, race: SC2Race) -> typin # TODO needs zerg items second_pass_placeable_items: typing.Tuple[str, ...] = ( # Buildings without upgrades - ItemNames.Sensor_Tower, - ItemNames.Hive_Mind_Emulator, - ItemNames.Psi_Disrupter, - ItemNames.Perdition_Turret, + ItemNames.SENSOR_TOWER, + ItemNames.HIVE_MIND_EMULATOR, + ItemNames.PSI_DISRUPTER, + ItemNames.PERDITION_TURRET, # General upgrades without any dependencies - ItemNames.SCV_Advanced_Construction, - ItemNames.SCV_Dual_Fusion_Welders, - ItemNames.Building_Fire_Suppression_System, - ItemNames.Building_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.Planetary_Fortress, - ItemNames.Cellular_Reactor, - ItemNames.Progressive_Regenerative_Bio_Steel, # Place only L1 + ItemNames.SCV_ADVANCED_CONSTRUCTION, + ItemNames.SCV_DUAL_FUSION_WELDERS, + ItemNames.BUILDING_FIRE_SUPPRESSION_SYSTEM, + ItemNames.BUILDING_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.PLANETARY_FORTRESS, + ItemNames.CELLULAR_REACTOR, + ItemNames.PROGRESSIVE_REGENERATIVE_BIO_STEEL, # Place only L1 # Mercenaries - ItemNames.War_Pigs, - ItemNames.Devil_Dogs, - ItemNames.Hammer_Securities, - ItemNames.Spartan_Company, - ItemNames.Siege_Breakers, - ItemNames.Hels_Angel, - ItemNames.Dusk_Wings, - ItemNames.Jacksons_Revenge, + ItemNames.WAR_PIGS, + ItemNames.DEVIL_DOGS, + ItemNames.HAMMER_SECURITIES, + ItemNames.SPARTAN_COMPANY, + ItemNames.SIEGE_BREAKERS, + ItemNames.HELS_ANGEL, + ItemNames.DUSK_WINGS, + ItemNames.JACKSONS_REVENGE, ) filler_items: typing.Tuple[str, ...] = ( - ItemNames.Starting_Minerals, - ItemNames.Starting_Vespene, + ItemNames.STARTING_MINERALS, + ItemNames.STARTING_VESPENE, ) # Defense rating table # Commented defense ratings are handled in LogicMixin defense_ratings = { - ItemNames.Siege_Tank: 5, + ItemNames.SIEGE_TANK: 5, # "Maelstrom Rounds": 2, - ItemNames.Planetary_Fortress: 3, + ItemNames.PLANETARY_FORTRESS: 3, # Bunker w/ Marine/Marauder: 3, - ItemNames.Perdition_Turret: 2, - ItemNames.Missile_Turret: 2, - ItemNames.Vulture: 2, - ItemNames.Liberator: 2, - ItemNames.Widow_Mine: 2, + ItemNames.PERDITION_TURRET: 2, + ItemNames.MISSILE_TURRET: 2, + ItemNames.VULTURE: 2, + ItemNames.LIBERATOR: 2, + ItemNames.WIDOW_MINE: 2, # "Concealment (Widow Mine)": 1 } zerg_defense_ratings = { - ItemNames.Perdition_Turret: 2, + ItemNames.PERDITION_TURRET: 2, # Bunker w/ Firebat: 2, - ItemNames.Hive_Mind_Emulator: 3, - ItemNames.Psi_Disrupter: 3, + ItemNames.HIVE_MIND_EMULATOR: 3, + ItemNames.PSI_DISRUPTER: 3, } spider_mine_sources = { - ItemNames.Vulture, - ItemNames.Reaper_Spider_Mines, - ItemNames.Siege_Tank_Spider_Mines, - ItemNames.Raven_Spider_Mines, + 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, + ItemNames.MARINE_PROGRESSIVE_STIMPACK, + ItemNames.FIREBAT_PROGRESSIVE_STIMPACK, + ItemNames.BANSHEE_PROGRESSIVE_CROSS_SPECTRUM_DAMPENERS, + ItemNames.PROGRESSIVE_REGENERATIVE_BIO_STEEL, } kerrigan_actives: typing.List[typing.Set[str]] = [ - {ItemNames.Kerrigan_Kinetic_Blast, ItemNames.Kerrigan_Leaping_Strike}, - {ItemNames.Kerrigan_Crushing_Grip, ItemNames.Kerrigan_Psionic_Shift}, + {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}, + {ItemNames.KERRIGAN_WILD_MUTATION, ItemNames.KERRIGAN_SPAWN_BANELINGS, ItemNames.KERRIGAN_MEND}, set(), set(), - {ItemNames.Kerrigan_Apocalypse, ItemNames.Kerrigan_Spawn_Leviathan, ItemNames.Kerrigan_Drop_Pods}, + {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}, + {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}, + {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, + ItemNames.KERRIGAN_HEROIC_FORTITUDE, ItemNames.KERRIGAN_CHAIN_REACTION, + ItemNames.KERRIGAN_INFEST_BROODLINGS, ItemNames.KERRIGAN_FURY, ItemNames.KERRIGAN_ABILITY_EFFICIENCY, } # 'number' values of upgrades for upgrade bundle items @@ -551,34 +551,34 @@ def get_basic_units(multiworld: MultiWorld, player: int, race: SC2Race) -> typin # 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_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, }, { # 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_TERRAN_WEAPON_UPGRADE, + ItemNames.PROGRESSIVE_TERRAN_ARMOR_UPGRADE, + ItemNames.PROGRESSIVE_ZERG_WEAPON_UPGRADE, + ItemNames.PROGRESSIVE_ZERG_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_TERRAN_INFANTRY_UPGRADE, + ItemNames.PROGRESSIVE_TERRAN_VEHICLE_UPGRADE, + ItemNames.PROGRESSIVE_TERRAN_SHIP_UPGRADE, + ItemNames.PROGRESSIVE_ZERG_GROUND_UPGRADE, + ItemNames.PROGRESSIVE_ZERG_FLYER_UPGRADE, }, { # Bundle All - ItemNames.Progressive_Terran_Weapon_Armor_Upgrade, - ItemNames.Progressive_Zerg_Weapon_Armor_Upgrade, + ItemNames.PROGRESSIVE_TERRAN_WEAPON_ARMOR_UPGRADE, + ItemNames.PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE, } ] diff --git a/worlds/sc2/LogicMixin.py b/worlds/sc2/LogicMixin.py index c6dd60706ec4..1dba2f0d927a 100644 --- a/worlds/sc2/LogicMixin.py +++ b/worlds/sc2/LogicMixin.py @@ -25,23 +25,23 @@ def _sc2wol_has_common_unit(self, multiworld: MultiWorld, player: int) -> bool: return self.has_any(get_basic_units(multiworld, player, SC2Race.TERRAN), player) def _sc2wol_has_air(self, multiworld: MultiWorld, player: int) -> bool: - return (self.has_any({ItemNames.Viking, ItemNames.Wraith, ItemNames.Banshee, ItemNames.Battlecruiser}, player) or self._sc2_advanced_tactics(multiworld, player) - and self.has_any({ItemNames.Hercules, ItemNames.Medivac}, player) and self._sc2wol_has_common_unit(multiworld, player) + return (self.has_any({ItemNames.VIKING, ItemNames.WRAITH, ItemNames.BANSHEE, ItemNames.BATTLECRUISER}, player) or self._sc2_advanced_tactics(multiworld, player) + and self.has_any({ItemNames.HERCULES, ItemNames.MEDIVAC}, player) and self._sc2wol_has_common_unit(multiworld, player) ) def _sc2wol_has_air_anti_air(self, multiworld: MultiWorld, player: int) -> bool: return ( - self.has(ItemNames.Viking, player) - or self.has_all({ItemNames.Wraith, ItemNames.Wraith_Advanced_Laser_Technology}, player) - or self.has_all({ItemNames.Battlecruiser, ItemNames.Battlecruiser_ATX_Laser_Battery}, player) - or self._sc2_advanced_tactics(multiworld, player) and self.has_any({ItemNames.Wraith, ItemNames.Valkyrie, ItemNames.Battlecruiser}, player) + self.has(ItemNames.VIKING, player) + or self.has_all({ItemNames.WRAITH, ItemNames.WRAITH_ADVANCED_LASER_TECHNOLOGY}, player) + or self.has_all({ItemNames.BATTLECRUISER, ItemNames.BATTLECRUISER_ATX_LASER_BATTERY}, player) + or self._sc2_advanced_tactics(multiworld, player) and self.has_any({ItemNames.WRAITH, ItemNames.VALKYRIE, ItemNames.BATTLECRUISER}, player) ) def _sc2wol_has_competent_ground_to_air(self, multiworld: MultiWorld, player: int) -> bool: return ( - self.has(ItemNames.Goliath, player) - or self.has(ItemNames.Marine, player) and self.has_any({ItemNames.Medic, ItemNames.Medivac}, player) - or self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.Cyclone, player) + self.has(ItemNames.GOLIATH, player) + or self.has(ItemNames.MARINE, player) and self.has_any({ItemNames.MEDIC, ItemNames.MEDIVAC}, player) + or self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.CYCLONE, player) ) def _sc2wol_has_competent_anti_air(self, multiworld: MultiWorld, player: int) -> bool: @@ -56,38 +56,38 @@ def _sc2wol_welcome_to_the_jungle_requirement(self, multiworld: MultiWorld, play and self._sc2wol_has_competent_ground_to_air(multiworld, player) ) or ( self._sc2_advanced_tactics(multiworld, player) - and self.has_any({ItemNames.Marine, ItemNames.Vulture}, player) + and self.has_any({ItemNames.MARINE, ItemNames.VULTURE}, player) and self._sc2wol_has_air_anti_air(multiworld, player) ) def _sc2wol_has_anti_air(self, multiworld: MultiWorld, player: int) -> bool: return ( self.has_any({ - ItemNames.Missile_Turret, ItemNames.Thor, ItemNames.War_Pigs, ItemNames.Spartan_Company, - ItemNames.Hels_Angel, ItemNames.Battlecruiser, ItemNames.Marine, ItemNames.Wraith, - ItemNames.Valkyrie, ItemNames.Cyclone, + ItemNames.MISSILE_TURRET, ItemNames.THOR, ItemNames.WAR_PIGS, ItemNames.SPARTAN_COMPANY, + ItemNames.HELS_ANGEL, ItemNames.BATTLECRUISER, ItemNames.MARINE, ItemNames.WRAITH, + ItemNames.VALKYRIE, ItemNames.CYCLONE, }, player) or self._sc2wol_has_competent_anti_air(multiworld, player) or self._sc2_advanced_tactics(multiworld, player) - and self.has_any({ItemNames.Ghost, ItemNames.Spectre, ItemNames.Widow_Mine, ItemNames.Liberator}, player) + and self.has_any({ItemNames.GHOST, ItemNames.SPECTRE, ItemNames.WIDOW_MINE, ItemNames.LIBERATOR}, player) ) def _sc2wol_defense_rating(self, multiworld: MultiWorld, player: int, zerg_enemy: bool, air_enemy: bool = True) -> int: defense_score = sum((defense_ratings[item] for item in defense_ratings if self.has(item, player))) - if self.has_any({ItemNames.Marine, ItemNames.Marauder}, player) and self.has(ItemNames.Bunker, player): + if self.has_any({ItemNames.MARINE, ItemNames.MARAUDER}, player) and self.has(ItemNames.BUNKER, player): defense_score += 3 - if self.has_all({ItemNames.Siege_Tank, ItemNames.Siege_Tank_Maelstrom_Rounds}, player): + if self.has_all({ItemNames.SIEGE_TANK, ItemNames.SIEGE_TANK_MAELSTROM_ROUNDS}, player): defense_score += 2 - if self.has_all({ItemNames.Siege_Tank, ItemNames.Siege_Tank_Graduating_Range}, player): + if self.has_all({ItemNames.SIEGE_TANK, ItemNames.SIEGE_TANK_GRADUATING_RANGE}, player): defense_score += 1 - if self.has_all({ItemNames.Widow_Mine, ItemNames.Widow_Mine_Concealment}, player): + if self.has_all({ItemNames.WIDOW_MINE, ItemNames.WIDOW_MINE_CONCEALMENT}, player): defense_score += 1 if zerg_enemy: defense_score += sum((zerg_defense_ratings[item] for item in zerg_defense_ratings if self.has(item, player))) - if self.has(ItemNames.Firebat, player) and self.has(ItemNames.Bunker, player): + if self.has(ItemNames.FIREBAT, player) and self.has(ItemNames.BUNKER, player): defense_score += 2 - if not air_enemy and self.has(ItemNames.Missile_Turret, player): - defense_score -= defense_ratings[ItemNames.Missile_Turret] + if not air_enemy and self.has(ItemNames.MISSILE_TURRET, player): + defense_score -= defense_ratings[ItemNames.MISSILE_TURRET] # Advanced Tactics bumps defense rating requirements down by 2 if self._sc2_advanced_tactics(multiworld, player): defense_score += 2 @@ -96,65 +96,65 @@ def _sc2wol_defense_rating(self, multiworld: MultiWorld, player: int, zerg_enemy def _sc2wol_has_competent_comp(self, multiworld: MultiWorld, player: int) -> bool: return ( ( - (self.has_any({ItemNames.Marine, ItemNames.Marauder}, player) - and self.has_any({ItemNames.Medivac, ItemNames.Medic}, player)) - or self.has_any({ItemNames.Thor, ItemNames.Banshee, ItemNames.Siege_Tank}, player) - or self.has_all({ItemNames.Liberator, ItemNames.Liberator_Raid_Artillery}, player) + (self.has_any({ItemNames.MARINE, ItemNames.MARAUDER}, player) + and self.has_any({ItemNames.MEDIVAC, ItemNames.MEDIC}, player)) + or self.has_any({ItemNames.THOR, ItemNames.BANSHEE, ItemNames.SIEGE_TANK}, player) + or self.has_all({ItemNames.LIBERATOR, ItemNames.LIBERATOR_RAID_ARTILLERY}, player) ) and self._sc2wol_has_competent_anti_air(multiworld, player) ) or ( - self.has(ItemNames.Battlecruiser, player) and self._sc2wol_has_common_unit(multiworld, player) + self.has(ItemNames.BATTLECRUISER, player) and self._sc2wol_has_common_unit(multiworld, player) ) def _sc2wol_has_train_killers(self, multiworld: MultiWorld, player: int) -> bool: return ( - self.has_any({ItemNames.Siege_Tank, ItemNames.Diamondback, ItemNames.Marauder, ItemNames.Cyclone}, player) + self.has_any({ItemNames.SIEGE_TANK, ItemNames.DIAMONDBACK, ItemNames.MARAUDER, ItemNames.CYCLONE}, player) or self._sc2_advanced_tactics(multiworld, player) and ( - self.has_all({ItemNames.Reaper, ItemNames.Reaper_G4_Clusterbomb}, player) - or self.has_all({ItemNames.Spectre, ItemNames.Spectre_Psionic_Lash}, player) - or self.has_any({ItemNames.Vulture, ItemNames.Liberator}, player) + self.has_all({ItemNames.REAPER, ItemNames.REAPER_G4_CLUSTERBOMB}, player) + or self.has_all({ItemNames.SPECTRE, ItemNames.SPECTRE_PSIONIC_LASH}, player) + or self.has_any({ItemNames.VULTURE, ItemNames.LIBERATOR}, player) ) ) def _sc2wol_able_to_rescue(self, multiworld: MultiWorld, player: int) -> bool: - return (self.has_any({ItemNames.Medivac, ItemNames.Hercules, ItemNames.Raven, ItemNames.Viking}, player) + return (self.has_any({ItemNames.MEDIVAC, ItemNames.HERCULES, ItemNames.RAVEN, ItemNames.VIKING}, player) or self._sc2_advanced_tactics(multiworld, player) ) def _sc2wol_has_protoss_common_units(self, multiworld: MultiWorld, player: int) -> bool: - return (self.has_any({ItemNames.Zealot, ItemNames.Immortal, ItemNames.Stalker, ItemNames.Dark_Templar}, player) - or self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.High_Templar, player) + return (self.has_any({ItemNames.ZEALOT, ItemNames.IMMORTAL, ItemNames.STALKER, ItemNames.DARK_TEMPLAR}, player) + or self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.HIGH_TEMPLAR, player) ) def _sc2wol_has_protoss_medium_units(self, multiworld: MultiWorld, player: int) -> bool: return ( self._sc2wol_has_protoss_common_units(multiworld, player) - and self.has_any({ItemNames.Stalker, ItemNames.Void_Ray, ItemNames.Carrier}, player) + and self.has_any({ItemNames.STALKER, ItemNames.VOID_RAY, ItemNames.CARRIER}, player) or self._sc2_advanced_tactics(multiworld, player) - and self.has(ItemNames.Dark_Templar, player) + and self.has(ItemNames.DARK_TEMPLAR, player) ) def _sc2wol_beats_protoss_deathball(self, multiworld: MultiWorld, player: int) -> bool: return ( ( - self.has_any({ItemNames.Banshee, ItemNames.Battlecruiser}, player) - or self.has_all({ItemNames.Liberator, ItemNames.Liberator_Raid_Artillery}, player) + self.has_any({ItemNames.BANSHEE, ItemNames.BATTLECRUISER}, player) + or self.has_all({ItemNames.LIBERATOR, ItemNames.LIBERATOR_RAID_ARTILLERY}, player) ) and self._sc2wol_has_competent_anti_air(multiworld, player) or self._sc2wol_has_competent_comp(multiworld, player) and self._sc2wol_has_air_anti_air(multiworld, player) ) def _sc2wol_has_mm_upgrade(self, multiworld: MultiWorld, player: int) -> bool: - return self.has_any({ItemNames.Marine_Combat_Shield, ItemNames.Medic_Stabilizer_Medpacks}, player) + return self.has_any({ItemNames.MARINE_COMBAT_SHIELD, ItemNames.MEDIC_STABILIZER_MEDPACKS}, player) def _sc2wol_survives_rip_field(self, multiworld: MultiWorld, player: int) -> bool: - return self.has(ItemNames.Battlecruiser, player) or \ + return self.has(ItemNames.BATTLECRUISER, player) or \ self._sc2wol_has_air(multiworld, player) and \ self._sc2wol_has_competent_anti_air(multiworld, player) and \ - self.has(ItemNames.Science_Vessel, player) + self.has(ItemNames.SCIENCE_VESSEL, player) def _sc2wol_has_nukes(self, multiworld: MultiWorld, player: int) -> bool: - return self._sc2_advanced_tactics(multiworld, player) and self.has_any({ItemNames.Ghost, ItemNames.Spectre}, player) + return self._sc2_advanced_tactics(multiworld, player) and self.has_any({ItemNames.GHOST, ItemNames.SPECTRE}, player) def _sc2wol_can_respond_to_colony_infestations(self, multiworld: MultiWorld, player: int) -> bool: return ( @@ -162,25 +162,25 @@ def _sc2wol_can_respond_to_colony_infestations(self, multiworld: MultiWorld, pla and self._sc2wol_has_competent_anti_air(multiworld, player) and ( self._sc2wol_has_air_anti_air(multiworld, player) - or self.has_any({ItemNames.Battlecruiser, ItemNames.Valkyrie}, player) + or self.has_any({ItemNames.BATTLECRUISER, ItemNames.VALKYRIE}, player) ) and self._sc2wol_defense_rating(multiworld, player, True) >= 3 ) def _sc2wol_final_mission_requirements(self, multiworld: MultiWorld, player: int): - beats_kerrigan = self.has_any({ItemNames.Marine, ItemNames.Banshee, ItemNames.Ghost}, player) or self._sc2_advanced_tactics(multiworld, player) + beats_kerrigan = self.has_any({ItemNames.MARINE, ItemNames.BANSHEE, ItemNames.GHOST}, player) or self._sc2_advanced_tactics(multiworld, player) if get_option_value(multiworld, player, 'all_in_map') == AllInMap.option_ground: # Ground defense_rating = self._sc2wol_defense_rating(multiworld, player, True, False) - if self.has_any({ItemNames.Battlecruiser, ItemNames.Banshee}, player): + if self.has_any({ItemNames.BATTLECRUISER, ItemNames.BANSHEE}, player): defense_rating += 3 return defense_rating >= 12 and beats_kerrigan else: # Air defense_rating = self._sc2wol_defense_rating(multiworld, player, True, True) return defense_rating >= 8 and beats_kerrigan \ - and self.has_any({ItemNames.Viking, ItemNames.Battlecruiser, ItemNames.Valkyrie}, player) \ - and self.has_any({ItemNames.Hive_Mind_Emulator, ItemNames.Psi_Disrupter, ItemNames.Missile_Turret}, player) + and self.has_any({ItemNames.VIKING, ItemNames.BATTLECRUISER, ItemNames.VALKYRIE}, player) \ + and self.has_any({ItemNames.HIVE_MIND_EMULATOR, ItemNames.PSI_DISRUPTER, ItemNames.MISSILE_TURRET}, player) def _sc2wol_cleared_missions(self, multiworld: MultiWorld, player: int, mission_count: int) -> bool: return self.has_group("WoL Missions", player, mission_count) @@ -190,34 +190,34 @@ def _sc2hots_has_common_unit(self, multiworld: MultiWorld, player: int) -> bool: return self.has_any(get_basic_units(multiworld, player, SC2Race.ZERG), player) def _sc2hots_has_good_antiair(self, multiworld: MultiWorld, player: int) -> bool: - return self.has_any({ItemNames.Hydralisk, ItemNames.Mutalisk}, player) or \ - self.has_all({ItemNames.Swarm_Host, ItemNames.Swarm_Host_Pressurized_Glands}, player) or \ - (self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.Infestor, player)) + return self.has_any({ItemNames.HYDRALISK, ItemNames.MUTALISK}, player) or \ + self.has_all({ItemNames.SWARM_HOST, ItemNames.SWARM_HOST_PRESSURIZED_GLANDS}, player) or \ + (self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.INFESTOR, player)) def _sc2hots_has_minimal_antiair(self, multiworld: MultiWorld, player: int) -> bool: return self._sc2hots_has_good_antiair(multiworld, player) or get_option_value(multiworld, player, 'kerriganless') in kerrigan_unit_available or \ - self.has(ItemNames.Swarm_Queen, player) or (self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.Spore_Crawler, player)) + self.has(ItemNames.SWARM_QUEEN, player) or (self._sc2_advanced_tactics(multiworld, player) and self.has(ItemNames.SPORE_CRAWLER, player)) def _sc2hots_has_brood_lord(self, multiworld: MultiWorld, player: int) -> bool: - return self.has_all({ItemNames.Mutalisk, ItemNames.Mutalisk_Brood_Lord_Strain}, player) + return self.has_all({ItemNames.MUTALISK, ItemNames.MUTALISK_BROOD_LORD_STRAIN}, player) def _sc2hots_has_viper(self, multiworld: MultiWorld, player: int) -> bool: - return self.has_all({ItemNames.Mutalisk, ItemNames.Mutalisk_Viper_Strain}, player) + return self.has_all({ItemNames.MUTALISK, ItemNames.MUTALISK_VIPER_STRAIN}, player) def _sc2hots_has_impaler_or_lurker(self, multiworld: MultiWorld, player: int) -> bool: - return self.has(ItemNames.Hydralisk, player) and self.has_any({ItemNames.Hydralisk_Impaler_Strain, ItemNames.Hydralisk_Lurker_Strain}, player) + return self.has(ItemNames.HYDRALISK, player) and self.has_any({ItemNames.HYDRALISK_IMPALER_STRAIN, ItemNames.HYDRALISK_LURKER_STRAIN}, player) def _sc2hots_has_competent_comp(self, multiworld: MultiWorld, player: int) -> bool: advanced = self._sc2_advanced_tactics(multiworld, player) - core_unit = self.has_any({ItemNames.Roach, ItemNames.Aberration, ItemNames.Zergling}, player) - support_unit = self.has_any({ItemNames.Swarm_Queen, ItemNames.Hydralisk}, player) \ + core_unit = self.has_any({ItemNames.ROACH, ItemNames.ABERRATION, ItemNames.ZERGLING}, player) + support_unit = self.has_any({ItemNames.SWARM_QUEEN, ItemNames.HYDRALISK}, player) \ or self._sc2hots_has_brood_lord(multiworld, player) \ - or advanced and (self.has(ItemNames.Infestor, player) or self._sc2hots_has_viper(multiworld, player)) + or advanced and (self.has(ItemNames.INFESTOR, player) or self._sc2hots_has_viper(multiworld, player)) if core_unit and support_unit: return True - vespene_unit = self.has_any({ItemNames.Ultralisk, ItemNames.Aberration}, player) \ + vespene_unit = self.has_any({ItemNames.ULTRALISK, ItemNames.ABERRATION}, player) \ or advanced and self._sc2hots_has_viper(multiworld, player) - return vespene_unit and self.has_any({ItemNames.Zergling, ItemNames.Swarm_Queen}, player) + return vespene_unit and self.has_any({ItemNames.ZERGLING, ItemNames.SWARM_QUEEN}, player) def _sc2hots_has_basic_comp(self, multiworld: MultiWorld, player: int) -> bool: if get_option_value(multiworld, player, 'game_difficulty') < GameDifficulty.option_brutal \ @@ -228,20 +228,20 @@ def _sc2hots_has_basic_comp(self, multiworld: MultiWorld, player: int) -> bool: return self._sc2hots_has_competent_comp(multiworld, player) def _sc2hots_can_spread_creep(self, multiworld: MultiWorld, player: int) -> bool: - return self._sc2_advanced_tactics(multiworld, player) or self.has(ItemNames.Swarm_Queen, player) + return self._sc2_advanced_tactics(multiworld, player) or self.has(ItemNames.SWARM_QUEEN, player) def _sc2hots_has_competent_defense(self, multiworld: MultiWorld, player: int) -> bool: return ( self._sc2hots_has_common_unit(multiworld, player) and ( ( - self.has(ItemNames.Swarm_Host, player) + self.has(ItemNames.SWARM_HOST, player) or self._sc2hots_has_brood_lord(multiworld, player) or self._sc2hots_has_impaler_or_lurker(multiworld, player) ) or ( self._sc2_advanced_tactics(multiworld, player) and (self._sc2hots_has_viper(multiworld, player) - or self.has(ItemNames.Spine_Crawler, player)) + or self.has(ItemNames.SPINE_CRAWLER, player)) ) ) ) @@ -249,15 +249,15 @@ def _sc2hots_has_competent_defense(self, multiworld: MultiWorld, player: int) -> def _sc2hots_has_basic_kerrigan(self, multiworld: MultiWorld, player: int) -> bool: # One active ability that can be used to defeat enemies directly on Standard if not self._sc2_advanced_tactics(multiworld, player) and \ - not self.has_any({ItemNames.Kerrigan_Kinetic_Blast, ItemNames.Kerrigan_Leaping_Strike, - ItemNames.Kerrigan_Crushing_Grip, ItemNames.Kerrigan_Psionic_Shift, - ItemNames.Kerrigan_Spawn_Banelings}, player): + not self.has_any({ItemNames.KERRIGAN_KINETIC_BLAST, ItemNames.KERRIGAN_LEAPING_STRIKE, + ItemNames.KERRIGAN_CRUSHING_GRIP, ItemNames.KERRIGAN_PSIONIC_SHIFT, + ItemNames.KERRIGAN_SPAWN_BANELINGS}, player): return False # Two non-ultimate abilities count = 0 - for item in (ItemNames.Kerrigan_Kinetic_Blast, ItemNames.Kerrigan_Leaping_Strike, ItemNames.Kerrigan_Heroic_Fortitude, - ItemNames.Kerrigan_Chain_Reaction, ItemNames.Kerrigan_Crushing_Grip, ItemNames.Kerrigan_Psionic_Shift, - ItemNames.Kerrigan_Spawn_Banelings, ItemNames.Kerrigan_Infest_Broodlings, ItemNames.Kerrigan_Fury): + for item in (ItemNames.KERRIGAN_KINETIC_BLAST, ItemNames.KERRIGAN_LEAPING_STRIKE, ItemNames.KERRIGAN_HEROIC_FORTITUDE, + ItemNames.KERRIGAN_CHAIN_REACTION, ItemNames.KERRIGAN_CRUSHING_GRIP, ItemNames.KERRIGAN_PSIONIC_SHIFT, + ItemNames.KERRIGAN_SPAWN_BANELINGS, ItemNames.KERRIGAN_INFEST_BROODLINGS, ItemNames.KERRIGAN_FURY): if self.has(item, player): count += 1 if count >= 2: @@ -272,5 +272,5 @@ def _sc2hots_has_two_kerrigan_actives(self, multiworld: MultiWorld, player: int) return count >= 2 def _sc2hots_has_low_tech(self, multiworld: MultiWorld, player: int) -> bool: - return self.has_any({ItemNames.Zergling, ItemNames.Swarm_Queen, ItemNames.Spine_Crawler}, player) \ + return self.has_any({ItemNames.ZERGLING, ItemNames.SWARM_QUEEN, ItemNames.SPINE_CRAWLER}, player) \ or self._sc2hots_has_common_unit(multiworld, player) and self._sc2hots_has_basic_kerrigan(multiworld, player) diff --git a/worlds/sc2/PoolFilter.py b/worlds/sc2/PoolFilter.py index 6df5442b14b1..e498f4123816 100644 --- a/worlds/sc2/PoolFilter.py +++ b/worlds/sc2/PoolFilter.py @@ -14,18 +14,18 @@ UPGRADABLE_ITEMS = {item.parent_item for item in get_full_item_list().values() if item.parent_item} BARRACKS_UNITS = { - ItemNames.Marine, ItemNames.Medic, ItemNames.Firebat, ItemNames.Marauder, - ItemNames.Reaper, ItemNames.Ghost, ItemNames.Spectre, + ItemNames.MARINE, ItemNames.MEDIC, ItemNames.FIREBAT, ItemNames.MARAUDER, + ItemNames.REAPER, ItemNames.GHOST, ItemNames.SPECTRE, } FACTORY_UNITS = { - ItemNames.Hellion, ItemNames.Vulture, ItemNames.Goliath, ItemNames.Diamondback, - ItemNames.Siege_Tank, ItemNames.Thor, ItemNames.Predator, ItemNames.Widow_Mine, - ItemNames.Cyclone, + ItemNames.HELLION, ItemNames.VULTURE, ItemNames.GOLIATH, ItemNames.DIAMONDBACK, + ItemNames.SIEGE_TANK, ItemNames.THOR, ItemNames.PREDATOR, ItemNames.WIDOW_MINE, + ItemNames.CYCLONE, } STARPORT_UNITS = { - ItemNames.Medivac, ItemNames.Wraith, ItemNames.Viking, ItemNames.Banshee, - ItemNames.Battlecruiser, ItemNames.Hercules, ItemNames.Science_Vessel, ItemNames.Raven, - ItemNames.Liberator, ItemNames.Valkyrie, + ItemNames.MEDIVAC, ItemNames.WRAITH, ItemNames.VIKING, ItemNames.BANSHEE, + ItemNames.BATTLECRUISER, ItemNames.HERCULES, ItemNames.SCIENCE_VESSEL, ItemNames.RAVEN, + ItemNames.LIBERATOR, ItemNames.VALKYRIE, } @@ -331,27 +331,27 @@ def attempt_removal(item: Item) -> bool: inventory = [item for item in inventory if not item.name.endswith("(Spider Mine)")] if not BARRACKS_UNITS & self.logical_inventory: inventory = [item for item in inventory if - not (item.name.startswith(ItemNames.terran_infantry_upgrade_prefix) or item.name == ItemNames.Orbital_Strike)] + not (item.name.startswith(ItemNames.TERRAN_INFANTRY_UPGRADE_PREFIX) or item.name == ItemNames.ORBITAL_STRIKE)] if not FACTORY_UNITS & self.logical_inventory: - inventory = [item for item in inventory if not item.name.startswith(ItemNames.terran_vehicle_upgrade_prefix)] + inventory = [item for item in inventory if not item.name.startswith(ItemNames.TERRAN_VEHICLE_UPGRADE_PREFIX)] if not STARPORT_UNITS & self.logical_inventory: - inventory = [item for item in inventory if not item.name.startswith(ItemNames.terran_ship_upgrade_prefix)] + inventory = [item for item in inventory if not item.name.startswith(ItemNames.TERRAN_SHIP_UPGRADE_PREFIX)] # HotS # Baneling without sources => remove Baneling and upgrades - if (ItemNames.Baneling in self.logical_inventory - and ItemNames.Zergling not in self.logical_inventory - and ItemNames.Kerrigan_Spawn_Banelings not in self.logical_inventory + if (ItemNames.BANELING in self.logical_inventory + and ItemNames.ZERGLING not in self.logical_inventory + and ItemNames.KERRIGAN_SPAWN_BANELINGS not in self.logical_inventory ): - inventory = [item for item in inventory if ItemNames.Baneling not in item.name] + inventory = [item for item in inventory if ItemNames.BANELING not in item.name] # Spawn Banelings without Zergling => remove Baneling unit, keep upgrades - if (ItemNames.Baneling in self.logical_inventory - and ItemNames.Zergling not in self.logical_inventory - and ItemNames.Kerrigan_Spawn_Banelings in self.logical_inventory + if (ItemNames.BANELING in self.logical_inventory + and ItemNames.ZERGLING not in self.logical_inventory + and ItemNames.KERRIGAN_SPAWN_BANELINGS in self.logical_inventory ): - inventory = [item for item in inventory if item.name != ItemNames.Baneling] - if ItemNames.Mutalisk not in self.logical_inventory: - inventory = [item for item in inventory if not item.name.startswith(ItemNames.zerg_flyer_upgrade_prefix)] - locked_items = [item for item in locked_items if not item.name.startswith(ItemNames.zerg_flyer_upgrade_prefix)] + inventory = [item for item in inventory if item.name != ItemNames.BANELING] + if ItemNames.MUTALISK not in self.logical_inventory: + inventory = [item for item in inventory if not item.name.startswith(ItemNames.ZERG_FLYER_UPGRADE_PREFIX)] + locked_items = [item for item in locked_items if not item.name.startswith(ItemNames.ZERG_FLYER_UPGRADE_PREFIX)] # Cull finished, adding locked items back into inventory inventory += locked_items