diff --git a/worlds/sc2/items.py b/worlds/sc2/items.py index 1f8aedb876f0..d41593ae23f4 100644 --- a/worlds/sc2/items.py +++ b/worlds/sc2/items.py @@ -109,7 +109,6 @@ class ItemData(typing.NamedTuple): classification: ItemClassification = ItemClassification.useful quantity: int = 1 parent_item: typing.Optional[str] = None - origin: typing.Set[str] = {"wol"} important_for_filtering: bool = False def is_important_for_filtering(self): @@ -196,38 +195,38 @@ def get_full_item_list(): # EE units item_names.LIBERATOR: ItemData(18 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 18, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"nco", "ext"}), + classification=ItemClassification.progression), item_names.VALKYRIE: ItemData(19 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 19, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"bw"}), + classification=ItemClassification.progression), item_names.WIDOW_MINE: ItemData(20 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 20, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.CYCLONE: ItemData(21 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 21, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.HERC: ItemData(22 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 26, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.WARHOUND: ItemData(23 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 27, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.DOMINION_TROOPER: ItemData(24 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 4, SC2Race.TERRAN, classification=ItemClassification.progression), # Elites item_names.PRIDE_OF_AUGUSTRGRAD: ItemData(50 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 28, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SKY_FURY: ItemData(51 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit, 29, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SHOCK_DIVISION: ItemData(52 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 0, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.BLACKHAMMER: ItemData(53 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 1, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.AEGIS_GUARD: ItemData(54 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 2, SC2Race.TERRAN), item_names.EMPERORS_SHADOW: @@ -249,7 +248,7 @@ def get_full_item_list(): ItemData(60 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 9, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NIGHT_WOLF: - ItemData(61 +SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 10, SC2Race.TERRAN), + ItemData(61 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Unit_2, 10, SC2Race.TERRAN), # Some other items are moved to Upgrade group because of the way how the bot message is parsed item_names.PROGRESSIVE_TERRAN_INFANTRY_WEAPON: ItemData(100 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Upgrade, 0, SC2Race.TERRAN, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), @@ -321,253 +320,251 @@ def get_full_item_list(): classification=ItemClassification.progression, parent_item=item_names.REAPER), item_names.CYCLONE_MAG_FIELD_ACCELERATORS: ItemData(218 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 18, SC2Race.TERRAN, - parent_item=item_names.CYCLONE, origin={"ext"}), + parent_item=item_names.CYCLONE), item_names.CYCLONE_MAG_FIELD_LAUNCHERS: ItemData(219 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 19, SC2Race.TERRAN, - parent_item=item_names.CYCLONE, origin={"ext"}), + parent_item=item_names.CYCLONE), item_names.MARINE_LASER_TARGETING_SYSTEM: ItemData(220 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 8, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MARINE, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.MARINE), item_names.MARINE_MAGRAIL_MUNITIONS: ItemData(221 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 20, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.MARINE, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.MARINE), item_names.MARINE_OPTIMIZED_LOGISTICS: ItemData(222 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 21, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MARINE, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.MARINE), item_names.MEDIC_RESTORATION: ItemData(223 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 22, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIC, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIC), item_names.MEDIC_OPTICAL_FLARE: ItemData(224 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 23, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIC, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIC), item_names.MEDIC_RESOURCE_EFFICIENCY: ItemData(225 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 24, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIC, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIC), item_names.FIREBAT_PROGRESSIVE_STIMPACK: ItemData(226 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive, 6, SC2Race.TERRAN, - parent_item=item_names.FIREBAT, quantity=2, origin={"bw"}), + parent_item=item_names.FIREBAT, quantity=2), item_names.FIREBAT_RESOURCE_EFFICIENCY: ItemData(227 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 25, SC2Race.TERRAN, - parent_item=item_names.FIREBAT, origin={"bw"}), + parent_item=item_names.FIREBAT), item_names.MARAUDER_PROGRESSIVE_STIMPACK: ItemData(228 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive, 8, SC2Race.TERRAN, - parent_item=item_names.MARAUDER, quantity=2, origin={"nco"}), + parent_item=item_names.MARAUDER, quantity=2), item_names.MARAUDER_LASER_TARGETING_SYSTEM: ItemData(229 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 26, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MARAUDER, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.MARAUDER), item_names.MARAUDER_MAGRAIL_MUNITIONS: ItemData(230 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 27, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MARAUDER, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.MARAUDER), item_names.MARAUDER_INTERNAL_TECH_MODULE: ItemData(231 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 28, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MARAUDER, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.MARAUDER), item_names.SCV_HOSTILE_ENVIRONMENT_ADAPTATION: ItemData(232 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_1, 29, SC2Race.TERRAN, - classification=ItemClassification.filler, origin={"bw"}), + classification=ItemClassification.filler), item_names.MEDIC_ADAPTIVE_MEDPACKS: ItemData(233 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 0, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.MEDIC, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.MEDIC), item_names.MEDIC_NANO_PROJECTOR: ItemData(234 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 1, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIC, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIC), item_names.FIREBAT_INFERNAL_PRE_IGNITER: ItemData(235 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 2, SC2Race.TERRAN, - parent_item=item_names.FIREBAT, origin={"bw"}), + parent_item=item_names.FIREBAT), item_names.FIREBAT_KINETIC_FOAM: ItemData(236 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 3, SC2Race.TERRAN, - parent_item=item_names.FIREBAT, origin={"ext"}), + parent_item=item_names.FIREBAT), item_names.FIREBAT_NANO_PROJECTORS: ItemData(237 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 4, SC2Race.TERRAN, - parent_item=item_names.FIREBAT, origin={"ext"}), + parent_item=item_names.FIREBAT), item_names.MARAUDER_JUGGERNAUT_PLATING: ItemData(238 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 5, SC2Race.TERRAN, - parent_item=item_names.MARAUDER, origin={"ext"}), + parent_item=item_names.MARAUDER), item_names.REAPER_JET_PACK_OVERDRIVE: ItemData(239 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 6, SC2Race.TERRAN, - parent_item=item_names.REAPER, origin={"ext"}), + parent_item=item_names.REAPER), item_names.HELLION_INFERNAL_PLATING: ItemData(240 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 7, SC2Race.TERRAN, - parent_item=item_names.HELLION, origin={"ext"}), + parent_item=item_names.HELLION), item_names.VULTURE_AUTO_REPAIR: ItemData(241 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 8, SC2Race.TERRAN, - parent_item=item_names.VULTURE, origin={"ext"}), + parent_item=item_names.VULTURE), item_names.GOLIATH_SHAPED_HULL: ItemData(242 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 9, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.GOLIATH, origin={"nco", "ext"}), + classification=ItemClassification.filler, parent_item=item_names.GOLIATH), item_names.GOLIATH_RESOURCE_EFFICIENCY: ItemData(243 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 10, SC2Race.TERRAN, - parent_item=item_names.GOLIATH, origin={"nco", "bw"}), + parent_item=item_names.GOLIATH), item_names.GOLIATH_INTERNAL_TECH_MODULE: ItemData(244 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 11, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.GOLIATH, origin={"nco", "bw"}), + classification=ItemClassification.filler, parent_item=item_names.GOLIATH), item_names.SIEGE_TANK_SHAPED_HULL: ItemData(245 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 12, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK, origin={"nco", "ext"}), + classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK), item_names.SIEGE_TANK_RESOURCE_EFFICIENCY: ItemData(246 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 13, SC2Race.TERRAN, - parent_item=item_names.SIEGE_TANK, origin={"bw"}), + parent_item=item_names.SIEGE_TANK), item_names.PREDATOR_CLOAK: ItemData(247 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 14, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.PREDATOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.PREDATOR), item_names.PREDATOR_CHARGE: ItemData(248 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 15, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.PREDATOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.PREDATOR), item_names.MEDIVAC_SCATTER_VEIL: ItemData(249 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 16, SC2Race.TERRAN, - parent_item=item_names.MEDIVAC, origin={"ext"}), + parent_item=item_names.MEDIVAC), item_names.REAPER_PROGRESSIVE_STIMPACK: ItemData(250 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive, 10, SC2Race.TERRAN, - parent_item=item_names.REAPER, quantity=2, origin={"nco"}), + parent_item=item_names.REAPER, quantity=2), item_names.REAPER_LASER_TARGETING_SYSTEM: ItemData(251 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 17, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.REAPER, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.REAPER), item_names.REAPER_ADVANCED_CLOAKING_FIELD: ItemData(252 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 18, SC2Race.TERRAN, - parent_item=item_names.REAPER, origin={"nco"}), + parent_item=item_names.REAPER), item_names.REAPER_SPIDER_MINES: ItemData(253 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 19, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.REAPER, origin={"nco"}, + classification=ItemClassification.filler, parent_item=item_names.REAPER, important_for_filtering=True), item_names.REAPER_COMBAT_DRUGS: ItemData(254 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 20, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.REAPER, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.REAPER), item_names.HELLION_HELLBAT_ASPECT: ItemData(255 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 21, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.HELLION, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.HELLION), item_names.HELLION_SMART_SERVOS: ItemData(256 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 22, SC2Race.TERRAN, - parent_item=item_names.HELLION, origin={"nco"}), + parent_item=item_names.HELLION), item_names.HELLION_OPTIMIZED_LOGISTICS: ItemData(257 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 23, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.HELLION, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.HELLION), item_names.HELLION_JUMP_JETS: ItemData(258 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 24, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.HELLION, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.HELLION), item_names.HELLION_PROGRESSIVE_STIMPACK: ItemData(259 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive, 12, SC2Race.TERRAN, - parent_item=item_names.HELLION, quantity=2, origin={"nco"}), + parent_item=item_names.HELLION, quantity=2), item_names.VULTURE_ION_THRUSTERS: ItemData(260 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 25, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.VULTURE, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.VULTURE), item_names.VULTURE_AUTO_LAUNCHERS: ItemData(261 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 26, SC2Race.TERRAN, - parent_item=item_names.VULTURE, origin={"bw"}), + parent_item=item_names.VULTURE), item_names.SPIDER_MINE_HIGH_EXPLOSIVE_MUNITION: - ItemData(262 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 27, SC2Race.TERRAN, - origin={"bw"}), + ItemData(262 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 27, SC2Race.TERRAN), item_names.GOLIATH_JUMP_JETS: ItemData(263 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 28, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.GOLIATH, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.GOLIATH), item_names.GOLIATH_OPTIMIZED_LOGISTICS: ItemData(264 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_2, 29, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.GOLIATH, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.GOLIATH), item_names.DIAMONDBACK_HYPERFLUXOR: ItemData(265 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 0, SC2Race.TERRAN, - parent_item=item_names.DIAMONDBACK, origin={"ext"}), + parent_item=item_names.DIAMONDBACK), item_names.DIAMONDBACK_BURST_CAPACITORS: ItemData(266 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 1, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.DIAMONDBACK, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.DIAMONDBACK), item_names.DIAMONDBACK_RESOURCE_EFFICIENCY: ItemData(267 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 2, SC2Race.TERRAN, - parent_item=item_names.DIAMONDBACK, origin={"ext"}), + parent_item=item_names.DIAMONDBACK), item_names.SIEGE_TANK_JUMP_JETS: ItemData(268 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 3, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.SIEGE_TANK, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.SIEGE_TANK), item_names.SIEGE_TANK_SPIDER_MINES: ItemData(269 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 4, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK, origin={"nco"}, + classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK, important_for_filtering=True), item_names.SIEGE_TANK_SMART_SERVOS: ItemData(270 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 5, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK), item_names.SIEGE_TANK_GRADUATING_RANGE: ItemData(271 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 6, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.SIEGE_TANK, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.SIEGE_TANK), item_names.SIEGE_TANK_LASER_TARGETING_SYSTEM: ItemData(272 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 7, SC2Race.TERRAN, - parent_item=item_names.SIEGE_TANK, origin={"nco"}), + parent_item=item_names.SIEGE_TANK), item_names.SIEGE_TANK_ADVANCED_SIEGE_TECH: ItemData(273 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 8, SC2Race.TERRAN, - parent_item=item_names.SIEGE_TANK, origin={"ext"}), + parent_item=item_names.SIEGE_TANK), item_names.SIEGE_TANK_INTERNAL_TECH_MODULE: ItemData(274 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 9, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK), item_names.PREDATOR_RESOURCE_EFFICIENCY: ItemData(275 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 10, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.PREDATOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.PREDATOR), item_names.MEDIVAC_EXPANDED_HULL: ItemData(276 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 11, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIVAC, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIVAC), item_names.MEDIVAC_AFTERBURNERS: ItemData(277 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 12, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIVAC, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIVAC), item_names.WRAITH_ADVANCED_LASER_TECHNOLOGY: ItemData(278 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 13, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.WRAITH, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.WRAITH), item_names.VIKING_SMART_SERVOS: ItemData(279 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 14, SC2Race.TERRAN, - parent_item=item_names.VIKING, origin={"ext"}), + parent_item=item_names.VIKING), item_names.VIKING_ANTI_MECHANICAL_MUNITION: ItemData(280 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 15, SC2Race.TERRAN, - parent_item=item_names.VIKING, origin={"ext"}), + parent_item=item_names.VIKING), item_names.DIAMONDBACK_ION_THRUSTERS: ItemData(281 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 21, SC2Race.TERRAN, - parent_item=item_names.DIAMONDBACK, origin={"ext"}), + parent_item=item_names.DIAMONDBACK), item_names.WARHOUND_RESOURCE_EFFICIENCY: ItemData(282 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 13, SC2Race.TERRAN, - parent_item=item_names.WARHOUND, origin={"ext"}), + parent_item=item_names.WARHOUND), item_names.WARHOUND_REINFORCED_PLATING: ItemData(283 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 14, SC2Race.TERRAN, - parent_item=item_names.WARHOUND, origin={"ext"}), + parent_item=item_names.WARHOUND), item_names.HERC_RESOURCE_EFFICIENCY: ItemData(284 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 15, SC2Race.TERRAN, - parent_item=item_names.HERC, origin={"ext"}), + parent_item=item_names.HERC), item_names.HERC_JUGGERNAUT_PLATING: ItemData(285 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 16, SC2Race.TERRAN, - parent_item=item_names.HERC, origin={"ext"}), + parent_item=item_names.HERC), item_names.HERC_KINETIC_FOAM: ItemData(286 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 17, SC2Race.TERRAN, - parent_item=item_names.HERC, origin={"ext"}), + parent_item=item_names.HERC), item_names.REAPER_RESOURCE_EFFICIENCY: ItemData(287 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 18, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.REAPER, origin={"ext"},), + classification=ItemClassification.progression, parent_item=item_names.REAPER,), item_names.REAPER_KINETIC_FOAM: ItemData(288 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 19, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.REAPER, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.REAPER), item_names.SIEGE_TANK_PROGRESSIVE_TRANSPORT_HOOK: ItemData(289 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive_2, 6, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.SIEGE_TANK, quantity=2, - origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.SIEGE_TANK, quantity=2), item_names.SIEGE_TANK_ENHANCED_COMBUSTION_ENGINES: ItemData(290 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 20, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.SIEGE_TANK), item_names.MEDIVAC_RAPID_REIGNITION_SYSTEMS: ItemData(291 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 21, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MEDIVAC, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.MEDIVAC), item_names.BATTLECRUISER_BEHEMOTH_REACTOR: ItemData(292 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 22, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.BATTLECRUISER, origin={"lotv"}), + classification=ItemClassification.filler, parent_item=item_names.BATTLECRUISER), item_names.THOR_RAPID_RELOAD: ItemData(293 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 23, SC2Race.TERRAN, - parent_item=item_names.THOR, origin={"lotv"}), + parent_item=item_names.THOR), item_names.LIBERATOR_GUERILLA_MISSILES: ItemData(294 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 24, SC2Race.TERRAN, - parent_item=item_names.LIBERATOR, origin={"ext"}), + parent_item=item_names.LIBERATOR), item_names.WIDOW_MINE_RESOURCE_EFFICIENCY: ItemData(295 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 25, SC2Race.TERRAN, - parent_item=item_names.WIDOW_MINE, origin={"ext"}), + parent_item=item_names.WIDOW_MINE), item_names.HERC_GRAPPLE_PULL: ItemData(296 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 26, SC2Race.TERRAN, - parent_item=item_names.HERC, origin={"ext"}), + parent_item=item_names.HERC), item_names.COMMAND_CENTER_SCANNER_SWEEP: ItemData(297 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 27, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"wol", "nco"}), + classification=ItemClassification.progression), item_names.COMMAND_CENTER_MULE: ItemData(298 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 28, SC2Race.TERRAN, important_for_filtering=True), item_names.COMMAND_CENTER_EXTRA_SUPPLIES: ItemData(299 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 29, SC2Race.TERRAN, - important_for_filtering=True, origin={"nco"}), + important_for_filtering=True), item_names.HELLION_TWIN_LINKED_FLAMETHROWER: ItemData(300 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_3, 16, SC2Race.TERRAN, classification=ItemClassification.filler, parent_item=item_names.HELLION), @@ -648,223 +645,223 @@ def get_full_item_list(): classification=ItemClassification.filler, parent_item=item_names.THOR, quantity=2), item_names.LIBERATOR_ADVANCED_BALLISTICS: ItemData(326 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 7, SC2Race.TERRAN, - parent_item=item_names.LIBERATOR, origin={"ext"}), + parent_item=item_names.LIBERATOR), item_names.LIBERATOR_RAID_ARTILLERY: ItemData(327 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 8, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.LIBERATOR, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.LIBERATOR), item_names.WIDOW_MINE_DRILLING_CLAWS: ItemData(328 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 9, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.WIDOW_MINE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.WIDOW_MINE), item_names.WIDOW_MINE_CONCEALMENT: ItemData(329 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 10, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.WIDOW_MINE, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.WIDOW_MINE), item_names.MEDIVAC_ADVANCED_CLOAKING_FIELD: ItemData(330 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 11, SC2Race.TERRAN, - parent_item=item_names.MEDIVAC, origin={"ext"}), + parent_item=item_names.MEDIVAC), item_names.WRAITH_TRIGGER_OVERRIDE: ItemData(331 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 12, SC2Race.TERRAN, - parent_item=item_names.WRAITH, origin={"ext"}), + parent_item=item_names.WRAITH), item_names.WRAITH_INTERNAL_TECH_MODULE: ItemData(332 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 13, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.WRAITH, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.WRAITH), item_names.WRAITH_RESOURCE_EFFICIENCY: ItemData(333 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 14, SC2Race.TERRAN, - parent_item=item_names.WRAITH, origin={"bw"}), + parent_item=item_names.WRAITH), item_names.VIKING_SHREDDER_ROUNDS: ItemData(334 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 15, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.VIKING, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.VIKING), item_names.VIKING_WILD_MISSILES: ItemData(335 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 16, SC2Race.TERRAN, - parent_item=item_names.VIKING, origin={"ext"}), + parent_item=item_names.VIKING), item_names.BANSHEE_SHAPED_HULL: ItemData(336 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 17, SC2Race.TERRAN, - parent_item=item_names.BANSHEE, origin={"ext"}), + parent_item=item_names.BANSHEE), item_names.BANSHEE_ADVANCED_TARGETING_OPTICS: ItemData(337 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 18, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.BANSHEE, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.BANSHEE), item_names.BANSHEE_DISTORTION_BLASTERS: ItemData(338 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 19, SC2Race.TERRAN, - parent_item=item_names.BANSHEE, origin={"ext"}), + parent_item=item_names.BANSHEE), item_names.BANSHEE_ROCKET_BARRAGE: ItemData(339 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 20, SC2Race.TERRAN, - parent_item=item_names.BANSHEE, origin={"ext"}), + parent_item=item_names.BANSHEE), item_names.GHOST_RESOURCE_EFFICIENCY: ItemData(340 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 21, SC2Race.TERRAN, - parent_item=item_names.GHOST, origin={"bw"}), + parent_item=item_names.GHOST), item_names.SPECTRE_RESOURCE_EFFICIENCY: ItemData(341 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 22, SC2Race.TERRAN, - parent_item=item_names.SPECTRE, origin={"ext"}), + parent_item=item_names.SPECTRE), item_names.THOR_BUTTON_WITH_A_SKULL_ON_IT: ItemData(342 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 23, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.THOR, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.THOR), item_names.THOR_LASER_TARGETING_SYSTEM: ItemData(343 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 24, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.THOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.THOR), item_names.THOR_LARGE_SCALE_FIELD_CONSTRUCTION: ItemData(344 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 25, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.THOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.THOR), item_names.RAVEN_RESOURCE_EFFICIENCY: ItemData(345 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 26, SC2Race.TERRAN, - parent_item=item_names.RAVEN, origin={"ext"}), + parent_item=item_names.RAVEN), item_names.RAVEN_DURABLE_MATERIALS: ItemData(346 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 27, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.RAVEN, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.RAVEN), item_names.SCIENCE_VESSEL_IMPROVED_NANO_REPAIR: ItemData(347 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 28, SC2Race.TERRAN, - parent_item=item_names.SCIENCE_VESSEL, origin={"ext"}), + parent_item=item_names.SCIENCE_VESSEL), item_names.SCIENCE_VESSEL_ADVANCED_AI_SYSTEMS: ItemData(348 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 29, SC2Race.TERRAN, - parent_item=item_names.SCIENCE_VESSEL, origin={"ext"}), + parent_item=item_names.SCIENCE_VESSEL), item_names.CYCLONE_RESOURCE_EFFICIENCY: ItemData(349 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 0, SC2Race.TERRAN, - parent_item=item_names.CYCLONE, origin={"ext"}), + parent_item=item_names.CYCLONE), item_names.BANSHEE_HYPERFLIGHT_ROTORS: ItemData(350 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 1, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.BANSHEE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.BANSHEE), item_names.BANSHEE_LASER_TARGETING_SYSTEM: ItemData(351 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 2, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.BANSHEE, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.BANSHEE), item_names.BANSHEE_INTERNAL_TECH_MODULE: ItemData(352 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 3, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.BANSHEE, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.BANSHEE), item_names.BATTLECRUISER_TACTICAL_JUMP: ItemData(353 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 4, SC2Race.TERRAN, - parent_item=item_names.BATTLECRUISER, origin={"nco", "ext"}), + parent_item=item_names.BATTLECRUISER), item_names.BATTLECRUISER_CLOAK: ItemData(354 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 5, SC2Race.TERRAN, - parent_item=item_names.BATTLECRUISER, origin={"nco"}), + parent_item=item_names.BATTLECRUISER), item_names.BATTLECRUISER_ATX_LASER_BATTERY: ItemData(355 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 6, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.BATTLECRUISER, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.BATTLECRUISER), item_names.BATTLECRUISER_OPTIMIZED_LOGISTICS: ItemData(356 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 7, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.BATTLECRUISER, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.BATTLECRUISER), item_names.BATTLECRUISER_INTERNAL_TECH_MODULE: ItemData(357 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 8, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.BATTLECRUISER, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.BATTLECRUISER), item_names.GHOST_EMP_ROUNDS: ItemData(358 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 9, SC2Race.TERRAN, - parent_item=item_names.GHOST, origin={"ext"}), + parent_item=item_names.GHOST), item_names.GHOST_LOCKDOWN: ItemData(359 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 10, SC2Race.TERRAN, - parent_item=item_names.GHOST, origin={"bw"}), + parent_item=item_names.GHOST), item_names.SPECTRE_IMPALER_ROUNDS: ItemData(360 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 11, SC2Race.TERRAN, - parent_item=item_names.SPECTRE, origin={"ext"}), + parent_item=item_names.SPECTRE), item_names.THOR_PROGRESSIVE_HIGH_IMPACT_PAYLOAD: ItemData(361 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive, 14, SC2Race.TERRAN, - parent_item=item_names.THOR, quantity=2, origin={"ext"}), + parent_item=item_names.THOR, quantity=2), item_names.RAVEN_BIO_MECHANICAL_REPAIR_DRONE: ItemData(363 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 12, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.RAVEN, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.RAVEN), item_names.RAVEN_SPIDER_MINES: ItemData(364 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 13, SC2Race.TERRAN, - parent_item=item_names.RAVEN, origin={"nco"}, important_for_filtering=True), + parent_item=item_names.RAVEN, important_for_filtering=True), item_names.RAVEN_RAILGUN_TURRET: ItemData(365 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 14, SC2Race.TERRAN, - parent_item=item_names.RAVEN, origin={"nco"}), + parent_item=item_names.RAVEN), item_names.RAVEN_HUNTER_SEEKER_WEAPON: ItemData(366 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 15, SC2Race.TERRAN, - classification=ItemClassification.progression, parent_item=item_names.RAVEN, origin={"nco"}), + classification=ItemClassification.progression, parent_item=item_names.RAVEN), item_names.RAVEN_INTERFERENCE_MATRIX: ItemData(367 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 16, SC2Race.TERRAN, - parent_item=item_names.RAVEN, origin={"ext"}), + parent_item=item_names.RAVEN), item_names.RAVEN_ANTI_ARMOR_MISSILE: ItemData(368 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 17, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.RAVEN, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.RAVEN), item_names.RAVEN_INTERNAL_TECH_MODULE: ItemData(369 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 18, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.RAVEN, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.RAVEN), item_names.SCIENCE_VESSEL_EMP_SHOCKWAVE: ItemData(370 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 19, SC2Race.TERRAN, - parent_item=item_names.SCIENCE_VESSEL, origin={"bw"}), + parent_item=item_names.SCIENCE_VESSEL), item_names.SCIENCE_VESSEL_DEFENSIVE_MATRIX: ItemData(371 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 20, SC2Race.TERRAN, - parent_item=item_names.SCIENCE_VESSEL, origin={"bw"}), + parent_item=item_names.SCIENCE_VESSEL), item_names.CYCLONE_TARGETING_OPTICS: ItemData(372 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 21, SC2Race.TERRAN, - parent_item=item_names.CYCLONE, origin={"ext"}), + parent_item=item_names.CYCLONE), item_names.CYCLONE_RAPID_FIRE_LAUNCHERS: ItemData(373 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 22, SC2Race.TERRAN, - parent_item=item_names.CYCLONE, origin={"ext"}), + parent_item=item_names.CYCLONE), item_names.LIBERATOR_CLOAK: ItemData(374 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 23, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.LIBERATOR, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.LIBERATOR), item_names.LIBERATOR_LASER_TARGETING_SYSTEM: ItemData(375 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 24, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.LIBERATOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.LIBERATOR), item_names.LIBERATOR_OPTIMIZED_LOGISTICS: ItemData(376 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 25, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.LIBERATOR, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.LIBERATOR), item_names.WIDOW_MINE_BLACK_MARKET_LAUNCHERS: ItemData(377 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 26, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.WIDOW_MINE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.WIDOW_MINE), item_names.WIDOW_MINE_EXECUTIONER_MISSILES: ItemData(378 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 27, SC2Race.TERRAN, - parent_item=item_names.WIDOW_MINE, origin={"ext"}), + parent_item=item_names.WIDOW_MINE), item_names.VALKYRIE_ENHANCED_CLUSTER_LAUNCHERS: ItemData(379 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 28, - SC2Race.TERRAN, parent_item=item_names.VALKYRIE, origin={"ext"}), + SC2Race.TERRAN, parent_item=item_names.VALKYRIE), item_names.VALKYRIE_SHAPED_HULL: ItemData(380 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_5, 29, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.VALKYRIE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.VALKYRIE), item_names.VALKYRIE_FLECHETTE_MISSILES: ItemData(381 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 0, SC2Race.TERRAN, - parent_item=item_names.VALKYRIE, origin={"ext"}), + parent_item=item_names.VALKYRIE), item_names.VALKYRIE_AFTERBURNERS: ItemData(382 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 1, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.VALKYRIE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.VALKYRIE), item_names.CYCLONE_INTERNAL_TECH_MODULE: ItemData(383 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 2, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.CYCLONE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.CYCLONE), item_names.LIBERATOR_SMART_SERVOS: ItemData(384 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 3, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.LIBERATOR, origin={"nco"}), + classification=ItemClassification.filler, parent_item=item_names.LIBERATOR), item_names.LIBERATOR_RESOURCE_EFFICIENCY: ItemData(385 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 4, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.LIBERATOR, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.LIBERATOR), item_names.HERCULES_INTERNAL_FUSION_MODULE: ItemData(386 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 5, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.HERCULES, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.HERCULES), item_names.HERCULES_TACTICAL_JUMP: ItemData(387 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 6, SC2Race.TERRAN, - parent_item=item_names.HERCULES, origin={"ext"}), + parent_item=item_names.HERCULES), item_names.PLANETARY_FORTRESS_PROGRESSIVE_AUGMENTED_THRUSTERS: ItemData(388 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive, 28, SC2Race.TERRAN, - parent_item=item_names.PLANETARY_FORTRESS, origin={"ext"}, quantity=2), + parent_item=item_names.PLANETARY_FORTRESS, quantity=2), item_names.PLANETARY_FORTRESS_ADVANCED_TARGETING: ItemData(389 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 7, SC2Race.TERRAN, - parent_item=item_names.PLANETARY_FORTRESS, origin={"ext"}), + parent_item=item_names.PLANETARY_FORTRESS), item_names.VALKYRIE_LAUNCHING_VECTOR_COMPENSATOR: ItemData(390 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 8, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.VALKYRIE, origin={"ext"}), + classification=ItemClassification.filler, parent_item=item_names.VALKYRIE), item_names.VALKYRIE_RESOURCE_EFFICIENCY: ItemData(391 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 9, SC2Race.TERRAN, - parent_item=item_names.VALKYRIE, origin={"ext"}), + parent_item=item_names.VALKYRIE), item_names.PREDATOR_VESPENE_SYNTHESIS: ItemData(392 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 10, SC2Race.TERRAN, - parent_item=item_names.PREDATOR, origin={"ext"}), + parent_item=item_names.PREDATOR), item_names.BATTLECRUISER_BEHEMOTH_PLATING: ItemData(393 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 11, SC2Race.TERRAN, - parent_item=item_names.BATTLECRUISER, origin={"ext"}), + parent_item=item_names.BATTLECRUISER), item_names.BATTLECRUISER_COVERT_OPS_ENGINES: ItemData(394 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_6, 12, SC2Race.TERRAN, - parent_item=item_names.BATTLECRUISER, origin={"nco"}), + parent_item=item_names.BATTLECRUISER), item_names.PLANETARY_FORTRESS_ORBITAL_MODULE: ItemData(395 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_4, 1, SC2Race.TERRAN, - parent_item=item_names.PLANETARY_FORTRESS, origin={"ext"}), + parent_item=item_names.PLANETARY_FORTRESS), item_names.DEVASTATOR_TURRET_CONCUSSIVE_GRENADES: ItemData(396 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 0, SC2Race.TERRAN, - parent_item=item_names.DEVASTATOR_TURRET, origin={"ext"}), + parent_item=item_names.DEVASTATOR_TURRET), item_names.DEVASTATOR_TURRET_ANTI_ARMOR_MUNITIONS: ItemData(397 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 1, SC2Race.TERRAN, - parent_item=item_names.DEVASTATOR_TURRET, origin={"ext"}), + parent_item=item_names.DEVASTATOR_TURRET), item_names.DEVASTATOR_TURRET_RESOURCE_EFFICIENCY: ItemData(398 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 2, SC2Race.TERRAN, - parent_item=item_names.DEVASTATOR_TURRET, origin={"ext"}), + parent_item=item_names.DEVASTATOR_TURRET), item_names.MISSILE_TURRET_RESOURCE_EFFICENCY: ItemData(399 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 3, SC2Race.TERRAN, - classification=ItemClassification.filler, parent_item=item_names.MISSILE_TURRET, origin={"bw"}), + classification=ItemClassification.filler, parent_item=item_names.MISSILE_TURRET), #Buildings item_names.BUNKER: @@ -900,23 +897,19 @@ def get_full_item_list(): item_names.JACKSONS_REVENGE: ItemData(507 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 7, SC2Race.TERRAN), item_names.SKIBIS_ANGELS: - ItemData(508 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 8, SC2Race.TERRAN, - origin={"ext"}), + ItemData(508 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 8, SC2Race.TERRAN), item_names.DEATH_HEADS: - ItemData(509 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 9, SC2Race.TERRAN, - origin={"ext"}), + ItemData(509 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 9, SC2Race.TERRAN), item_names.WINGED_NIGHTMARES: ItemData(510 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 10, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.MIDNIGHT_RIDERS: - ItemData(511 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 11, SC2Race.TERRAN, - origin={"ext"}), + ItemData(511 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 11, SC2Race.TERRAN), item_names.BRYNHILDS: ItemData(512 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 12, SC2Race.TERRAN, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.JOTUN: - ItemData(513 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 13, SC2Race.TERRAN, - origin={"ext"}), + ItemData(513 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Mercenary, 13, SC2Race.TERRAN), item_names.ULTRA_CAPACITORS: ItemData(600 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Laboratory, 0, SC2Race.TERRAN), @@ -991,50 +984,50 @@ def get_full_item_list(): # WoL Protoss item_names.ZEALOT: ItemData(700 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 0, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.STALKER: ItemData(701 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 1, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.HIGH_TEMPLAR: ItemData(702 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 2, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.DARK_TEMPLAR: ItemData(703 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 3, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.IMMORTAL: ItemData(704 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 4, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.COLOSSUS: ItemData(705 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 5, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.PHOENIX: ItemData(706 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 6, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.VOID_RAY: ItemData(707 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 7, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.CARRIER: ItemData(708 + SC2WOL_ITEM_ID_OFFSET, ProtossItemType.Unit, 8, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol", "lotv"}), + classification=ItemClassification.progression), item_names.SCIENCE_VESSEL_TACTICAL_JUMP: ItemData(750 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 4, SC2Race.TERRAN, - parent_item=item_names.SCIENCE_VESSEL, origin={"ext"}), + parent_item=item_names.SCIENCE_VESSEL), item_names.LIBERATOR_COMPRESSED_ROCKET_FUEL: ItemData(751 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 5, SC2Race.TERRAN, - parent_item=item_names.LIBERATOR, origin={"ext"}), + parent_item=item_names.LIBERATOR), item_names.BATTLECRUISER_FIELD_ASSIST_TARGETING_SYSTEM: ItemData(752 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 6, SC2Race.TERRAN, - parent_item=item_names.BATTLECRUISER, origin={"ext"}), + parent_item=item_names.BATTLECRUISER), item_names.PREDATOR_ADAPTIVE_DEFENSES: ItemData(753 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 7, SC2Race.TERRAN, - parent_item=item_names.PREDATOR, origin={"ext"}), + parent_item=item_names.PREDATOR), item_names.VIKING_AESIR_TURBINES: ItemData(754 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 8, SC2Race.TERRAN, - parent_item=item_names.VIKING, origin={"ext"}), + parent_item=item_names.VIKING), item_names.MEDIVAC_RESOURCE_EFFICIENCY: ItemData(755 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 9, SC2Race.TERRAN, - parent_item=item_names.MEDIVAC, origin={"ext"}), + parent_item=item_names.MEDIVAC), item_names.EMPERORS_SHADOW_SOVEREIGN_TACTICAL_MISSILES: ItemData(756 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 10, SC2Race.TERRAN, parent_item=item_names.EMPERORS_SHADOW), @@ -1057,7 +1050,7 @@ def get_full_item_list(): ItemData(762 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 16, SC2Race.TERRAN), item_names.WIDOW_MINE_DEMOLITION_ARMAMENTS: ItemData(763 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Armory_7, 17, SC2Race.TERRAN, - parent_item=item_names.WIDOW_MINE, origin={"ext"}), + parent_item=item_names.WIDOW_MINE), # Filler items to fill remaining spots item_names.STARTING_MINERALS: @@ -1076,830 +1069,746 @@ def get_full_item_list(): # Nova gear item_names.NOVA_GHOST_VISOR: - ItemData(900 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 0, SC2Race.TERRAN, origin={"nco"}), + ItemData(900 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 0, SC2Race.TERRAN), item_names.NOVA_RANGEFINDER_OCULUS: - ItemData(901 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 1, SC2Race.TERRAN, origin={"nco"}), + ItemData(901 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 1, SC2Race.TERRAN), item_names.NOVA_DOMINATION: - ItemData(902 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 2, SC2Race.TERRAN, origin={"nco"}, + ItemData(902 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 2, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_BLINK: - ItemData(903 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 3, SC2Race.TERRAN, origin={"nco"}, + ItemData(903 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 3, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_PROGRESSIVE_STEALTH_SUIT_MODULE: - ItemData(904 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive_2, 0, SC2Race.TERRAN, quantity=2, origin={"nco"}, + ItemData(904 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Progressive_2, 0, SC2Race.TERRAN, quantity=2, classification=ItemClassification.progression), item_names.NOVA_ENERGY_SUIT_MODULE: - ItemData(905 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 4, SC2Race.TERRAN, origin={"nco"}), + ItemData(905 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 4, SC2Race.TERRAN), item_names.NOVA_ARMORED_SUIT_MODULE: - ItemData(906 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 5, SC2Race.TERRAN, origin={"nco"}, + ItemData(906 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 5, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_JUMP_SUIT_MODULE: - ItemData(907 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 6, SC2Race.TERRAN, origin={"nco"}, + ItemData(907 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 6, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_C20A_CANISTER_RIFLE: - ItemData(908 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 7, SC2Race.TERRAN, origin={"nco"}, + ItemData(908 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 7, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_HELLFIRE_SHOTGUN: - ItemData(909 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 8, SC2Race.TERRAN, origin={"nco"}, + ItemData(909 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 8, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_PLASMA_RIFLE: - ItemData(910 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 9, SC2Race.TERRAN, origin={"nco"}, + ItemData(910 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 9, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_MONOMOLECULAR_BLADE: - ItemData(911 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 10, SC2Race.TERRAN, origin={"nco"}, + ItemData(911 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 10, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_BLAZEFIRE_GUNBLADE: - ItemData(912 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 11, SC2Race.TERRAN, origin={"nco"}, + ItemData(912 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 11, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_STIM_INFUSION: - ItemData(913 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 12, SC2Race.TERRAN, origin={"nco"}, + ItemData(913 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 12, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_PULSE_GRENADES: - ItemData(914 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 13, SC2Race.TERRAN, origin={"nco"}, + ItemData(914 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 13, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_FLASHBANG_GRENADES: - ItemData(915 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 14, SC2Race.TERRAN, origin={"nco"}, + ItemData(915 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 14, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_IONIC_FORCE_FIELD: - ItemData(916 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 15, SC2Race.TERRAN, origin={"nco"}, + ItemData(916 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 15, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_HOLO_DECOY: - ItemData(917 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 16, SC2Race.TERRAN, origin={"nco"}, + ItemData(917 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 16, SC2Race.TERRAN, classification=ItemClassification.progression), item_names.NOVA_NUKE: - ItemData(918 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 17, SC2Race.TERRAN, origin={"nco"}, + ItemData(918 + SC2WOL_ITEM_ID_OFFSET, TerranItemType.Nova_Gear, 17, SC2Race.TERRAN, classification=ItemClassification.progression), # HotS item_names.ZERGLING: ItemData(0 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 0, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.SWARM_QUEEN: ItemData(1 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 1, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.ROACH: ItemData(2 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 2, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.HYDRALISK: ItemData(3 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 3, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.ZERGLING_BANELING_ASPECT: ItemData(4 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 5, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.ABERRATION: ItemData(5 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 5, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.MUTALISK: ItemData(6 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 6, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.SWARM_HOST: ItemData(7 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 7, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.INFESTOR: ItemData(8 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 8, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.ULTRALISK: ItemData(9 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 9, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.SPORE_CRAWLER: ItemData(10 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 10, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.SPINE_CRAWLER: ItemData(11 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 11, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"hots"}), + classification=ItemClassification.progression), item_names.CORRUPTOR: ItemData(12 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 12, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SCOURGE: ItemData(13 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 13, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"bw", "ext"}), + classification=ItemClassification.progression), item_names.BROOD_QUEEN: ItemData(14 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 4, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"bw", "ext"}), + classification=ItemClassification.progression), item_names.DEFILER: ItemData(15 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 14, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"bw"}), + classification=ItemClassification.progression), item_names.INFESTED_MARINE: ItemData(16 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 15, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.INFESTED_BUNKER: ItemData(17 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 16, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.NYDUS_WORM: ItemData(18 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 17, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.OMEGA_WORM: ItemData(19 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 18, SC2Race.ZERG, - classification=ItemClassification.useful, origin={"ext"}), + classification=ItemClassification.useful), item_names.INFESTED_SIEGE_TANK: ItemData(20 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 19, SC2Race.ZERG, - classification=ItemClassification.useful, origin={"ext"}), + classification=ItemClassification.useful), item_names.INFESTED_DIAMONDBACK: ItemData(21 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 20, SC2Race.ZERG, - classification=ItemClassification.useful, origin={"ext"}), + classification=ItemClassification.useful), item_names.INFESTED_BANSHEE: ItemData(22 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 21, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.INFESTED_LIBERATOR: ItemData(23 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 22, SC2Race.ZERG, - classification=ItemClassification.useful, origin={"ext"}), + classification=ItemClassification.useful), item_names.INFESTED_MISSILE_TURRET: ItemData(24 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Unit, 23, SC2Race.ZERG, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), - item_names.PROGRESSIVE_ZERG_MELEE_ATTACK: ItemData(100 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 0, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_MISSILE_ATTACK: ItemData(101 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 4, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_GROUND_CARAPACE: ItemData(102 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 8, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_FLYER_ATTACK: ItemData(103 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 12, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_FLYER_CARAPACE: ItemData(104 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 16, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), + item_names.PROGRESSIVE_ZERG_MELEE_ATTACK: ItemData(100 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 0, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_MISSILE_ATTACK: ItemData(101 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 4, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_GROUND_CARAPACE: ItemData(102 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 8, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_FLYER_ATTACK: ItemData(103 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 12, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_FLYER_CARAPACE: ItemData(104 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, 16, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), # Bundles - item_names.PROGRESSIVE_ZERG_WEAPON_UPGRADE: ItemData(105 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_ARMOR_UPGRADE: ItemData(106 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_GROUND_UPGRADE: ItemData(107 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_FLYER_UPGRADE: ItemData(108 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), - item_names.PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE: ItemData(109 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"hots"}), + item_names.PROGRESSIVE_ZERG_WEAPON_UPGRADE: ItemData(105 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_ARMOR_UPGRADE: ItemData(106 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_GROUND_UPGRADE: ItemData(107 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_FLYER_UPGRADE: ItemData(108 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_ZERG_WEAPON_ARMOR_UPGRADE: ItemData(109 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Upgrade, -1, SC2Race.ZERG, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), item_names.ZERGLING_HARDENED_CARAPACE: - ItemData(200 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 0, SC2Race.ZERG, parent_item=item_names.ZERGLING, origin={"hots"}), + ItemData(200 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 0, SC2Race.ZERG, parent_item=item_names.ZERGLING), item_names.ZERGLING_ADRENAL_OVERLOAD: - ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 1, SC2Race.ZERG, parent_item=item_names.ZERGLING, - origin={"hots"}, classification=ItemClassification.progression), + ItemData(201 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 1, SC2Race.ZERG, parent_item=item_names.ZERGLING, classification=ItemClassification.progression), item_names.ZERGLING_METABOLIC_BOOST: - ItemData(202 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 2, SC2Race.ZERG, parent_item=item_names.ZERGLING, - origin={"hots"}, classification=ItemClassification.filler), + ItemData(202 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 2, SC2Race.ZERG, parent_item=item_names.ZERGLING, classification=ItemClassification.filler), item_names.ROACH_HYDRIODIC_BILE: - ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 3, SC2Race.ZERG, parent_item=item_names.ROACH, - origin={"hots"}, classification=ItemClassification.progression), + ItemData(203 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 3, SC2Race.ZERG, parent_item=item_names.ROACH, classification=ItemClassification.progression), item_names.ROACH_ADAPTIVE_PLATING: - ItemData(204 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 4, SC2Race.ZERG, parent_item=item_names.ROACH, origin={"hots"}), + ItemData(204 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 4, SC2Race.ZERG, parent_item=item_names.ROACH), item_names.ROACH_TUNNELING_CLAWS: - ItemData(205 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 5, SC2Race.ZERG, parent_item=item_names.ROACH, - origin={"hots"}, classification=ItemClassification.filler), + ItemData(205 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 5, SC2Race.ZERG, parent_item=item_names.ROACH, classification=ItemClassification.filler), item_names.HYDRALISK_FRENZY: - ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 6, SC2Race.ZERG, parent_item=item_names.HYDRALISK, \ - origin={"hots"}, classification=ItemClassification.progression), + ItemData(206 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 6, SC2Race.ZERG, parent_item=item_names.HYDRALISK, classification=ItemClassification.progression), item_names.HYDRALISK_ANCILLARY_CARAPACE: - ItemData(207 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 7, SC2Race.ZERG, parent_item=item_names.HYDRALISK, - origin={"hots"}, classification=ItemClassification.filler), + ItemData(207 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 7, SC2Race.ZERG, parent_item=item_names.HYDRALISK, classification=ItemClassification.filler), item_names.HYDRALISK_GROOVED_SPINES: - ItemData(208 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 8, SC2Race.ZERG, parent_item=item_names.HYDRALISK, - origin={"hots"}), + ItemData(208 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 8, SC2Race.ZERG, parent_item=item_names.HYDRALISK), item_names.BANELING_CORROSIVE_ACID: ItemData(209 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 9, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"hots"}, classification=ItemClassification.progression), + parent_item=item_names.ZERGLING_BANELING_ASPECT, classification=ItemClassification.progression), item_names.BANELING_RUPTURE: ItemData(210 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 10, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"hots"}, + parent_item=item_names.ZERGLING_BANELING_ASPECT, classification=ItemClassification.filler), item_names.BANELING_REGENERATIVE_ACID: ItemData(211 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 11, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"hots"}, + parent_item=item_names.ZERGLING_BANELING_ASPECT, classification=ItemClassification.filler), item_names.MUTALISK_VICIOUS_GLAIVE: - ItemData(212 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 12, SC2Race.ZERG, parent_item=item_names.MUTALISK, - origin={"hots"}), + ItemData(212 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 12, SC2Race.ZERG, parent_item=item_names.MUTALISK), item_names.MUTALISK_RAPID_REGENERATION: - ItemData(213 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 13, SC2Race.ZERG, parent_item=item_names.MUTALISK, - origin={"hots"}), + ItemData(213 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 13, SC2Race.ZERG, parent_item=item_names.MUTALISK), item_names.MUTALISK_SUNDERING_GLAIVE: - ItemData(214 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 14, SC2Race.ZERG, parent_item=item_names.MUTALISK, - origin={"hots"}), + ItemData(214 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 14, SC2Race.ZERG, parent_item=item_names.MUTALISK), item_names.SWARM_HOST_BURROW: - ItemData(215 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 15, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"hots"}, classification=ItemClassification.filler), + ItemData(215 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 15, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, classification=ItemClassification.filler), item_names.SWARM_HOST_RAPID_INCUBATION: - ItemData(216 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 16, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"hots"}), + ItemData(216 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 16, SC2Race.ZERG, parent_item=item_names.SWARM_HOST), item_names.SWARM_HOST_PRESSURIZED_GLANDS: - ItemData(217 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 17, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"hots"}, classification=ItemClassification.progression), + ItemData(217 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 17, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, classification=ItemClassification.progression), item_names.ULTRALISK_BURROW_CHARGE: - ItemData(218 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 18, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"hots"}), + ItemData(218 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 18, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.ULTRALISK_TISSUE_ASSIMILATION: - ItemData(219 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 19, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"hots"}), + ItemData(219 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 19, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.ULTRALISK_MONARCH_BLADES: - ItemData(220 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 20, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"hots"}), + ItemData(220 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 20, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.CORRUPTOR_CAUSTIC_SPRAY: - ItemData(221 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 21, SC2Race.ZERG, parent_item=item_names.CORRUPTOR, - origin={"ext"}), + ItemData(221 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 21, SC2Race.ZERG, parent_item=item_names.CORRUPTOR), item_names.CORRUPTOR_CORRUPTION: - ItemData(222 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 22, SC2Race.ZERG, parent_item=item_names.CORRUPTOR, - origin={"ext"}), + ItemData(222 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 22, SC2Race.ZERG, parent_item=item_names.CORRUPTOR), item_names.SCOURGE_VIRULENT_SPORES: - ItemData(223 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 23, SC2Race.ZERG, parent_item=item_names.SCOURGE, - origin={"ext"}), + ItemData(223 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 23, SC2Race.ZERG, parent_item=item_names.SCOURGE), item_names.SCOURGE_RESOURCE_EFFICIENCY: - ItemData(224 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 24, SC2Race.ZERG, parent_item=item_names.SCOURGE, - origin={"ext"}, classification=ItemClassification.progression), + ItemData(224 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 24, SC2Race.ZERG, parent_item=item_names.SCOURGE, classification=ItemClassification.progression), item_names.SCOURGE_SWARM_SCOURGE: - ItemData(225 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 25, SC2Race.ZERG, parent_item=item_names.SCOURGE, - origin={"ext"}), + ItemData(225 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 25, SC2Race.ZERG, parent_item=item_names.SCOURGE), item_names.ZERGLING_SHREDDING_CLAWS: - ItemData(226 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 26, SC2Race.ZERG, parent_item=item_names.ZERGLING, - origin={"ext"}), + ItemData(226 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 26, SC2Race.ZERG, parent_item=item_names.ZERGLING), item_names.ROACH_GLIAL_RECONSTITUTION: - ItemData(227 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 27, SC2Race.ZERG, parent_item=item_names.ROACH, - origin={"ext"}, classification=ItemClassification.progression), + ItemData(227 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 27, SC2Race.ZERG, parent_item=item_names.ROACH, classification=ItemClassification.progression), item_names.ROACH_ORGANIC_CARAPACE: - ItemData(228 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 28, SC2Race.ZERG, parent_item=item_names.ROACH, - origin={"ext"}), + ItemData(228 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 28, SC2Race.ZERG, parent_item=item_names.ROACH), item_names.HYDRALISK_MUSCULAR_AUGMENTS: - ItemData(229 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 29, SC2Race.ZERG, parent_item=item_names.HYDRALISK, - origin={"bw"}), + ItemData(229 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_1, 29, SC2Race.ZERG, parent_item=item_names.HYDRALISK), item_names.HYDRALISK_RESOURCE_EFFICIENCY: - ItemData(230 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 0, SC2Race.ZERG, parent_item=item_names.HYDRALISK, - origin={"bw"}), + ItemData(230 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 0, SC2Race.ZERG, parent_item=item_names.HYDRALISK), item_names.BANELING_CENTRIFUGAL_HOOKS: ItemData(231 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 1, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"ext"}), + parent_item=item_names.ZERGLING_BANELING_ASPECT), item_names.BANELING_TUNNELING_JAWS: ItemData(232 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 2, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"ext"}), + parent_item=item_names.ZERGLING_BANELING_ASPECT), item_names.BANELING_RAPID_METAMORPH: ItemData(233 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 3, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"ext"}), + parent_item=item_names.ZERGLING_BANELING_ASPECT), item_names.MUTALISK_SEVERING_GLAIVE: - ItemData(234 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 4, SC2Race.ZERG, parent_item=item_names.MUTALISK, - origin={"ext"}, classification=ItemClassification.progression), + ItemData(234 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 4, SC2Race.ZERG, parent_item=item_names.MUTALISK, classification=ItemClassification.progression), item_names.MUTALISK_AERODYNAMIC_GLAIVE_SHAPE: - ItemData(235 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 5, SC2Race.ZERG, parent_item=item_names.MUTALISK, - origin={"ext"}), + ItemData(235 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 5, SC2Race.ZERG, parent_item=item_names.MUTALISK), item_names.SWARM_HOST_LOCUST_METABOLIC_BOOST: - ItemData(236 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 6, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"ext"}, classification=ItemClassification.filler), + ItemData(236 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 6, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, classification=ItemClassification.filler), item_names.SWARM_HOST_ENDURING_LOCUSTS: - ItemData(237 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 7, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"ext"}), + ItemData(237 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 7, SC2Race.ZERG, parent_item=item_names.SWARM_HOST), item_names.SWARM_HOST_ORGANIC_CARAPACE: - ItemData(238 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 8, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"ext"}), + ItemData(238 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 8, SC2Race.ZERG, parent_item=item_names.SWARM_HOST), item_names.SWARM_HOST_RESOURCE_EFFICIENCY: - ItemData(239 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 9, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"ext"}, classification=ItemClassification.progression), + ItemData(239 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 9, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, classification=ItemClassification.progression), item_names.ULTRALISK_ANABOLIC_SYNTHESIS: - ItemData(240 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 10, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"bw"}, classification=ItemClassification.filler), + ItemData(240 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 10, SC2Race.ZERG, parent_item=item_names.ULTRALISK, classification=ItemClassification.filler), item_names.ULTRALISK_CHITINOUS_PLATING: - ItemData(241 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 11, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"bw"}), + ItemData(241 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 11, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.ULTRALISK_ORGANIC_CARAPACE: - ItemData(242 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 12, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"ext"}), + ItemData(242 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 12, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.ULTRALISK_RESOURCE_EFFICIENCY: - ItemData(243 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 13, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"bw"}), + ItemData(243 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 13, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.DEVOURER_CORROSIVE_SPRAY: ItemData(244 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 14, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT), item_names.DEVOURER_GAPING_MAW: ItemData(245 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 15, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT), item_names.DEVOURER_IMPROVED_OSMOSIS: ItemData(246 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 16, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}, + parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, classification=ItemClassification.filler), item_names.DEVOURER_PRESCIENT_SPORES: ItemData(247 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 17, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT), item_names.GUARDIAN_PROLONGED_DISPERSION: ItemData(248 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 18, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT), item_names.GUARDIAN_PRIMAL_ADAPTATION: ItemData(249 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 19, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT), item_names.GUARDIAN_SORONAN_ACID: ItemData(250 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 20, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT), item_names.IMPALER_ADAPTIVE_TALONS: ItemData(251 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 21, SC2Race.ZERG, - parent_item=item_names.HYDRALISK_IMPALER_ASPECT, origin={"ext"}, + parent_item=item_names.HYDRALISK_IMPALER_ASPECT, classification=ItemClassification.filler), item_names.IMPALER_SECRETION_GLANDS: ItemData(252 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 22, SC2Race.ZERG, - parent_item=item_names.HYDRALISK_IMPALER_ASPECT, origin={"ext"}), + parent_item=item_names.HYDRALISK_IMPALER_ASPECT), item_names.IMPALER_HARDENED_TENTACLE_SPINES: ItemData(253 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 23, SC2Race.ZERG, - parent_item=item_names.HYDRALISK_IMPALER_ASPECT, origin={"ext"}, classification=ItemClassification.progression), + parent_item=item_names.HYDRALISK_IMPALER_ASPECT, classification=ItemClassification.progression), item_names.LURKER_SEISMIC_SPINES: ItemData(254 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 24, SC2Race.ZERG, - parent_item=item_names.HYDRALISK_LURKER_ASPECT, origin={"ext"}, classification=ItemClassification.progression), + parent_item=item_names.HYDRALISK_LURKER_ASPECT, classification=ItemClassification.progression), item_names.LURKER_ADAPTED_SPINES: ItemData(255 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 25, SC2Race.ZERG, - parent_item=item_names.HYDRALISK_LURKER_ASPECT, origin={"ext"}, classification=ItemClassification.progression), + parent_item=item_names.HYDRALISK_LURKER_ASPECT, classification=ItemClassification.progression), item_names.RAVAGER_POTENT_BILE: ItemData(256 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 26, SC2Race.ZERG, - parent_item=item_names.ROACH_RAVAGER_ASPECT, origin={"ext"}), + parent_item=item_names.ROACH_RAVAGER_ASPECT), item_names.RAVAGER_BLOATED_BILE_DUCTS: ItemData(257 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 27, SC2Race.ZERG, - parent_item=item_names.ROACH_RAVAGER_ASPECT, origin={"ext"}), + parent_item=item_names.ROACH_RAVAGER_ASPECT), item_names.RAVAGER_DEEP_TUNNEL: ItemData(258 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 28, SC2Race.ZERG, - parent_item=item_names.ROACH_RAVAGER_ASPECT, origin={"ext"}), + parent_item=item_names.ROACH_RAVAGER_ASPECT), item_names.VIPER_PARASITIC_BOMB: ItemData(259 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_2, 29, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT, origin={"ext"}, + parent_item=item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT, classification=ItemClassification.progression), item_names.VIPER_PARALYTIC_BARBS: ItemData(260 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 0, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT), item_names.VIPER_VIRULENT_MICROBES: ItemData(261 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 1, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT), item_names.BROOD_LORD_POROUS_CARTILAGE: ItemData(262 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 2, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT), item_names.BROOD_LORD_EVOLVED_CARAPACE: ItemData(263 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 3, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT), item_names.BROOD_LORD_SPLITTER_MITOSIS: ItemData(264 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 4, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT), item_names.BROOD_LORD_RESOURCE_EFFICIENCY: ItemData(265 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 5, SC2Race.ZERG, - parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT, origin={"ext"}), + parent_item=item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT), item_names.INFESTOR_INFESTED_TERRAN: - ItemData(266 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 6, SC2Race.ZERG, parent_item=item_names.INFESTOR, - origin={"ext"}), + ItemData(266 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 6, SC2Race.ZERG, parent_item=item_names.INFESTOR), item_names.INFESTOR_MICROBIAL_SHROUD: - ItemData(267 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 7, SC2Race.ZERG, parent_item=item_names.INFESTOR, - origin={"ext"}), + ItemData(267 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 7, SC2Race.ZERG, parent_item=item_names.INFESTOR), item_names.SWARM_QUEEN_SPAWN_LARVAE: - ItemData(268 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 8, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, - origin={"ext"}), + ItemData(268 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 8, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN), item_names.SWARM_QUEEN_DEEP_TUNNEL: - ItemData(269 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 9, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, - origin={"ext"}), + ItemData(269 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 9, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN), item_names.SWARM_QUEEN_ORGANIC_CARAPACE: - ItemData(270 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 10, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, - origin={"ext"}, classification=ItemClassification.filler), + ItemData(270 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 10, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, classification=ItemClassification.filler), item_names.SWARM_QUEEN_BIO_MECHANICAL_TRANSFUSION: - ItemData(271 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 11, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, - origin={"ext"}, classification=ItemClassification.progression), + ItemData(271 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 11, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, classification=ItemClassification.progression), item_names.SWARM_QUEEN_RESOURCE_EFFICIENCY: - ItemData(272 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 12, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, - origin={"ext"}), + ItemData(272 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 12, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN), item_names.SWARM_QUEEN_INCUBATOR_CHAMBER: - ItemData(273 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 13, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN, - origin={"ext"}), + ItemData(273 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 13, SC2Race.ZERG, parent_item=item_names.SWARM_QUEEN), item_names.BROOD_QUEEN_FUNGAL_GROWTH: - ItemData(274 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 14, SC2Race.ZERG, parent_item=item_names.BROOD_QUEEN, - origin={"ext"}), + ItemData(274 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 14, SC2Race.ZERG, parent_item=item_names.BROOD_QUEEN), item_names.BROOD_QUEEN_ENSNARE: - ItemData(275 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 15, SC2Race.ZERG, parent_item=item_names.BROOD_QUEEN, - origin={"ext"}), + ItemData(275 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 15, SC2Race.ZERG, parent_item=item_names.BROOD_QUEEN), item_names.BROOD_QUEEN_ENHANCED_MITOCHONDRIA: - ItemData(276 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 16, SC2Race.ZERG, parent_item=item_names.BROOD_QUEEN, - origin={"ext"}), + ItemData(276 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 16, SC2Race.ZERG, parent_item=item_names.BROOD_QUEEN), item_names.DEFILER_PATHOGEN_PROJECTORS: - ItemData(277 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 17, SC2Race.ZERG, parent_item=item_names.DEFILER, - origin={"ext"}), + ItemData(277 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 17, SC2Race.ZERG, parent_item=item_names.DEFILER), item_names.DEFILER_TRAPDOOR_ADAPTATION: - ItemData(278 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 18, SC2Race.ZERG, parent_item=item_names.DEFILER, - origin={"ext"}), + ItemData(278 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 18, SC2Race.ZERG, parent_item=item_names.DEFILER), item_names.DEFILER_PREDATORY_CONSUMPTION: - ItemData(279 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 19, SC2Race.ZERG, parent_item=item_names.DEFILER, - origin={"ext"}), + ItemData(279 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 19, SC2Race.ZERG, parent_item=item_names.DEFILER), item_names.DEFILER_COMORBIDITY: - ItemData(280 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 20, SC2Race.ZERG, parent_item=item_names.DEFILER, - origin={"ext"}), + ItemData(280 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 20, SC2Race.ZERG, parent_item=item_names.DEFILER), item_names.ABERRATION_MONSTROUS_RESILIENCE: - ItemData(281 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 21, SC2Race.ZERG, parent_item=item_names.ABERRATION, - origin={"ext"}), + ItemData(281 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 21, SC2Race.ZERG, parent_item=item_names.ABERRATION), item_names.ABERRATION_CONSTRUCT_REGENERATION: - ItemData(282 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 22, SC2Race.ZERG, parent_item=item_names.ABERRATION, - origin={"ext"}), + ItemData(282 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 22, SC2Race.ZERG, parent_item=item_names.ABERRATION), item_names.ABERRATION_BANELING_INCUBATION: - ItemData(283 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 23, SC2Race.ZERG, parent_item=item_names.ABERRATION, - origin={"ext"}), + ItemData(283 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 23, SC2Race.ZERG, parent_item=item_names.ABERRATION), item_names.ABERRATION_PROTECTIVE_COVER: - ItemData(284 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 24, SC2Race.ZERG, parent_item=item_names.ABERRATION, - origin={"ext"}), + ItemData(284 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 24, SC2Race.ZERG, parent_item=item_names.ABERRATION), item_names.ABERRATION_RESOURCE_EFFICIENCY: - ItemData(285 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 25, SC2Race.ZERG, parent_item=item_names.ABERRATION, - origin={"ext"}), + ItemData(285 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 25, SC2Race.ZERG, parent_item=item_names.ABERRATION), item_names.CORRUPTOR_MONSTROUS_RESILIENCE: - ItemData(286 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 26, SC2Race.ZERG, parent_item=item_names.CORRUPTOR, - origin={"ext"}), + ItemData(286 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 26, SC2Race.ZERG, parent_item=item_names.CORRUPTOR), item_names.CORRUPTOR_CONSTRUCT_REGENERATION: - ItemData(287 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 27, SC2Race.ZERG, parent_item=item_names.CORRUPTOR, - origin={"ext"}), + ItemData(287 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 27, SC2Race.ZERG, parent_item=item_names.CORRUPTOR), item_names.CORRUPTOR_SCOURGE_INCUBATION: - ItemData(288 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 28, SC2Race.ZERG, parent_item=item_names.CORRUPTOR, - origin={"ext"}), + ItemData(288 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 28, SC2Race.ZERG, parent_item=item_names.CORRUPTOR), item_names.CORRUPTOR_RESOURCE_EFFICIENCY: - ItemData(289 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 29, SC2Race.ZERG, parent_item=item_names.CORRUPTOR, - origin={"ext"}), + ItemData(289 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_3, 29, SC2Race.ZERG, parent_item=item_names.CORRUPTOR), item_names.PRIMAL_IGNITER_CONCENTRATED_FIRE: - ItemData(290 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 0, SC2Race.ZERG, parent_item=item_names.ROACH_PRIMAL_IGNITER_ASPECT, - origin={"ext"}), + ItemData(290 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 0, SC2Race.ZERG, parent_item=item_names.ROACH_PRIMAL_IGNITER_ASPECT), item_names.PRIMAL_IGNITER_PRIMAL_TENACITY: - ItemData(291 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 1, SC2Race.ZERG, parent_item=item_names.ROACH_PRIMAL_IGNITER_ASPECT, - origin={"ext"}), + ItemData(291 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 1, SC2Race.ZERG, parent_item=item_names.ROACH_PRIMAL_IGNITER_ASPECT), item_names.INFESTED_SCV_BUILD_CHARGES: - ItemData(292 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 2, SC2Race.ZERG, origin={"ext"}), + ItemData(292 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 2, SC2Race.ZERG), item_names.INFESTED_MARINE_PLAGUED_MUNITIONS: - ItemData(293 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 3, SC2Race.ZERG, parent_item=item_names.INFESTED_MARINE, - origin={"ext"}), + ItemData(293 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 3, SC2Race.ZERG, parent_item=item_names.INFESTED_MARINE), item_names.INFESTED_MARINE_RETINAL_AUGMENTATION: - ItemData(294 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 4, SC2Race.ZERG, parent_item=item_names.INFESTED_MARINE, - origin={"ext"}), + ItemData(294 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 4, SC2Race.ZERG, parent_item=item_names.INFESTED_MARINE), item_names.INFESTED_BUNKER_CALCIFIED_ARMOR: - ItemData(295 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 6, SC2Race.ZERG, parent_item=item_names.INFESTED_BUNKER, - origin={"ext"}), + ItemData(295 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 6, SC2Race.ZERG, parent_item=item_names.INFESTED_BUNKER), item_names.INFESTED_BUNKER_REGENERATIVE_PLATING: - ItemData(296 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 5, SC2Race.ZERG, parent_item=item_names.INFESTED_BUNKER, - origin={"ext"}), + ItemData(296 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 5, SC2Race.ZERG, parent_item=item_names.INFESTED_BUNKER), item_names.INFESTED_BUNKER_ENGORGED_BUNKERS: - ItemData(297 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 7, SC2Race.ZERG, parent_item=item_names.INFESTED_BUNKER, - origin={"ext"}), + ItemData(297 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 7, SC2Race.ZERG, parent_item=item_names.INFESTED_BUNKER), item_names.INFESTED_MISSILE_TURRET_BIOELECTRIC_PAYLOAD: - ItemData(298 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 6, SC2Race.ZERG, parent_item=item_names.INFESTED_MISSILE_TURRET, - origin={"ext"}), + ItemData(298 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 6, SC2Race.ZERG, parent_item=item_names.INFESTED_MISSILE_TURRET), item_names.INFESTED_MISSILE_TURRET_ACID_SPORE_VENTS: - ItemData(299 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 7, SC2Race.ZERG, parent_item=item_names.INFESTED_MISSILE_TURRET, - origin={"ext"}), + ItemData(299 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 7, SC2Race.ZERG, parent_item=item_names.INFESTED_MISSILE_TURRET), item_names.ZERGLING_RAPTOR_STRAIN: - ItemData(300 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 0, SC2Race.ZERG, parent_item=item_names.ZERGLING, - origin={"hots"}, classification=ItemClassification.progression), + ItemData(300 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 0, SC2Race.ZERG, parent_item=item_names.ZERGLING, classification=ItemClassification.progression), item_names.ZERGLING_SWARMLING_STRAIN: - ItemData(301 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 1, SC2Race.ZERG, parent_item=item_names.ZERGLING, - origin={"hots"}), + ItemData(301 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 1, SC2Race.ZERG, parent_item=item_names.ZERGLING), item_names.ROACH_VILE_STRAIN: - ItemData(302 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 2, SC2Race.ZERG, parent_item=item_names.ROACH, origin={"hots"}), + ItemData(302 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 2, SC2Race.ZERG, parent_item=item_names.ROACH), item_names.ROACH_CORPSER_STRAIN: - ItemData(303 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 3, SC2Race.ZERG, parent_item=item_names.ROACH, origin={"hots"}, classification=ItemClassification.progression), + ItemData(303 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 3, SC2Race.ZERG, parent_item=item_names.ROACH, classification=ItemClassification.progression), item_names.HYDRALISK_IMPALER_ASPECT: - ItemData(304 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 0, SC2Race.ZERG, origin={"hots"}, + ItemData(304 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 0, SC2Race.ZERG, classification=ItemClassification.progression), item_names.HYDRALISK_LURKER_ASPECT: - ItemData(305 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 1, SC2Race.ZERG, origin={"hots"}, + ItemData(305 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 1, SC2Race.ZERG, classification=ItemClassification.progression), item_names.BANELING_SPLITTER_STRAIN: ItemData(306 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 6, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"hots"}), + parent_item=item_names.ZERGLING_BANELING_ASPECT), item_names.BANELING_HUNTER_STRAIN: ItemData(307 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 7, SC2Race.ZERG, - parent_item=item_names.ZERGLING_BANELING_ASPECT, origin={"hots"}), + parent_item=item_names.ZERGLING_BANELING_ASPECT), item_names.MUTALISK_CORRUPTOR_BROOD_LORD_ASPECT: - ItemData(308 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 2, SC2Race.ZERG, origin={"hots"}, + ItemData(308 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 2, SC2Race.ZERG, classification=ItemClassification.progression), item_names.MUTALISK_CORRUPTOR_VIPER_ASPECT: - ItemData(309 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 3, SC2Race.ZERG, origin={"hots"}, + ItemData(309 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 3, SC2Race.ZERG, classification=ItemClassification.progression), item_names.SWARM_HOST_CARRION_STRAIN: - ItemData(310 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 10, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"hots"}), + ItemData(310 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 10, SC2Race.ZERG, parent_item=item_names.SWARM_HOST), item_names.SWARM_HOST_CREEPER_STRAIN: - ItemData(311 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 11, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, - origin={"hots"}, classification=ItemClassification.filler), + ItemData(311 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 11, SC2Race.ZERG, parent_item=item_names.SWARM_HOST, classification=ItemClassification.filler), item_names.ULTRALISK_NOXIOUS_STRAIN: - ItemData(312 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 12, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"hots"}, classification=ItemClassification.filler), + ItemData(312 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 12, SC2Race.ZERG, parent_item=item_names.ULTRALISK, classification=ItemClassification.filler), item_names.ULTRALISK_TORRASQUE_STRAIN: - ItemData(313 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 13, SC2Race.ZERG, parent_item=item_names.ULTRALISK, - origin={"hots"}), + ItemData(313 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Strain, 13, SC2Race.ZERG, parent_item=item_names.ULTRALISK), item_names.TYRANNOZOR_TYRANTS_PROTECTION: - ItemData(350 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 8, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT, - origin={"ext"}), + ItemData(350 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 8, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT), item_names.TYRANNOZOR_BARRAGE_OF_SPIKES: - ItemData(351 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 9, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT, - origin={"ext"}), + ItemData(351 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 9, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT), item_names.TYRANNOZOR_IMPALING_STRIKE: - ItemData(352 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 10, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT, - origin={"ext"}), + ItemData(352 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 10, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT), item_names.TYRANNOZOR_HEALING_ADAPTATION: - ItemData(353 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 11, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT, - origin={"ext"}), + ItemData(353 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 11, SC2Race.ZERG, parent_item=item_names.ULTRALISK_TYRANNOZOR_ASPECT), item_names.NYDUS_WORM_OMEGA_WORM_SUBTERRANEAN_SCALES: - ItemData(354 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 12, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.filler), + ItemData(354 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 12, SC2Race.ZERG, classification=ItemClassification.filler), item_names.NYDUS_WORM_OMEGA_WORM_JORMUNGANDR_STRAIN: - ItemData(355 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 13, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.useful), + ItemData(355 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 13, SC2Race.ZERG, classification=ItemClassification.useful), item_names.NYDUS_WORM_OMEGA_WORM_RESOURCE_EFFICIENCY: - ItemData(356 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 14, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.useful), + ItemData(356 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 14, SC2Race.ZERG, classification=ItemClassification.useful), item_names.OMEGA_WORM_OUROBOROS_STRAIN: - ItemData(357 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 15, SC2Race.ZERG, parent_item=item_names.OMEGA_WORM, - origin={"ext"}, classification=ItemClassification.useful), + ItemData(357 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 15, SC2Race.ZERG, parent_item=item_names.OMEGA_WORM, classification=ItemClassification.useful), item_names.NYDUS_WORM_RAVENOUS_APPETITE: - ItemData(358 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 16, SC2Race.ZERG, parent_item=item_names.NYDUS_WORM, - origin={"ext"}, classification=ItemClassification.useful), + ItemData(358 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 16, SC2Race.ZERG, parent_item=item_names.NYDUS_WORM, classification=ItemClassification.useful), item_names.INFESTED_SIEGE_TANK_PROGRESSIVE_AUTOMATED_MITOSIS: ItemData(359 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Progressive, 0, SC2Race.ZERG, - parent_item=item_names.INFESTED_SIEGE_TANK, quantity=2, origin={"ext"}), + parent_item=item_names.INFESTED_SIEGE_TANK, quantity=2), item_names.INFESTED_SIEGE_TANK_ACIDIC_ENZYMES: - ItemData(360 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 17, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK, origin={"ext"}), + ItemData(360 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 17, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK), item_names.INFESTED_SIEGE_TANK_DEEP_TUNNEL: - ItemData(361 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 18, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK, origin={"ext"}), + ItemData(361 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 18, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK), item_names.INFESTED_DIAMONDBACK_CAUSTIC_MUCUS: - ItemData(362 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 19, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK, origin={"ext"}), + ItemData(362 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 19, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK), item_names.INFESTED_DIAMONDBACK_VIOLENT_ENZYMES: - ItemData(363 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 20, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK, origin={"ext"}), + ItemData(363 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 20, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK), item_names.INFESTED_BANSHEE_BRACED_EXOSKELETON: - ItemData(364 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 21, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE, origin={"ext"}), + ItemData(364 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 21, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE), item_names.INFESTED_BANSHEE_RAPID_HIBERNATION: - ItemData(365 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 22, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE, origin={"ext"}), + ItemData(365 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 22, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE), item_names.INFESTED_LIBERATOR_CLOUD_DISPERSAL: - ItemData(366 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 23, SC2Race.ZERG, parent_item=item_names.INFESTED_LIBERATOR, origin={"ext"}), + ItemData(366 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 23, SC2Race.ZERG, parent_item=item_names.INFESTED_LIBERATOR), item_names.INFESTED_LIBERATOR_VIRAL_CONTAMINATION: - ItemData(367 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 24, SC2Race.ZERG, parent_item=item_names.INFESTED_LIBERATOR, origin={"ext"}), + ItemData(367 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 24, SC2Race.ZERG, parent_item=item_names.INFESTED_LIBERATOR), item_names.GUARDIAN_PROPELLANT_SACS: - ItemData(368 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 25, SC2Race.ZERG, parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}), + ItemData(368 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 25, SC2Race.ZERG, parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT), item_names.GUARDIAN_EXPLOSIVE_SPORES: - ItemData(369 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 26, SC2Race.ZERG, parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}), + ItemData(369 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 26, SC2Race.ZERG, parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT), item_names.GUARDIAN_PRIMORDIAL_FURY: - ItemData(370 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 27, SC2Race.ZERG, parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT, origin={"ext"}), + ItemData(370 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 27, SC2Race.ZERG, parent_item=item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT), item_names.INFESTED_SIEGE_TANK_SEISMIC_SONAR: - ItemData(371 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 28, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK, origin={"ext"}), + ItemData(371 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 28, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK), item_names.INFESTED_BANSHEE_ADVANCED_TARGETING_OPTICS: - ItemData(372 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 29, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE, origin={"ext"}), + ItemData(372 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_4, 29, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE), item_names.INFESTED_SIEGE_TANK_BALANCED_ROOTS: - ItemData(373 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 0, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK, origin={"ext"}), + ItemData(373 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 0, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK), item_names.INFESTED_DIAMONDBACK_PROGRESSIVE_FUNGAL_SNARE: ItemData(374 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Progressive, 2, SC2Race.ZERG, - parent_item=item_names.INFESTED_DIAMONDBACK, quantity=2, origin={"ext"}), + parent_item=item_names.INFESTED_DIAMONDBACK, quantity=2), item_names.INFESTED_DIAMONDBACK_CONCENTRATED_SPEW: - ItemData(375 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 1, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK, origin={"ext"}), + ItemData(375 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 1, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK), item_names.FRIGHTFUL_FLESHWELDER_INFESTED_SIEGE_TANK: - ItemData(376 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 2, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK, origin={"ext"}), + ItemData(376 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 2, SC2Race.ZERG, parent_item=item_names.INFESTED_SIEGE_TANK), item_names.FRIGHTFUL_FLESHWELDER_INFESTED_DIAMONDBACK: - ItemData(377 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 3, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK, origin={"ext"}), + ItemData(377 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 3, SC2Race.ZERG, parent_item=item_names.INFESTED_DIAMONDBACK), item_names.FRIGHTFUL_FLESHWELDER_INFESTED_BANSHEE: - ItemData(378 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 4, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE, origin={"ext"}), + ItemData(378 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 4, SC2Race.ZERG, parent_item=item_names.INFESTED_BANSHEE), item_names.FRIGHTFUL_FLESHWELDER_INFESTED_LIBERATOR: - ItemData(379 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 5, SC2Race.ZERG, parent_item=item_names.INFESTED_LIBERATOR, origin={"ext"}), - - item_names.KERRIGAN_KINETIC_BLAST: ItemData(400 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 0, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_HEROIC_FORTITUDE: ItemData(401 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 1, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_LEAPING_STRIKE: ItemData(402 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 2, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_CRUSHING_GRIP: ItemData(403 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 3, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_CHAIN_REACTION: ItemData(404 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 4, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_PSIONIC_SHIFT: ItemData(405 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 5, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.ZERGLING_RECONSTITUTION: ItemData(406 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 0, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.filler), - item_names.OVERLORD_IMPROVED_OVERLORDS: ItemData(407 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 1, SC2Race.ZERG, origin={"hots"}), - item_names.AUTOMATED_EXTRACTORS: ItemData(408 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 2, SC2Race.ZERG, origin={"hots"}), - item_names.KERRIGAN_WILD_MUTATION: ItemData(409 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 6, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_SPAWN_BANELINGS: ItemData(410 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 7, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_MEND: ItemData(411 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 8, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.TWIN_DRONES: ItemData(412 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 3, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.MALIGNANT_CREEP: ItemData(413 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 4, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.VESPENE_EFFICIENCY: ItemData(414 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 5, SC2Race.ZERG, origin={"hots"}), - item_names.KERRIGAN_INFEST_BROODLINGS: ItemData(415 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 9, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_FURY: ItemData(416 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 10, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_ABILITY_EFFICIENCY: ItemData(417 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 11, SC2Race.ZERG, origin={"hots"}), - item_names.KERRIGAN_APOCALYPSE: ItemData(418 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 12, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_SPAWN_LEVIATHAN: ItemData(419 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 13, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), - item_names.KERRIGAN_DROP_PODS: ItemData(420 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 14, SC2Race.ZERG, origin={"hots"}, classification=ItemClassification.progression), + ItemData(379 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mutation_5, 5, SC2Race.ZERG, parent_item=item_names.INFESTED_LIBERATOR), + + item_names.KERRIGAN_KINETIC_BLAST: ItemData(400 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 0, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_HEROIC_FORTITUDE: ItemData(401 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 1, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_LEAPING_STRIKE: ItemData(402 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 2, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_CRUSHING_GRIP: ItemData(403 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 3, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_CHAIN_REACTION: ItemData(404 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 4, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_PSIONIC_SHIFT: ItemData(405 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 5, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.ZERGLING_RECONSTITUTION: ItemData(406 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 0, SC2Race.ZERG, classification=ItemClassification.filler), + item_names.OVERLORD_IMPROVED_OVERLORDS: ItemData(407 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 1, SC2Race.ZERG), + item_names.AUTOMATED_EXTRACTORS: ItemData(408 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 2, SC2Race.ZERG), + item_names.KERRIGAN_WILD_MUTATION: ItemData(409 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 6, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_SPAWN_BANELINGS: ItemData(410 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 7, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_MEND: ItemData(411 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 8, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.TWIN_DRONES: ItemData(412 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 3, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.MALIGNANT_CREEP: ItemData(413 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 4, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.VESPENE_EFFICIENCY: ItemData(414 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 5, SC2Race.ZERG), + item_names.KERRIGAN_INFEST_BROODLINGS: ItemData(415 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 9, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_FURY: ItemData(416 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 10, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_ABILITY_EFFICIENCY: ItemData(417 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 11, SC2Race.ZERG), + item_names.KERRIGAN_APOCALYPSE: ItemData(418 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 12, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_SPAWN_LEVIATHAN: ItemData(419 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 13, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.KERRIGAN_DROP_PODS: ItemData(420 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 14, SC2Race.ZERG, classification=ItemClassification.progression), # Handled separately from other abilities - item_names.KERRIGAN_PRIMAL_FORM: ItemData(421 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Primal_Form, 0, SC2Race.ZERG, origin={"hots"}), + item_names.KERRIGAN_PRIMAL_FORM: ItemData(421 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Primal_Form, 0, SC2Race.ZERG), item_names.KERRIGAN_ASSIMIlATION_AURA: ItemData(422 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 15, SC2Race.ZERG), item_names.KERRIGAN_IMMOBILIZATION_WAVE: ItemData(423 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Ability, 16, SC2Race.ZERG), - item_names.KERRIGAN_LEVELS_10: ItemData(500 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 10, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_9: ItemData(501 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 9, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_8: ItemData(502 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 8, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_7: ItemData(503 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 7, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_6: ItemData(504 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 6, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_5: ItemData(505 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 5, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_4: ItemData(506 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 4, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing), - item_names.KERRIGAN_LEVELS_3: ItemData(507 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 3, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing), - item_names.KERRIGAN_LEVELS_2: ItemData(508 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 2, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing), - item_names.KERRIGAN_LEVELS_1: ItemData(509 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 1, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression_skip_balancing), - item_names.KERRIGAN_LEVELS_14: ItemData(510 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 14, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_35: ItemData(511 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 35, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), - item_names.KERRIGAN_LEVELS_70: ItemData(512 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 70, SC2Race.ZERG, origin={"hots"}, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_10: ItemData(500 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 10, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_9: ItemData(501 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 9, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_8: ItemData(502 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 8, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_7: ItemData(503 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 7, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_6: ItemData(504 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 6, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_5: ItemData(505 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 5, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_4: ItemData(506 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 4, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression_skip_balancing), + item_names.KERRIGAN_LEVELS_3: ItemData(507 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 3, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression_skip_balancing), + item_names.KERRIGAN_LEVELS_2: ItemData(508 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 2, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression_skip_balancing), + item_names.KERRIGAN_LEVELS_1: ItemData(509 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 1, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression_skip_balancing), + item_names.KERRIGAN_LEVELS_14: ItemData(510 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 14, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_35: ItemData(511 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 35, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), + item_names.KERRIGAN_LEVELS_70: ItemData(512 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Level, 70, SC2Race.ZERG, quantity=0, classification=ItemClassification.progression), # Zerg Mercs - item_names.INFESTED_MEDICS: ItemData(600 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 0, SC2Race.ZERG, origin={"ext"}), - item_names.INFESTED_SIEGE_BREAKERS: ItemData(601 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 1, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.progression), - item_names.INFESTED_DUSK_WINGS: ItemData(602 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 2, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.progression), - item_names.DEVOURING_ONES: ItemData(603 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 3, SC2Race.ZERG, origin={"ext"}), - item_names.HUNTER_KILLERS: ItemData(604 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 4, SC2Race.ZERG, origin={"ext"}), - item_names.TORRASQUE_MERC: ItemData(605 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 5, SC2Race.ZERG, origin={"ext"}), - item_names.HUNTERLING: ItemData(606 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 6, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.progression), + item_names.INFESTED_MEDICS: ItemData(600 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 0, SC2Race.ZERG), + item_names.INFESTED_SIEGE_BREAKERS: ItemData(601 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 1, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.INFESTED_DUSK_WINGS: ItemData(602 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 2, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.DEVOURING_ONES: ItemData(603 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 3, SC2Race.ZERG), + item_names.HUNTER_KILLERS: ItemData(604 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 4, SC2Race.ZERG), + item_names.TORRASQUE_MERC: ItemData(605 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 5, SC2Race.ZERG), + item_names.HUNTERLING: ItemData(606 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Mercenary, 6, SC2Race.ZERG, classification=ItemClassification.progression), # Misc Upgrades - item_names.OVERLORD_VENTRAL_SACS: ItemData(700 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 6, SC2Race.ZERG, origin={"bw"}, classification=ItemClassification.progression), - item_names.OVERLORD_GENERATE_CREEP: ItemData(701 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 7, SC2Race.ZERG, origin={"ext"}), - item_names.OVERLORD_ANTENNAE: ItemData(702 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 8, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.filler), - item_names.OVERLORD_PNEUMATIZED_CARAPACE: ItemData(703 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 9, SC2Race.ZERG, origin={"ext"}), - item_names.ZERG_EXCAVATING_CLAWS: ItemData(704 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 11, SC2Race.ZERG, origin={"ext"}), + item_names.OVERLORD_VENTRAL_SACS: ItemData(700 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 6, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.OVERLORD_GENERATE_CREEP: ItemData(701 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 7, SC2Race.ZERG), + item_names.OVERLORD_ANTENNAE: ItemData(702 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 8, SC2Race.ZERG, classification=ItemClassification.filler), + item_names.OVERLORD_PNEUMATIZED_CARAPACE: ItemData(703 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 9, SC2Race.ZERG), + item_names.ZERG_EXCAVATING_CLAWS: ItemData(704 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 11, SC2Race.ZERG), item_names.ZERG_CREEP_STOMACH: ItemData(705 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Evolution_Pit, 10, SC2Race.ZERG), # Morphs - item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT: ItemData(800 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 6, SC2Race.ZERG, origin={"bw"}), - item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT: ItemData(801 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 7, SC2Race.ZERG, origin={"bw"}, classification=ItemClassification.progression), - item_names.ROACH_RAVAGER_ASPECT: ItemData(802 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 8, SC2Race.ZERG, origin={"ext"}), - item_names.OVERLORD_OVERSEER_ASPECT: ItemData(803 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 4, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.progression), - item_names.ROACH_PRIMAL_IGNITER_ASPECT: ItemData(804 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 9, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.progression), - item_names.ULTRALISK_TYRANNOZOR_ASPECT: ItemData(805 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 10, SC2Race.ZERG, origin={"ext"}, classification=ItemClassification.progression), + item_names.MUTALISK_CORRUPTOR_GUARDIAN_ASPECT: ItemData(800 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 6, SC2Race.ZERG), + item_names.MUTALISK_CORRUPTOR_DEVOURER_ASPECT: ItemData(801 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 7, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.ROACH_RAVAGER_ASPECT: ItemData(802 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 8, SC2Race.ZERG), + item_names.OVERLORD_OVERSEER_ASPECT: ItemData(803 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 4, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.ROACH_PRIMAL_IGNITER_ASPECT: ItemData(804 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 9, SC2Race.ZERG, classification=ItemClassification.progression), + item_names.ULTRALISK_TYRANNOZOR_ASPECT: ItemData(805 + SC2HOTS_ITEM_ID_OFFSET, ZergItemType.Morph, 10, SC2Race.ZERG, classification=ItemClassification.progression), # Protoss Units (those that aren't as items in WoL (Prophecy)) item_names.OBSERVER: ItemData(0 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 9, SC2Race.PROTOSS, - classification=ItemClassification.filler, origin={"wol"}), + classification=ItemClassification.filler), item_names.CENTURION: ItemData(1 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 10, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.SENTINEL: ItemData(2 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 11, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.SUPPLICANT: ItemData(3 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 12, SC2Race.PROTOSS, - classification=ItemClassification.filler, important_for_filtering=True, origin={"ext"}), + classification=ItemClassification.filler, important_for_filtering=True), item_names.INSTIGATOR: ItemData(4 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 13, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SLAYER: ItemData(5 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 14, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SENTRY: ItemData(6 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 15, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.ENERGIZER: ItemData(7 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 16, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.HAVOC: - ItemData(8 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 17, SC2Race.PROTOSS, - origin={"lotv"}, important_for_filtering=True), + ItemData(8 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 17, SC2Race.PROTOSS, important_for_filtering=True), item_names.SIGNIFIER: ItemData(9 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 18, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.ASCENDANT: ItemData(10 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 19, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.AVENGER: ItemData(11 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 20, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.BLOOD_HUNTER: ItemData(12 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 21, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.DRAGOON: ItemData(13 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 22, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.DARK_ARCHON: ItemData(14 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 23, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.ADEPT: ItemData(15 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 24, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.WARP_PRISM: ItemData(16 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 25, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.ANNIHILATOR: ItemData(17 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 26, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.VANGUARD: ItemData(18 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 27, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.WRATHWALKER: ItemData(19 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 28, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.REAVER: ItemData(20 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit, 29, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.DISRUPTOR: ItemData(21 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 0, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.MIRAGE: ItemData(22 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 1, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.CORSAIR: ItemData(23 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 2, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.DESTROYER: ItemData(24 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 3, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.SCOUT: ItemData(25 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 4, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.TEMPEST: ItemData(26 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 5, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.MOTHERSHIP: ItemData(27 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 6, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.ARBITER: ItemData(28 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 7, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.ORACLE: ItemData(29 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 8, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.STALWART: ItemData(30 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 9, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.WARP_RAY: ItemData(31 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 10, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"wol"}), + classification=ItemClassification.progression), item_names.DAWNBRINGER: ItemData(32 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 11, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SKYLORD: ItemData(33 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 12, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.TRIREME: ItemData(34 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 13, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), item_names.SKIRMISHER: ItemData(35 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Unit_2, 14, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression), # Protoss Upgrades - item_names.PROGRESSIVE_PROTOSS_GROUND_WEAPON: ItemData(100 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 0, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_GROUND_ARMOR: ItemData(101 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 4, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_SHIELDS: ItemData(102 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 8, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_AIR_WEAPON: ItemData(103 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 12, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_AIR_ARMOR: ItemData(104 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 16, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), + item_names.PROGRESSIVE_PROTOSS_GROUND_WEAPON: ItemData(100 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 0, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_GROUND_ARMOR: ItemData(101 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 4, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_SHIELDS: ItemData(102 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 8, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_AIR_WEAPON: ItemData(103 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 12, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_AIR_ARMOR: ItemData(104 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, 16, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), # Bundles - item_names.PROGRESSIVE_PROTOSS_WEAPON_UPGRADE: ItemData(105 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_ARMOR_UPGRADE: ItemData(106 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_GROUND_UPGRADE: ItemData(107 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_AIR_UPGRADE: ItemData(108 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), - item_names.PROGRESSIVE_PROTOSS_WEAPON_ARMOR_UPGRADE: ItemData(109 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL, origin={"wol", "lotv"}), + item_names.PROGRESSIVE_PROTOSS_WEAPON_UPGRADE: ItemData(105 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_ARMOR_UPGRADE: ItemData(106 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_GROUND_UPGRADE: ItemData(107 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_AIR_UPGRADE: ItemData(108 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), + item_names.PROGRESSIVE_PROTOSS_WEAPON_ARMOR_UPGRADE: ItemData(109 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Upgrade, -1, SC2Race.PROTOSS, quantity=WEAPON_ARMOR_UPGRADE_MAX_LEVEL), # Protoss Buildings - item_names.PHOTON_CANNON: ItemData(200 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Building, 0, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"wol", "lotv"}), - item_names.KHAYDARIN_MONOLITH: ItemData(201 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Building, 1, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}), - item_names.SHIELD_BATTERY: ItemData(202 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Building, 2, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}), + item_names.PHOTON_CANNON: ItemData(200 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Building, 0, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.KHAYDARIN_MONOLITH: ItemData(201 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Building, 1, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.SHIELD_BATTERY: ItemData(202 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Building, 2, SC2Race.PROTOSS, classification=ItemClassification.progression), # Protoss Unit Upgrades - item_names.SUPPLICANT_BLOOD_SHIELD: ItemData(300 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 0, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=item_names.SUPPLICANT), - item_names.SUPPLICANT_SOUL_AUGMENTATION: ItemData(301 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 1, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=item_names.SUPPLICANT), - item_names.SUPPLICANT_SHIELD_REGENERATION: ItemData(302 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 2, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=item_names.SUPPLICANT), - item_names.ADEPT_SHOCKWAVE: ItemData(303 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 3, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ADEPT), - item_names.ADEPT_RESONATING_GLAIVES: ItemData(304 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 4, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ADEPT), - item_names.ADEPT_PHASE_BULWARK: ItemData(305 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 5, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ADEPT), - item_names.STALKER_INSTIGATOR_SLAYER_DISINTEGRATING_PARTICLES: ItemData(306 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 6, SC2Race.PROTOSS, origin={"ext"}, classification=ItemClassification.useful), - item_names.STALKER_INSTIGATOR_SLAYER_PARTICLE_REFLECTION: ItemData(307 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 7, SC2Race.PROTOSS, origin={"ext"}, classification=ItemClassification.useful), - item_names.DRAGOON_HIGH_IMPACT_PHASE_DISRUPTORS: ItemData(308 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 8, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.DRAGOON), - item_names.DRAGOON_TRILLIC_COMPRESSION_SYSTEM: ItemData(309 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 9, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.DRAGOON), - item_names.DRAGOON_SINGULARITY_CHARGE: ItemData(310 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 10, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.DRAGOON), - item_names.DRAGOON_ENHANCED_STRIDER_SERVOS: ItemData(311 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 11, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.DRAGOON), - item_names.SCOUT_COMBAT_SENSOR_ARRAY: ItemData(312 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 12, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.SCOUT), - item_names.SCOUT_APIAL_SENSORS: ItemData(313 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 13, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.SCOUT), - item_names.SCOUT_GRAVITIC_THRUSTERS: ItemData(314 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 14, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.SCOUT), - item_names.SCOUT_ADVANCED_PHOTON_BLASTERS: ItemData(315 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 15, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.SCOUT), - item_names.TEMPEST_TECTONIC_DESTABILIZERS: ItemData(316 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 16, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=item_names.TEMPEST), - item_names.TEMPEST_QUANTIC_REACTOR: ItemData(317 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 17, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=item_names.TEMPEST), - item_names.TEMPEST_GRAVITY_SLING: ItemData(318 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 18, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.TEMPEST), - item_names.PHOENIX_CLASS_IONIC_WAVELENGTH_FLUX: ItemData(319 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 19, SC2Race.PROTOSS, origin={"ext"}), - item_names.PHOENIX_CLASS_ANION_PULSE_CRYSTALS: ItemData(320 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 20, SC2Race.PROTOSS, origin={"ext"}), - item_names.CORSAIR_STEALTH_DRIVE: ItemData(321 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 21, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.CORSAIR), - item_names.CORSAIR_ARGUS_JEWEL: ItemData(322 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 22, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.CORSAIR), - item_names.CORSAIR_SUSTAINING_DISRUPTION: ItemData(323 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 23, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.CORSAIR), - item_names.CORSAIR_NEUTRON_SHIELDS: ItemData(324 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 24, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.CORSAIR), - item_names.ORACLE_STEALTH_DRIVE: ItemData(325 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 25, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ORACLE), - item_names.ORACLE_STASIS_CALIBRATION: ItemData(326 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 26, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ORACLE), - item_names.ORACLE_TEMPORAL_ACCELERATION_BEAM: ItemData(327 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 27, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.ORACLE), - item_names.ARBITER_CHRONOSTATIC_REINFORCEMENT: ItemData(328 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 28, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.ARBITER), - item_names.ARBITER_KHAYDARIN_CORE: ItemData(329 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 29, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.ARBITER), - item_names.ARBITER_SPACETIME_ANCHOR: ItemData(330 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 0, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.ARBITER), - item_names.ARBITER_RESOURCE_EFFICIENCY: ItemData(331 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 1, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.ARBITER), - item_names.ARBITER_ENHANCED_CLOAK_FIELD: ItemData(332 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 2, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.ARBITER), + item_names.SUPPLICANT_BLOOD_SHIELD: ItemData(300 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 0, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.SUPPLICANT), + item_names.SUPPLICANT_SOUL_AUGMENTATION: ItemData(301 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 1, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.SUPPLICANT), + item_names.SUPPLICANT_SHIELD_REGENERATION: ItemData(302 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 2, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.SUPPLICANT), + item_names.ADEPT_SHOCKWAVE: ItemData(303 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 3, SC2Race.PROTOSS, parent_item=item_names.ADEPT), + item_names.ADEPT_RESONATING_GLAIVES: ItemData(304 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 4, SC2Race.PROTOSS, parent_item=item_names.ADEPT), + item_names.ADEPT_PHASE_BULWARK: ItemData(305 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 5, SC2Race.PROTOSS, parent_item=item_names.ADEPT), + item_names.STALKER_INSTIGATOR_SLAYER_DISINTEGRATING_PARTICLES: ItemData(306 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 6, SC2Race.PROTOSS, classification=ItemClassification.useful), + item_names.STALKER_INSTIGATOR_SLAYER_PARTICLE_REFLECTION: ItemData(307 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 7, SC2Race.PROTOSS, classification=ItemClassification.useful), + item_names.DRAGOON_HIGH_IMPACT_PHASE_DISRUPTORS: ItemData(308 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 8, SC2Race.PROTOSS, parent_item=item_names.DRAGOON), + item_names.DRAGOON_TRILLIC_COMPRESSION_SYSTEM: ItemData(309 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 9, SC2Race.PROTOSS, parent_item=item_names.DRAGOON), + item_names.DRAGOON_SINGULARITY_CHARGE: ItemData(310 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 10, SC2Race.PROTOSS, parent_item=item_names.DRAGOON), + item_names.DRAGOON_ENHANCED_STRIDER_SERVOS: ItemData(311 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 11, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.DRAGOON), + item_names.SCOUT_COMBAT_SENSOR_ARRAY: ItemData(312 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 12, SC2Race.PROTOSS, parent_item=item_names.SCOUT), + item_names.SCOUT_APIAL_SENSORS: ItemData(313 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 13, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.SCOUT), + item_names.SCOUT_GRAVITIC_THRUSTERS: ItemData(314 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 14, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.SCOUT), + item_names.SCOUT_ADVANCED_PHOTON_BLASTERS: ItemData(315 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 15, SC2Race.PROTOSS, parent_item=item_names.SCOUT), + item_names.TEMPEST_TECTONIC_DESTABILIZERS: ItemData(316 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 16, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.TEMPEST), + item_names.TEMPEST_QUANTIC_REACTOR: ItemData(317 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 17, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.TEMPEST), + item_names.TEMPEST_GRAVITY_SLING: ItemData(318 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 18, SC2Race.PROTOSS, parent_item=item_names.TEMPEST), + item_names.PHOENIX_CLASS_IONIC_WAVELENGTH_FLUX: ItemData(319 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 19, SC2Race.PROTOSS), + item_names.PHOENIX_CLASS_ANION_PULSE_CRYSTALS: ItemData(320 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 20, SC2Race.PROTOSS), + item_names.CORSAIR_STEALTH_DRIVE: ItemData(321 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 21, SC2Race.PROTOSS, parent_item=item_names.CORSAIR), + item_names.CORSAIR_ARGUS_JEWEL: ItemData(322 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 22, SC2Race.PROTOSS, parent_item=item_names.CORSAIR), + item_names.CORSAIR_SUSTAINING_DISRUPTION: ItemData(323 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 23, SC2Race.PROTOSS, parent_item=item_names.CORSAIR), + item_names.CORSAIR_NEUTRON_SHIELDS: ItemData(324 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 24, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.CORSAIR), + item_names.ORACLE_STEALTH_DRIVE: ItemData(325 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 25, SC2Race.PROTOSS, parent_item=item_names.ORACLE), + item_names.ORACLE_STASIS_CALIBRATION: ItemData(326 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 26, SC2Race.PROTOSS, parent_item=item_names.ORACLE), + item_names.ORACLE_TEMPORAL_ACCELERATION_BEAM: ItemData(327 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 27, SC2Race.PROTOSS, parent_item=item_names.ORACLE), + item_names.ARBITER_CHRONOSTATIC_REINFORCEMENT: ItemData(328 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 28, SC2Race.PROTOSS, parent_item=item_names.ARBITER), + item_names.ARBITER_KHAYDARIN_CORE: ItemData(329 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_1, 29, SC2Race.PROTOSS, parent_item=item_names.ARBITER), + item_names.ARBITER_SPACETIME_ANCHOR: ItemData(330 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 0, SC2Race.PROTOSS, parent_item=item_names.ARBITER), + item_names.ARBITER_RESOURCE_EFFICIENCY: ItemData(331 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 1, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.ARBITER), + item_names.ARBITER_ENHANCED_CLOAK_FIELD: ItemData(332 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 2, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.ARBITER), item_names.CARRIER_TRIREME_GRAVITON_CATAPULT: ItemData(333 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 3, SC2Race.PROTOSS), item_names.CARRIER_SKYLORD_TRIREME_HULL_OF_PAST_GLORIES: ItemData(334 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 4, SC2Race.PROTOSS), item_names.VOID_RAY_DESTROYER_WARP_RAY_DAWNBRINGER_FLUX_VANES: - ItemData(335 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 5, SC2Race.PROTOSS, classification=ItemClassification.filler, - origin={"ext"}), + ItemData(335 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 5, SC2Race.PROTOSS, classification=ItemClassification.filler), item_names.DESTROYER_RESOURCE_EFFICIENCY: ItemData(535 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 6, SC2Race.PROTOSS, parent_item=item_names.DESTROYER), item_names.WARP_PRISM_GRAVITIC_DRIVE: - ItemData(337 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 7, SC2Race.PROTOSS, classification=ItemClassification.filler, - origin={"ext"}, parent_item=item_names.WARP_PRISM), + ItemData(337 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 7, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.WARP_PRISM), item_names.WARP_PRISM_PHASE_BLASTER: ItemData(338 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 8, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"ext"}, parent_item=item_names.WARP_PRISM), - item_names.WARP_PRISM_WAR_CONFIGURATION: ItemData(339 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 9, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.WARP_PRISM), - item_names.OBSERVER_GRAVITIC_BOOSTERS: ItemData(340 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 10, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.OBSERVER), - item_names.OBSERVER_SENSOR_ARRAY: ItemData(341 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 11, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.OBSERVER), - item_names.REAVER_SCARAB_DAMAGE: ItemData(342 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 12, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.REAVER), - item_names.REAVER_SOLARITE_PAYLOAD: ItemData(343 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 13, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.REAVER), - item_names.REAVER_REAVER_CAPACITY: ItemData(344 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 14, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}, parent_item=item_names.REAVER), - item_names.REAVER_RESOURCE_EFFICIENCY: ItemData(345 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 15, SC2Race.PROTOSS, origin={"bw"}, parent_item=item_names.REAVER), - item_names.VANGUARD_AGONY_LAUNCHERS: ItemData(346 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 16, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.VANGUARD), - item_names.VANGUARD_MATTER_DISPERSION: ItemData(347 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 17, SC2Race.PROTOSS, origin={"ext"}, parent_item=item_names.VANGUARD), - item_names.IMMORTAL_ANNIHILATOR_SINGULARITY_CHARGE: ItemData(348 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 18, SC2Race.PROTOSS, origin={"ext"}), - item_names.IMMORTAL_ANNIHILATOR_ADVANCED_TARGETING_MECHANICS: ItemData(349 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 19, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"ext"}), + classification=ItemClassification.progression, parent_item=item_names.WARP_PRISM), + item_names.WARP_PRISM_WAR_CONFIGURATION: ItemData(339 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 9, SC2Race.PROTOSS, parent_item=item_names.WARP_PRISM), + item_names.OBSERVER_GRAVITIC_BOOSTERS: ItemData(340 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 10, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.OBSERVER), + item_names.OBSERVER_SENSOR_ARRAY: ItemData(341 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 11, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.OBSERVER), + item_names.REAVER_SCARAB_DAMAGE: ItemData(342 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 12, SC2Race.PROTOSS, parent_item=item_names.REAVER), + item_names.REAVER_SOLARITE_PAYLOAD: ItemData(343 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 13, SC2Race.PROTOSS, parent_item=item_names.REAVER), + item_names.REAVER_REAVER_CAPACITY: ItemData(344 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 14, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.REAVER), + item_names.REAVER_RESOURCE_EFFICIENCY: ItemData(345 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 15, SC2Race.PROTOSS, parent_item=item_names.REAVER), + item_names.VANGUARD_AGONY_LAUNCHERS: ItemData(346 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 16, SC2Race.PROTOSS, parent_item=item_names.VANGUARD), + item_names.VANGUARD_MATTER_DISPERSION: ItemData(347 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 17, SC2Race.PROTOSS, parent_item=item_names.VANGUARD), + item_names.IMMORTAL_ANNIHILATOR_SINGULARITY_CHARGE: ItemData(348 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 18, SC2Race.PROTOSS), + item_names.IMMORTAL_ANNIHILATOR_ADVANCED_TARGETING_MECHANICS: ItemData(349 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 19, SC2Race.PROTOSS, classification=ItemClassification.progression), item_names.COLOSSUS_PACIFICATION_PROTOCOL: ItemData(350 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 20, SC2Race.PROTOSS, classification=ItemClassification.progression, parent_item=item_names.COLOSSUS), - item_names.WRATHWALKER_RAPID_POWER_CYCLING: ItemData(351 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 21, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"ext"}, parent_item=item_names.WRATHWALKER), - item_names.WRATHWALKER_EYE_OF_WRATH: ItemData(352 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 22, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"ext"}, parent_item=item_names.WRATHWALKER), - item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHROUD_OF_ADUN: ItemData(353 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 23, SC2Race.PROTOSS, origin={"ext"}), - item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHADOW_GUARD_TRAINING: ItemData(354 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 24, SC2Race.PROTOSS, origin={"bw"}), - item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_BLINK: ItemData(355 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 25, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"ext"}), - item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_RESOURCE_EFFICIENCY: ItemData(356 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 26, SC2Race.PROTOSS, origin={"ext"}), - item_names.DARK_TEMPLAR_DARK_ARCHON_MELD: ItemData(357 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 27, SC2Race.PROTOSS, origin={"bw"}, classification=ItemClassification.progression, parent_item=item_names.DARK_TEMPLAR), - item_names.HIGH_TEMPLAR_SIGNIFIER_UNSHACKLED_PSIONIC_STORM: ItemData(358 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 28, SC2Race.PROTOSS, origin={"bw"}), - item_names.HIGH_TEMPLAR_SIGNIFIER_HALLUCINATION: ItemData(359 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 29, SC2Race.PROTOSS, classification=ItemClassification.filler, origin={"bw"}), - item_names.HIGH_TEMPLAR_SIGNIFIER_KHAYDARIN_AMULET: ItemData(360 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 0, SC2Race.PROTOSS, origin={"bw"}), - item_names.ARCHON_HIGH_ARCHON: ItemData(361 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 1, SC2Race.PROTOSS, origin={"ext"}, classification=ItemClassification.progression), - item_names.DARK_ARCHON_FEEDBACK: ItemData(362 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 2, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"bw"}), - item_names.DARK_ARCHON_MAELSTROM: ItemData(363 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 3, SC2Race.PROTOSS, origin={"bw"}), - item_names.DARK_ARCHON_ARGUS_TALISMAN: ItemData(364 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 4, SC2Race.PROTOSS, origin={"bw"}), + item_names.WRATHWALKER_RAPID_POWER_CYCLING: ItemData(351 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 21, SC2Race.PROTOSS, classification=ItemClassification.progression, parent_item=item_names.WRATHWALKER), + item_names.WRATHWALKER_EYE_OF_WRATH: ItemData(352 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 22, SC2Race.PROTOSS, classification=ItemClassification.filler, parent_item=item_names.WRATHWALKER), + item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHROUD_OF_ADUN: ItemData(353 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 23, SC2Race.PROTOSS), + item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_SHADOW_GUARD_TRAINING: ItemData(354 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 24, SC2Race.PROTOSS), + item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_BLINK: ItemData(355 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 25, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.DARK_TEMPLAR_AVENGER_BLOOD_HUNTER_RESOURCE_EFFICIENCY: ItemData(356 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 26, SC2Race.PROTOSS), + item_names.DARK_TEMPLAR_DARK_ARCHON_MELD: ItemData(357 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 27, SC2Race.PROTOSS, classification=ItemClassification.progression, parent_item=item_names.DARK_TEMPLAR), + item_names.HIGH_TEMPLAR_SIGNIFIER_UNSHACKLED_PSIONIC_STORM: ItemData(358 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 28, SC2Race.PROTOSS), + item_names.HIGH_TEMPLAR_SIGNIFIER_HALLUCINATION: ItemData(359 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_2, 29, SC2Race.PROTOSS, classification=ItemClassification.filler), + item_names.HIGH_TEMPLAR_SIGNIFIER_KHAYDARIN_AMULET: ItemData(360 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 0, SC2Race.PROTOSS), + item_names.ARCHON_HIGH_ARCHON: ItemData(361 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 1, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.DARK_ARCHON_FEEDBACK: ItemData(362 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 2, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.DARK_ARCHON_MAELSTROM: ItemData(363 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 3, SC2Race.PROTOSS), + item_names.DARK_ARCHON_ARGUS_TALISMAN: ItemData(364 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 4, SC2Race.PROTOSS), item_names.ASCENDANT_POWER_OVERWHELMING: ItemData(365 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 5, SC2Race.PROTOSS, parent_item=item_names.ASCENDANT), item_names.ASCENDANT_CHAOTIC_ATTUNEMENT: ItemData(366 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 6, SC2Race.PROTOSS, parent_item=item_names.ASCENDANT), item_names.ASCENDANT_BLOOD_AMULET: ItemData(367 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Forge_3, 7, SC2Race.PROTOSS, parent_item=item_names.ASCENDANT), @@ -1976,50 +1885,50 @@ def get_full_item_list(): # 545 reserved for Mothership # SoA Calldown powers - item_names.SOA_CHRONO_SURGE: ItemData(700 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 0, SC2Race.PROTOSS, origin={"lotv"}), - item_names.SOA_PROGRESSIVE_PROXY_PYLON: ItemData(701 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Progressive, 0, SC2Race.PROTOSS, origin={"lotv"}, quantity=2), - item_names.SOA_PYLON_OVERCHARGE: ItemData(702 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 1, SC2Race.PROTOSS, origin={"ext"}), - item_names.SOA_ORBITAL_STRIKE: ItemData(703 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 2, SC2Race.PROTOSS, origin={"lotv"}), - item_names.SOA_TEMPORAL_FIELD: ItemData(704 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 3, SC2Race.PROTOSS, origin={"lotv"}), - item_names.SOA_SOLAR_LANCE: ItemData(705 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 4, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}), - item_names.SOA_MASS_RECALL: ItemData(706 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 5, SC2Race.PROTOSS, origin={"lotv"}), - item_names.SOA_SHIELD_OVERCHARGE: ItemData(707 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 6, SC2Race.PROTOSS, origin={"lotv"}), - item_names.SOA_DEPLOY_FENIX: ItemData(708 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 7, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}), - item_names.SOA_PURIFIER_BEAM: ItemData(709 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 8, SC2Race.PROTOSS, origin={"lotv"}), - item_names.SOA_TIME_STOP: ItemData(710 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 9, SC2Race.PROTOSS, classification=ItemClassification.progression, origin={"lotv"}), - item_names.SOA_SOLAR_BOMBARDMENT: ItemData(711 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 10, SC2Race.PROTOSS, origin={"lotv"}), + item_names.SOA_CHRONO_SURGE: ItemData(700 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 0, SC2Race.PROTOSS), + item_names.SOA_PROGRESSIVE_PROXY_PYLON: ItemData(701 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Progressive, 0, SC2Race.PROTOSS, quantity=2), + item_names.SOA_PYLON_OVERCHARGE: ItemData(702 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 1, SC2Race.PROTOSS), + item_names.SOA_ORBITAL_STRIKE: ItemData(703 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 2, SC2Race.PROTOSS), + item_names.SOA_TEMPORAL_FIELD: ItemData(704 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 3, SC2Race.PROTOSS), + item_names.SOA_SOLAR_LANCE: ItemData(705 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 4, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.SOA_MASS_RECALL: ItemData(706 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 5, SC2Race.PROTOSS), + item_names.SOA_SHIELD_OVERCHARGE: ItemData(707 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 6, SC2Race.PROTOSS), + item_names.SOA_DEPLOY_FENIX: ItemData(708 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 7, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.SOA_PURIFIER_BEAM: ItemData(709 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 8, SC2Race.PROTOSS), + item_names.SOA_TIME_STOP: ItemData(710 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 9, SC2Race.PROTOSS, classification=ItemClassification.progression), + item_names.SOA_SOLAR_BOMBARDMENT: ItemData(711 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Spear_Of_Adun, 10, SC2Race.PROTOSS), # Generic Protoss Upgrades item_names.MATRIX_OVERLOAD: - ItemData(800 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 0, SC2Race.PROTOSS, origin={"lotv"}, classification=ItemClassification.progression), + ItemData(800 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 0, SC2Race.PROTOSS, classification=ItemClassification.progression), item_names.QUATRO: - ItemData(801 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 1, SC2Race.PROTOSS, origin={"ext"}), + ItemData(801 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 1, SC2Race.PROTOSS), item_names.NEXUS_OVERCHARGE: - ItemData(802 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 2, SC2Race.PROTOSS, origin={"lotv"}, + ItemData(802 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 2, SC2Race.PROTOSS, classification=ItemClassification.progression, important_for_filtering=True), item_names.ORBITAL_ASSIMILATORS: - ItemData(803 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 3, SC2Race.PROTOSS, origin={"lotv"}), + ItemData(803 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 3, SC2Race.PROTOSS), item_names.WARP_HARMONIZATION: - ItemData(804 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 4, SC2Race.PROTOSS, origin={"lotv"}), + ItemData(804 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 4, SC2Race.PROTOSS), item_names.GUARDIAN_SHELL: - ItemData(805 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 5, SC2Race.PROTOSS, origin={"lotv"}), + ItemData(805 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 5, SC2Race.PROTOSS), item_names.RECONSTRUCTION_BEAM: ItemData(806 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 6, SC2Race.PROTOSS, - classification=ItemClassification.progression, origin={"lotv"}), + classification=ItemClassification.progression), item_names.OVERWATCH: - ItemData(807 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 7, SC2Race.PROTOSS, origin={"ext"}), + ItemData(807 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 7, SC2Race.PROTOSS), item_names.SUPERIOR_WARP_GATES: - ItemData(808 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 8, SC2Race.PROTOSS, origin={"ext"}), + ItemData(808 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 8, SC2Race.PROTOSS), item_names.ENHANCED_TARGETING: - ItemData(809 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 9, SC2Race.PROTOSS, origin={"ext"}), + ItemData(809 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 9, SC2Race.PROTOSS), item_names.OPTIMIZED_ORDNANCE: - ItemData(810 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 10, SC2Race.PROTOSS, origin={"ext"}), + ItemData(810 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 10, SC2Race.PROTOSS), item_names.KHALAI_INGENUITY: - ItemData(811 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 11, SC2Race.PROTOSS, origin={"ext"}), + ItemData(811 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 11, SC2Race.PROTOSS), item_names.AMPLIFIED_ASSIMILATORS: - ItemData(812 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 12, SC2Race.PROTOSS, origin={"ext"}), + ItemData(812 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Solarite_Core, 12, SC2Race.PROTOSS), item_names.PROGRESSIVE_WARP_RELOCATE: - ItemData(813 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Progressive, 2, SC2Race.PROTOSS, origin={"ext"}, quantity=2, + ItemData(813 + SC2LOTV_ITEM_ID_OFFSET, ProtossItemType.Progressive, 2, SC2Race.PROTOSS, quantity=2, classification=ItemClassification.progression), }