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