diff --git a/lib/cpp-sc2 b/lib/cpp-sc2 new file mode 160000 index 0000000000000000000000000000000000000000..f8bbf67bb3284bdf8f82544b464f4692f4f451ce --- /dev/null +++ b/lib/cpp-sc2 @@ -0,0 +1 @@ +Subproject commit f8bbf67bb3284bdf8f82544b464f4692f4f451ce diff --git a/python-api-src/CMakeLists.txt b/python-api-src/CMakeLists.txt index d2d99321846b3d88be23729a773e9f254cf4b06d..16bb62042b6a08f6a5c4da7d377e818d045415f6 100644 --- a/python-api-src/CMakeLists.txt +++ b/python-api-src/CMakeLists.txt @@ -1,7 +1,7 @@ include_directories(SYSTEM - ${PROJECT_SOURCE_DIR}/lib/s2client-api/include - ${PROJECT_SOURCE_DIR}/lib/s2client-api/contrib/protobuf/src - ${PROJECT_BINARY_DIR}/lib/s2client-api/generated + ${PROJECT_SOURCE_DIR}/lib/cpp-sc2/include + ${PROJECT_SOURCE_DIR}/lib/cpp-sc2/contrib/protobuf/src + ${PROJECT_BINARY_DIR}/lib/cpp-sc2/generated ${PROJECT_SOURCE_DIR}/lib/json/include ) @@ -10,7 +10,7 @@ file(GLOB BOT_SOURCES "../src/*.cpp" "../src/*.h" "../src/*.hpp") file(GLOB LIBRARY_SOURCES "*.cpp" "*.h") -link_directories(${PROJECT_BINARY_DIR}/s2client-api/bin) +link_directories(${PROJECT_BINARY_DIR}/cpp-sc2/bin) # Enable compilation of the SC2 version of the bot code # TODO: Remove all remaining BW code diff --git a/python-api-src/lib_sc2_typeenums.cpp b/python-api-src/lib_sc2_typeenums.cpp index 235056ce29cc1711fc5297aa93dd85ab90013fc3..40b993a2ef2e57bc959bf7673cf4fa26b7d4eb2c 100644 --- a/python-api-src/lib_sc2_typeenums.cpp +++ b/python-api-src/lib_sc2_typeenums.cpp @@ -222,11 +222,80 @@ void define_typeenums(py::module & m) py::enum_<sc2::ABILITY_ID>(m, "ABILITY_ID") .value("INVALID", sc2::ABILITY_ID::INVALID) - .value("SMART", sc2::ABILITY_ID::SMART) + .value("ADVANCEDCONSTRUCTION_CANCEL", sc2::ABILITY_ID::ADVANCEDCONSTRUCTION_CANCEL) + .value("AGGRESSIVEMUTATION", sc2::ABILITY_ID::AGGRESSIVEMUTATION) + .value("AIURLIGHTBRIDGEABANDONEDNE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE10OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGEABANDONEDNE10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE10_BRIDGERETRACT) + .value("AIURLIGHTBRIDGEABANDONEDNE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE12OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGEABANDONEDNE12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE12_BRIDGERETRACT) + .value("AIURLIGHTBRIDGEABANDONEDNE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE8OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGEABANDONEDNE8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNE8_BRIDGERETRACT) + .value("AIURLIGHTBRIDGEABANDONEDNW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW10OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGEABANDONEDNW10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW10_BRIDGERETRACT) + .value("AIURLIGHTBRIDGEABANDONEDNW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW12OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGEABANDONEDNW12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW12_BRIDGERETRACT) + .value("AIURLIGHTBRIDGEABANDONEDNW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW8OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGEABANDONEDNW8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGEABANDONEDNW8_BRIDGERETRACT) + .value("AIURLIGHTBRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENE10OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENE10_BRIDGERETRACT) + .value("AIURLIGHTBRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENE12OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENE12_BRIDGERETRACT) + .value("AIURLIGHTBRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENE8OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENE8_BRIDGERETRACT) + .value("AIURLIGHTBRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENW10OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENW10_BRIDGERETRACT) + .value("AIURLIGHTBRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENW12OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENW12_BRIDGERETRACT) + .value("AIURLIGHTBRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURLIGHTBRIDGENW8OUT_BRIDGEEXTEND) + .value("AIURLIGHTBRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::AIURLIGHTBRIDGENW8_BRIDGERETRACT) + .value("AIURTEMPLEBRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE10OUT_BRIDGEEXTEND) + .value("AIURTEMPLEBRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE10_BRIDGERETRACT) + .value("AIURTEMPLEBRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE12OUT_BRIDGEEXTEND) + .value("AIURTEMPLEBRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE12_BRIDGERETRACT) + .value("AIURTEMPLEBRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE8OUT_BRIDGEEXTEND) + .value("AIURTEMPLEBRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENE8_BRIDGERETRACT) + .value("AIURTEMPLEBRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW10OUT_BRIDGEEXTEND) + .value("AIURTEMPLEBRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW10_BRIDGERETRACT) + .value("AIURTEMPLEBRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW12OUT_BRIDGEEXTEND) + .value("AIURTEMPLEBRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW12_BRIDGERETRACT) + .value("AIURTEMPLEBRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW8OUT_BRIDGEEXTEND) + .value("AIURTEMPLEBRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::AIURTEMPLEBRIDGENW8_BRIDGERETRACT) + .value("ARBITERMPRECALL", sc2::ABILITY_ID::ARBITERMPRECALL) + .value("ARBITERMPSTASISFIELD", sc2::ABILITY_ID::ARBITERMPSTASISFIELD) + .value("ARCHIVESEAL", sc2::ABILITY_ID::ARCHIVESEAL) + .value("ARCHONWARP_ARCHONWARPTARGET", sc2::ABILITY_ID::ARCHONWARP_ARCHONWARPTARGET) + .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL1", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL1) + .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL2", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL2) + .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL3", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPPLATINGLEVEL3) + .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL1", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL1) + .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL2", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL2) + .value("ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL3", sc2::ABILITY_ID::ARMORYRESEARCHSWARM_TERRANVEHICLEANDSHIPWEAPONSLEVEL3) + .value("ARTANISVORTEX_VORTEX", sc2::ABILITY_ID::ARTANISVORTEX_VORTEX) + .value("ARTANISWORMHOLETRANSIT_WORMHOLETRANSIT", sc2::ABILITY_ID::ARTANISWORMHOLETRANSIT_WORMHOLETRANSIT) .value("ATTACK", sc2::ABILITY_ID::ATTACK) .value("ATTACK_ATTACK", sc2::ABILITY_ID::ATTACK_ATTACK) + .value("ATTACK_ATTACKALLOWSINVULNERABLE", sc2::ABILITY_ID::ATTACK_ATTACKALLOWSINVULNERABLE) + .value("ATTACK_ATTACKBARRAGE", sc2::ABILITY_ID::ATTACK_ATTACKBARRAGE) .value("ATTACK_ATTACKBUILDING", sc2::ABILITY_ID::ATTACK_ATTACKBUILDING) + .value("ATTACK_ATTACKTOWARDS", sc2::ABILITY_ID::ATTACK_ATTACKTOWARDS) + .value("ATTACK_ATTACKWARPPRISM", sc2::ABILITY_ID::ATTACK_ATTACKWARPPRISM) + .value("ATTACK_BATTLECRUISER", sc2::ABILITY_ID::ATTACK_BATTLECRUISER) .value("ATTACK_REDIRECT", sc2::ABILITY_ID::ATTACK_REDIRECT) + .value("BARRACKSREACTORMORPH_REACTOR", sc2::ABILITY_ID::BARRACKSREACTORMORPH_REACTOR) + .value("BARRACKSTECHLABMORPH_TECHLABBARRACKS", sc2::ABILITY_ID::BARRACKSTECHLABMORPH_TECHLABBARRACKS) + .value("BARRACKSTECHREACTORMORPH_TECHLABBARRACKS", sc2::ABILITY_ID::BARRACKSTECHREACTORMORPH_TECHLABBARRACKS) + .value("BATTLECRUISERATTACKEVALUATOR_MOTHERSHIPCOREATTACK", sc2::ABILITY_ID::BATTLECRUISERATTACKEVALUATOR_MOTHERSHIPCOREATTACK) + .value("BATTLECRUISERMOVE_ACQUIREMOVE", sc2::ABILITY_ID::BATTLECRUISERMOVE_ACQUIREMOVE) + .value("BATTLECRUISERMOVE_MOVE", sc2::ABILITY_ID::BATTLECRUISERMOVE_MOVE) + .value("BATTLECRUISERMOVE_MOVEHOLDPOSITION", sc2::ABILITY_ID::BATTLECRUISERMOVE_MOVEHOLDPOSITION) + .value("BATTLECRUISERMOVE_MOVEPATROL", sc2::ABILITY_ID::BATTLECRUISERMOVE_MOVEPATROL) + .value("BATTLECRUISERMOVE_TURN", sc2::ABILITY_ID::BATTLECRUISERMOVE_TURN) + .value("BATTLECRUISERSTOPEVALUATOR_STOP", sc2::ABILITY_ID::BATTLECRUISERSTOPEVALUATOR_STOP) + .value("BATTLECRUISERSTOP_CHEER", sc2::ABILITY_ID::BATTLECRUISERSTOP_CHEER) + .value("BATTLECRUISERSTOP_DANCE", sc2::ABILITY_ID::BATTLECRUISERSTOP_DANCE) + .value("BATTLECRUISERSTOP_HOLDFIRE", sc2::ABILITY_ID::BATTLECRUISERSTOP_HOLDFIRE) + .value("BEACON_BEACONMOVE", sc2::ABILITY_ID::BEACON_BEACONMOVE) + .value("BEACON_CANCEL", sc2::ABILITY_ID::BEACON_CANCEL) .value("BEHAVIOR_BUILDINGATTACKOFF", sc2::ABILITY_ID::BEHAVIOR_BUILDINGATTACKOFF) .value("BEHAVIOR_BUILDINGATTACKON", sc2::ABILITY_ID::BEHAVIOR_BUILDINGATTACKON) .value("BEHAVIOR_CLOAKOFF", sc2::ABILITY_ID::BEHAVIOR_CLOAKOFF) @@ -238,17 +307,35 @@ void define_typeenums(py::module & m) .value("BEHAVIOR_GENERATECREEPOFF", sc2::ABILITY_ID::BEHAVIOR_GENERATECREEPOFF) .value("BEHAVIOR_GENERATECREEPON", sc2::ABILITY_ID::BEHAVIOR_GENERATECREEPON) .value("BEHAVIOR_HOLDFIREOFF", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREOFF) + .value("BEHAVIOR_HOLDFIREOFF_GHOST", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREOFF_GHOST) .value("BEHAVIOR_HOLDFIREOFF_LURKER", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREOFF_LURKER) .value("BEHAVIOR_HOLDFIREON", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREON) .value("BEHAVIOR_HOLDFIREON_GHOST", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREON_GHOST) .value("BEHAVIOR_HOLDFIREON_LURKER", sc2::ABILITY_ID::BEHAVIOR_HOLDFIREON_LURKER) .value("BEHAVIOR_PULSARBEAMOFF", sc2::ABILITY_ID::BEHAVIOR_PULSARBEAMOFF) .value("BEHAVIOR_PULSARBEAMON", sc2::ABILITY_ID::BEHAVIOR_PULSARBEAMON) + .value("BIODOMECOMMANDLAND_LAND", sc2::ABILITY_ID::BIODOMECOMMANDLAND_LAND) + .value("BIODOMECOMMANDLIFTOFF_LIFT", sc2::ABILITY_ID::BIODOMECOMMANDLIFTOFF_LIFT) + .value("BIODOMETRANSPORT_BIODOMELOAD", sc2::ABILITY_ID::BIODOMETRANSPORT_BIODOMELOAD) + .value("BIODOMETRANSPORT_BIODOMEUNLOADALL", sc2::ABILITY_ID::BIODOMETRANSPORT_BIODOMEUNLOADALL) + .value("BIOPLASMIDDISCHARGE", sc2::ABILITY_ID::BIOPLASMIDDISCHARGE) + .value("BIOSTASIS", sc2::ABILITY_ID::BIOSTASIS) + .value("BONESHEAL", sc2::ABILITY_ID::BONESHEAL) + .value("BONESTOSSGRENADE_TOSSGRENADETYCHUS", sc2::ABILITY_ID::BONESTOSSGRENADE_TOSSGRENADETYCHUS) + .value("BROODLORDQUEUE2_CANCEL", sc2::ABILITY_ID::BROODLORDQUEUE2_CANCEL) + .value("BROODLORDQUEUE2_CANCELSLOT", sc2::ABILITY_ID::BROODLORDQUEUE2_CANCELSLOT) + .value("BUILDINGSHIELD", sc2::ABILITY_ID::BUILDINGSHIELD) + .value("BUILDINGSTASIS", sc2::ABILITY_ID::BUILDINGSTASIS) + .value("BUILDINPROGRESSNONCANCELLABLE_CANCEL", sc2::ABILITY_ID::BUILDINPROGRESSNONCANCELLABLE_CANCEL) + .value("BUILDINPROGRESSNYDUSCANAL_CANCEL", sc2::ABILITY_ID::BUILDINPROGRESSNYDUSCANAL_CANCEL) + .value("BUILDNYDUSCANAL_CANCEL", sc2::ABILITY_ID::BUILDNYDUSCANAL_CANCEL) + .value("BUILDNYDUSCANAL_SUMMONNYDUSCANALATTACKER", sc2::ABILITY_ID::BUILDNYDUSCANAL_SUMMONNYDUSCANALATTACKER) .value("BUILD_ARMORY", sc2::ABILITY_ID::BUILD_ARMORY) .value("BUILD_ASSIMILATOR", sc2::ABILITY_ID::BUILD_ASSIMILATOR) .value("BUILD_BANELINGNEST", sc2::ABILITY_ID::BUILD_BANELINGNEST) .value("BUILD_BARRACKS", sc2::ABILITY_ID::BUILD_BARRACKS) .value("BUILD_BUNKER", sc2::ABILITY_ID::BUILD_BUNKER) + .value("BUILD_CANCEL", sc2::ABILITY_ID::BUILD_CANCEL) .value("BUILD_COMMANDCENTER", sc2::ABILITY_ID::BUILD_COMMANDCENTER) .value("BUILD_CREEPTUMOR", sc2::ABILITY_ID::BUILD_CREEPTUMOR) .value("BUILD_CREEPTUMOR_QUEEN", sc2::ABILITY_ID::BUILD_CREEPTUMOR_QUEEN) @@ -268,6 +355,7 @@ void define_typeenums(py::module & m) .value("BUILD_HYDRALISKDEN", sc2::ABILITY_ID::BUILD_HYDRALISKDEN) .value("BUILD_INFESTATIONPIT", sc2::ABILITY_ID::BUILD_INFESTATIONPIT) .value("BUILD_INTERCEPTORS", sc2::ABILITY_ID::BUILD_INTERCEPTORS) + .value("BUILD_LURKERDEN", sc2::ABILITY_ID::BUILD_LURKERDEN) .value("BUILD_MISSILETURRET", sc2::ABILITY_ID::BUILD_MISSILETURRET) .value("BUILD_NEXUS", sc2::ABILITY_ID::BUILD_NEXUS) .value("BUILD_NUKE", sc2::ABILITY_ID::BUILD_NUKE) @@ -300,36 +388,74 @@ void define_typeenums(py::module & m) .value("BUILD_TEMPLARARCHIVE", sc2::ABILITY_ID::BUILD_TEMPLARARCHIVE) .value("BUILD_TWILIGHTCOUNCIL", sc2::ABILITY_ID::BUILD_TWILIGHTCOUNCIL) .value("BUILD_ULTRALISKCAVERN", sc2::ABILITY_ID::BUILD_ULTRALISKCAVERN) + .value("BUNKERATTACK", sc2::ABILITY_ID::BUNKERATTACK) + .value("BUNKERSTOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::BUNKERSTOP_HOLDFIRESPECIAL) + .value("BUNKERSTOP_STOPBUNKER", sc2::ABILITY_ID::BUNKERSTOP_STOPBUNKER) + .value("BURROWBANELINGDOWN_CANCEL", sc2::ABILITY_ID::BURROWBANELINGDOWN_CANCEL) + .value("BURROWCREEPTUMORDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWCREEPTUMORDOWN_BURROWDOWN) .value("BURROWDOWN", sc2::ABILITY_ID::BURROWDOWN) .value("BURROWDOWN_BANELING", sc2::ABILITY_ID::BURROWDOWN_BANELING) .value("BURROWDOWN_DRONE", sc2::ABILITY_ID::BURROWDOWN_DRONE) .value("BURROWDOWN_HYDRALISK", sc2::ABILITY_ID::BURROWDOWN_HYDRALISK) .value("BURROWDOWN_INFESTOR", sc2::ABILITY_ID::BURROWDOWN_INFESTOR) + .value("BURROWDOWN_INFESTORTERRAN", sc2::ABILITY_ID::BURROWDOWN_INFESTORTERRAN) .value("BURROWDOWN_LURKER", sc2::ABILITY_ID::BURROWDOWN_LURKER) .value("BURROWDOWN_QUEEN", sc2::ABILITY_ID::BURROWDOWN_QUEEN) .value("BURROWDOWN_RAVAGER", sc2::ABILITY_ID::BURROWDOWN_RAVAGER) .value("BURROWDOWN_ROACH", sc2::ABILITY_ID::BURROWDOWN_ROACH) .value("BURROWDOWN_SWARMHOST", sc2::ABILITY_ID::BURROWDOWN_SWARMHOST) + .value("BURROWDOWN_ULTRALISK", sc2::ABILITY_ID::BURROWDOWN_ULTRALISK) .value("BURROWDOWN_WIDOWMINE", sc2::ABILITY_ID::BURROWDOWN_WIDOWMINE) .value("BURROWDOWN_ZERGLING", sc2::ABILITY_ID::BURROWDOWN_ZERGLING) + .value("BURROWDRONEDOWN_CANCEL", sc2::ABILITY_ID::BURROWDRONEDOWN_CANCEL) + .value("BURROWEDBANELINGSTOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::BURROWEDBANELINGSTOP_HOLDFIRESPECIAL) + .value("BURROWEDBANELINGSTOP_STOPROACHBURROWED", sc2::ABILITY_ID::BURROWEDBANELINGSTOP_STOPROACHBURROWED) + .value("BURROWEDSTOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::BURROWEDSTOP_HOLDFIRESPECIAL) + .value("BURROWEDSTOP_STOPROACHBURROWED", sc2::ABILITY_ID::BURROWEDSTOP_STOPROACHBURROWED) + .value("BURROWHUNTERKILLERDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWHUNTERKILLERDOWN_BURROWDOWN) + .value("BURROWHUNTERKILLERDOWN_CANCEL", sc2::ABILITY_ID::BURROWHUNTERKILLERDOWN_CANCEL) + .value("BURROWHUNTERKILLERUP_BURROWUP", sc2::ABILITY_ID::BURROWHUNTERKILLERUP_BURROWUP) + .value("BURROWHYDRALISKDOWN_CANCEL", sc2::ABILITY_ID::BURROWHYDRALISKDOWN_CANCEL) + .value("BURROWINFESTEDABOMINATIONDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWINFESTEDABOMINATIONDOWN_BURROWDOWN) + .value("BURROWINFESTEDABOMINATIONUP_BURROWUP", sc2::ABILITY_ID::BURROWINFESTEDABOMINATIONUP_BURROWUP) + .value("BURROWINFESTEDCIVILIANDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWINFESTEDCIVILIANDOWN_BURROWDOWN) + .value("BURROWINFESTEDCIVILIANUP_BURROWUP", sc2::ABILITY_ID::BURROWINFESTEDCIVILIANUP_BURROWUP) + .value("BURROWINFESTEDTERRANCAMPAIGNDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWINFESTEDTERRANCAMPAIGNDOWN_BURROWDOWN) + .value("BURROWINFESTEDTERRANCAMPAIGNUP_BURROWUP", sc2::ABILITY_ID::BURROWINFESTEDTERRANCAMPAIGNUP_BURROWUP) + .value("BURROWINFESTORDOWN_CANCEL", sc2::ABILITY_ID::BURROWINFESTORDOWN_CANCEL) + .value("BURROWLURKERDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWLURKERDOWN_BURROWDOWN) + .value("BURROWLURKERDOWN_CANCEL", sc2::ABILITY_ID::BURROWLURKERDOWN_CANCEL) + .value("BURROWLURKERMPDOWN_CANCEL", sc2::ABILITY_ID::BURROWLURKERMPDOWN_CANCEL) + .value("BURROWLURKERUP_BURROWUP", sc2::ABILITY_ID::BURROWLURKERUP_BURROWUP) + .value("BURROWOMEGALISKDOWN_BURROWDOWN", sc2::ABILITY_ID::BURROWOMEGALISKDOWN_BURROWDOWN) + .value("BURROWOMEGALISKUP_BURROWUP", sc2::ABILITY_ID::BURROWOMEGALISKUP_BURROWUP) + .value("BURROWQUEENDOWN_CANCEL", sc2::ABILITY_ID::BURROWQUEENDOWN_CANCEL) + .value("BURROWRAVAGERDOWN_CANCEL", sc2::ABILITY_ID::BURROWRAVAGERDOWN_CANCEL) + .value("BURROWROACHDOWN_CANCEL", sc2::ABILITY_ID::BURROWROACHDOWN_CANCEL) .value("BURROWUP", sc2::ABILITY_ID::BURROWUP) .value("BURROWUP_BANELING", sc2::ABILITY_ID::BURROWUP_BANELING) .value("BURROWUP_DRONE", sc2::ABILITY_ID::BURROWUP_DRONE) .value("BURROWUP_HYDRALISK", sc2::ABILITY_ID::BURROWUP_HYDRALISK) .value("BURROWUP_INFESTOR", sc2::ABILITY_ID::BURROWUP_INFESTOR) + .value("BURROWUP_INFESTORTERRAN", sc2::ABILITY_ID::BURROWUP_INFESTORTERRAN) .value("BURROWUP_LURKER", sc2::ABILITY_ID::BURROWUP_LURKER) .value("BURROWUP_QUEEN", sc2::ABILITY_ID::BURROWUP_QUEEN) .value("BURROWUP_RAVAGER", sc2::ABILITY_ID::BURROWUP_RAVAGER) .value("BURROWUP_ROACH", sc2::ABILITY_ID::BURROWUP_ROACH) .value("BURROWUP_SWARMHOST", sc2::ABILITY_ID::BURROWUP_SWARMHOST) + .value("BURROWUP_ULTRALISK", sc2::ABILITY_ID::BURROWUP_ULTRALISK) .value("BURROWUP_WIDOWMINE", sc2::ABILITY_ID::BURROWUP_WIDOWMINE) .value("BURROWUP_ZERGLING", sc2::ABILITY_ID::BURROWUP_ZERGLING) + .value("BURROWZERGLINGDOWN_CANCEL", sc2::ABILITY_ID::BURROWZERGLINGDOWN_CANCEL) .value("CANCEL", sc2::ABILITY_ID::CANCEL) .value("CANCELSLOT_ADDON", sc2::ABILITY_ID::CANCELSLOT_ADDON) + .value("CANCELSLOT_HANGARQUEUE5", sc2::ABILITY_ID::CANCELSLOT_HANGARQUEUE5) .value("CANCELSLOT_QUEUE1", sc2::ABILITY_ID::CANCELSLOT_QUEUE1) .value("CANCELSLOT_QUEUE5", sc2::ABILITY_ID::CANCELSLOT_QUEUE5) .value("CANCELSLOT_QUEUECANCELTOSELECTION", sc2::ABILITY_ID::CANCELSLOT_QUEUECANCELTOSELECTION) .value("CANCELSLOT_QUEUEPASSIVE", sc2::ABILITY_ID::CANCELSLOT_QUEUEPASSIVE) + .value("CANCELSLOT_QUEUEPASSIVECANCELTOSELECTION", sc2::ABILITY_ID::CANCELSLOT_QUEUEPASSIVECANCELTOSELECTION) + .value("CANCELTERRAZINEHARVEST_CANCEL", sc2::ABILITY_ID::CANCELTERRAZINEHARVEST_CANCEL) .value("CANCEL_ADEPTPHASESHIFT", sc2::ABILITY_ID::CANCEL_ADEPTPHASESHIFT) .value("CANCEL_ADEPTSHADEPHASESHIFT", sc2::ABILITY_ID::CANCEL_ADEPTSHADEPHASESHIFT) .value("CANCEL_BARRACKSADDON", sc2::ABILITY_ID::CANCEL_BARRACKSADDON) @@ -337,8 +463,12 @@ void define_typeenums(py::module & m) .value("CANCEL_CREEPTUMOR", sc2::ABILITY_ID::CANCEL_CREEPTUMOR) .value("CANCEL_FACTORYADDON", sc2::ABILITY_ID::CANCEL_FACTORYADDON) .value("CANCEL_GRAVITONBEAM", sc2::ABILITY_ID::CANCEL_GRAVITONBEAM) + .value("CANCEL_HANGARQUEUE5", sc2::ABILITY_ID::CANCEL_HANGARQUEUE5) .value("CANCEL_LAST", sc2::ABILITY_ID::CANCEL_LAST) + .value("CANCEL_LOCKON", sc2::ABILITY_ID::CANCEL_LOCKON) .value("CANCEL_MORPHBROODLORD", sc2::ABILITY_ID::CANCEL_MORPHBROODLORD) + .value("CANCEL_MORPHGREATERSPIRE", sc2::ABILITY_ID::CANCEL_MORPHGREATERSPIRE) + .value("CANCEL_MORPHHIVE", sc2::ABILITY_ID::CANCEL_MORPHHIVE) .value("CANCEL_MORPHLAIR", sc2::ABILITY_ID::CANCEL_MORPHLAIR) .value("CANCEL_MORPHLURKER", sc2::ABILITY_ID::CANCEL_MORPHLURKER) .value("CANCEL_MORPHLURKERDEN", sc2::ABILITY_ID::CANCEL_MORPHLURKERDEN) @@ -348,16 +478,86 @@ void define_typeenums(py::module & m) .value("CANCEL_MORPHOVERSEER", sc2::ABILITY_ID::CANCEL_MORPHOVERSEER) .value("CANCEL_MORPHPLANETARYFORTRESS", sc2::ABILITY_ID::CANCEL_MORPHPLANETARYFORTRESS) .value("CANCEL_MORPHRAVAGER", sc2::ABILITY_ID::CANCEL_MORPHRAVAGER) + .value("CANCEL_MORPHTHOREXPLOSIVEMODE", sc2::ABILITY_ID::CANCEL_MORPHTHOREXPLOSIVEMODE) + .value("CANCEL_MOTHERSHIPSTASIS", sc2::ABILITY_ID::CANCEL_MOTHERSHIPSTASIS) + .value("CANCEL_NEURALPARASITE", sc2::ABILITY_ID::CANCEL_NEURALPARASITE) + .value("CANCEL_NUKE", sc2::ABILITY_ID::CANCEL_NUKE) + .value("CANCEL_PROTOSSBUILDINGQUEUE", sc2::ABILITY_ID::CANCEL_PROTOSSBUILDINGQUEUE) .value("CANCEL_QUEUE1", sc2::ABILITY_ID::CANCEL_QUEUE1) .value("CANCEL_QUEUE5", sc2::ABILITY_ID::CANCEL_QUEUE5) .value("CANCEL_QUEUEADDON", sc2::ABILITY_ID::CANCEL_QUEUEADDON) .value("CANCEL_QUEUECANCELTOSELECTION", sc2::ABILITY_ID::CANCEL_QUEUECANCELTOSELECTION) .value("CANCEL_QUEUEPASIVE", sc2::ABILITY_ID::CANCEL_QUEUEPASIVE) .value("CANCEL_QUEUEPASSIVECANCELTOSELECTION", sc2::ABILITY_ID::CANCEL_QUEUEPASSIVECANCELTOSELECTION) + .value("CANCEL_SLOT", sc2::ABILITY_ID::CANCEL_SLOT) .value("CANCEL_SPINECRAWLERROOT", sc2::ABILITY_ID::CANCEL_SPINECRAWLERROOT) + .value("CANCEL_SPORECRAWLERROOT", sc2::ABILITY_ID::CANCEL_SPORECRAWLERROOT) .value("CANCEL_STARPORTADDON", sc2::ABILITY_ID::CANCEL_STARPORTADDON) + .value("CANCEL_STASISTRAP", sc2::ABILITY_ID::CANCEL_STASISTRAP) + .value("CANCEL_TEMPESTDISRUPTIONBLAST", sc2::ABILITY_ID::CANCEL_TEMPESTDISRUPTIONBLAST) + .value("CANCEL_VOIDRAYPRISMATICALIGNMENT", sc2::ABILITY_ID::CANCEL_VOIDRAYPRISMATICALIGNMENT) + .value("CHANGESHRINEPROTOSS", sc2::ABILITY_ID::CHANGESHRINEPROTOSS) + .value("CHANGESHRINETERRAN", sc2::ABILITY_ID::CHANGESHRINETERRAN) + .value("CLIFFDOORCLOSE0_SPACEPLATFORMDOORCLOSE", sc2::ABILITY_ID::CLIFFDOORCLOSE0_SPACEPLATFORMDOORCLOSE) + .value("CLIFFDOORCLOSE1_SPACEPLATFORMDOORCLOSE", sc2::ABILITY_ID::CLIFFDOORCLOSE1_SPACEPLATFORMDOORCLOSE) + .value("CLIFFDOOROPEN0_SPACEPLATFORMDOOROPEN", sc2::ABILITY_ID::CLIFFDOOROPEN0_SPACEPLATFORMDOOROPEN) + .value("CLIFFDOOROPEN1_SPACEPLATFORMDOOROPEN", sc2::ABILITY_ID::CLIFFDOOROPEN1_SPACEPLATFORMDOOROPEN) + .value("CLOAKINGDRONE", sc2::ABILITY_ID::CLOAKINGDRONE) + .value("CLONE", sc2::ABILITY_ID::CLONE) + .value("COLONISTSHIPLAND_LAND", sc2::ABILITY_ID::COLONISTSHIPLAND_LAND) + .value("COLONISTSHIPLIFTOFF_LIFT", sc2::ABILITY_ID::COLONISTSHIPLIFTOFF_LIFT) + .value("COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTLOAD", sc2::ABILITY_ID::COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTLOAD) + .value("COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTUNLOADALL", sc2::ABILITY_ID::COLONISTTRANSPORTTRANSPORT_COLONISTTRANSPORTUNLOADALL) + .value("COLONYINFESTATION", sc2::ABILITY_ID::COLONYINFESTATION) + .value("COLONYSHIPTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::COLONYSHIPTRANSPORT_MEDIVACLOAD) + .value("COLONYSHIPTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::COLONYSHIPTRANSPORT_MEDIVACUNLOADALL) + .value("CONSUMEDNA", sc2::ABILITY_ID::CONSUMEDNA) + .value("CONSUMPTION", sc2::ABILITY_ID::CONSUMPTION) + .value("CORRUPTIONBOMB", sc2::ABILITY_ID::CORRUPTIONBOMB) + .value("CORRUPTIONBOMB_CANCEL", sc2::ABILITY_ID::CORRUPTIONBOMB_CANCEL) + .value("CORRUPTION_CANCEL", sc2::ABILITY_ID::CORRUPTION_CANCEL) + .value("CORRUPTION_CORRUPTIONABILITY", sc2::ABILITY_ID::CORRUPTION_CORRUPTIONABILITY) + .value("CORSAIRMPDISRUPTIONWEB", sc2::ABILITY_ID::CORSAIRMPDISRUPTIONWEB) + .value("CRITTERFLEE", sc2::ABILITY_ID::CRITTERFLEE) + .value("D8CHARGE", sc2::ABILITY_ID::D8CHARGE) + .value("DEFENSIVEMATRIX", sc2::ABILITY_ID::DEFENSIVEMATRIX) + .value("DEFILERMPBURROW_BURROWDOWN", sc2::ABILITY_ID::DEFILERMPBURROW_BURROWDOWN) + .value("DEFILERMPBURROW_CANCEL", sc2::ABILITY_ID::DEFILERMPBURROW_CANCEL) + .value("DEFILERMPCONSUME", sc2::ABILITY_ID::DEFILERMPCONSUME) + .value("DEFILERMPDARKSWARM", sc2::ABILITY_ID::DEFILERMPDARKSWARM) + .value("DEFILERMPPLAGUE", sc2::ABILITY_ID::DEFILERMPPLAGUE) + .value("DEFILERMPUNBURROW_BURROWUP", sc2::ABILITY_ID::DEFILERMPUNBURROW_BURROWUP) + .value("DESTRUCTIBLEGATEDIAGONALBLURLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALBLURLOWERED_GATEOPEN) + .value("DESTRUCTIBLEGATEDIAGONALBLUR_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALBLUR_GATECLOSE) + .value("DESTRUCTIBLEGATEDIAGONALULBRLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALULBRLOWERED_GATEOPEN) + .value("DESTRUCTIBLEGATEDIAGONALULBR_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATEDIAGONALULBR_GATECLOSE) + .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN) + .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTALBF_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTALBF_GATECLOSE) + .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN) + .value("DESTRUCTIBLEGATESTRAIGHTHORIZONTAL_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTHORIZONTAL_GATECLOSE) + .value("DESTRUCTIBLEGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN) + .value("DESTRUCTIBLEGATESTRAIGHTVERTICALLF_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICALLF_GATECLOSE) + .value("DESTRUCTIBLEGATESTRAIGHTVERTICALLOWERED_GATEOPEN", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICALLOWERED_GATEOPEN) + .value("DESTRUCTIBLEGATESTRAIGHTVERTICAL_GATECLOSE", sc2::ABILITY_ID::DESTRUCTIBLEGATESTRAIGHTVERTICAL_GATECLOSE) + .value("DIGESTERCREEPSPRAY", sc2::ABILITY_ID::DIGESTERCREEPSPRAY) + .value("DIGESTERTRANSPORT_LOADDIGESTER", sc2::ABILITY_ID::DIGESTERTRANSPORT_LOADDIGESTER) + .value("DISGUISEASMARINEWITHOUTSHIELD_MARINE", sc2::ABILITY_ID::DISGUISEASMARINEWITHOUTSHIELD_MARINE) + .value("DISGUISEASMARINEWITHSHIELD_MARINE", sc2::ABILITY_ID::DISGUISEASMARINEWITHSHIELD_MARINE) + .value("DISGUISEASZEALOT_ZEALOT", sc2::ABILITY_ID::DISGUISEASZEALOT_ZEALOT) + .value("DISGUISEASZERGLINGWITHOUTWINGS_ZERGLING", sc2::ABILITY_ID::DISGUISEASZERGLINGWITHOUTWINGS_ZERGLING) + .value("DISGUISEASZERGLINGWITHWINGS_ZERGLING", sc2::ABILITY_ID::DISGUISEASZERGLINGWITHWINGS_ZERGLING) + .value("DOMINATION", sc2::ABILITY_ID::DOMINATION) + .value("DOMINATION_CANCEL", sc2::ABILITY_ID::DOMINATION_CANCEL) + .value("DROPTOSUPPLYDEPOT_RAISE", sc2::ABILITY_ID::DROPTOSUPPLYDEPOT_RAISE) + .value("DUKESREVENGEDEFENSIVEMATRIX_DEFENSIVEMATRIX", sc2::ABILITY_ID::DUKESREVENGEDEFENSIVEMATRIX_DEFENSIVEMATRIX) + .value("DUKESREVENGEMISSILEPODS_MISSILEPODS", sc2::ABILITY_ID::DUKESREVENGEMISSILEPODS_MISSILEPODS) + .value("DUSKWINGBANSHEECLOAKINGFIELD_CLOAKOFF", sc2::ABILITY_ID::DUSKWINGBANSHEECLOAKINGFIELD_CLOAKOFF) + .value("DUSKWINGBANSHEECLOAKINGFIELD_CLOAKONBANSHEE", sc2::ABILITY_ID::DUSKWINGBANSHEECLOAKINGFIELD_CLOAKONBANSHEE) + .value("DUTCHPLACETURRET", sc2::ABILITY_ID::DUTCHPLACETURRET) .value("EFFECT_ABDUCT", sc2::ABILITY_ID::EFFECT_ABDUCT) .value("EFFECT_ADEPTPHASESHIFT", sc2::ABILITY_ID::EFFECT_ADEPTPHASESHIFT) + .value("EFFECT_AMORPHOUSARMORCLOUD", sc2::ABILITY_ID::EFFECT_AMORPHOUSARMORCLOUD) + .value("EFFECT_ANTIARMORMISSILE", sc2::ABILITY_ID::EFFECT_ANTIARMORMISSILE) .value("EFFECT_AUTOTURRET", sc2::ABILITY_ID::EFFECT_AUTOTURRET) .value("EFFECT_BLINDINGCLOUD", sc2::ABILITY_ID::EFFECT_BLINDINGCLOUD) .value("EFFECT_BLINK", sc2::ABILITY_ID::EFFECT_BLINK) @@ -366,6 +566,7 @@ void define_typeenums(py::module & m) .value("EFFECT_CAUSTICSPRAY", sc2::ABILITY_ID::EFFECT_CAUSTICSPRAY) .value("EFFECT_CHARGE", sc2::ABILITY_ID::EFFECT_CHARGE) .value("EFFECT_CHRONOBOOST", sc2::ABILITY_ID::EFFECT_CHRONOBOOST) + .value("EFFECT_CHRONOBOOSTENERGYCOST", sc2::ABILITY_ID::EFFECT_CHRONOBOOSTENERGYCOST) .value("EFFECT_CONTAMINATE", sc2::ABILITY_ID::EFFECT_CONTAMINATE) .value("EFFECT_CORROSIVEBILE", sc2::ABILITY_ID::EFFECT_CORROSIVEBILE) .value("EFFECT_EMP", sc2::ABILITY_ID::EFFECT_EMP) @@ -381,12 +582,15 @@ void define_typeenums(py::module & m) .value("EFFECT_IMMORTALBARRIER", sc2::ABILITY_ID::EFFECT_IMMORTALBARRIER) .value("EFFECT_INFESTEDTERRANS", sc2::ABILITY_ID::EFFECT_INFESTEDTERRANS) .value("EFFECT_INJECTLARVA", sc2::ABILITY_ID::EFFECT_INJECTLARVA) + .value("EFFECT_INTERFERENCEMATRIX", sc2::ABILITY_ID::EFFECT_INTERFERENCEMATRIX) .value("EFFECT_KD8CHARGE", sc2::ABILITY_ID::EFFECT_KD8CHARGE) .value("EFFECT_LOCKON", sc2::ABILITY_ID::EFFECT_LOCKON) .value("EFFECT_LOCUSTSWOOP", sc2::ABILITY_ID::EFFECT_LOCUSTSWOOP) .value("EFFECT_MASSRECALL", sc2::ABILITY_ID::EFFECT_MASSRECALL) .value("EFFECT_MASSRECALL_MOTHERSHIP", sc2::ABILITY_ID::EFFECT_MASSRECALL_MOTHERSHIP) .value("EFFECT_MASSRECALL_MOTHERSHIPCORE", sc2::ABILITY_ID::EFFECT_MASSRECALL_MOTHERSHIPCORE) + .value("EFFECT_MASSRECALL_NEXUS", sc2::ABILITY_ID::EFFECT_MASSRECALL_NEXUS) + .value("EFFECT_MASSRECALL_STRATEGICRECALL", sc2::ABILITY_ID::EFFECT_MASSRECALL_STRATEGICRECALL) .value("EFFECT_MEDIVACIGNITEAFTERBURNERS", sc2::ABILITY_ID::EFFECT_MEDIVACIGNITEAFTERBURNERS) .value("EFFECT_NEURALPARASITE", sc2::ABILITY_ID::EFFECT_NEURALPARASITE) .value("EFFECT_NUKECALLDOWN", sc2::ABILITY_ID::EFFECT_NUKECALLDOWN) @@ -397,7 +601,9 @@ void define_typeenums(py::module & m) .value("EFFECT_PSISTORM", sc2::ABILITY_ID::EFFECT_PSISTORM) .value("EFFECT_PURIFICATIONNOVA", sc2::ABILITY_ID::EFFECT_PURIFICATIONNOVA) .value("EFFECT_REPAIR", sc2::ABILITY_ID::EFFECT_REPAIR) + .value("EFFECT_REPAIRDRONE", sc2::ABILITY_ID::EFFECT_REPAIRDRONE) .value("EFFECT_REPAIR_MULE", sc2::ABILITY_ID::EFFECT_REPAIR_MULE) + .value("EFFECT_REPAIR_REPAIRDRONE", sc2::ABILITY_ID::EFFECT_REPAIR_REPAIRDRONE) .value("EFFECT_REPAIR_SCV", sc2::ABILITY_ID::EFFECT_REPAIR_SCV) .value("EFFECT_RESTORE", sc2::ABILITY_ID::EFFECT_RESTORE) .value("EFFECT_SALVAGE", sc2::ABILITY_ID::EFFECT_SALVAGE) @@ -411,6 +617,7 @@ void define_typeenums(py::module & m) .value("EFFECT_SPRAY_ZERG", sc2::ABILITY_ID::EFFECT_SPRAY_ZERG) .value("EFFECT_STIM", sc2::ABILITY_ID::EFFECT_STIM) .value("EFFECT_STIM_MARAUDER", sc2::ABILITY_ID::EFFECT_STIM_MARAUDER) + .value("EFFECT_STIM_MARAUDER_REDIRECT", sc2::ABILITY_ID::EFFECT_STIM_MARAUDER_REDIRECT) .value("EFFECT_STIM_MARINE", sc2::ABILITY_ID::EFFECT_STIM_MARINE) .value("EFFECT_STIM_MARINE_REDIRECT", sc2::ABILITY_ID::EFFECT_STIM_MARINE_REDIRECT) .value("EFFECT_SUPPLYDROP", sc2::ABILITY_ID::EFFECT_SUPPLYDROP) @@ -422,6 +629,37 @@ void define_typeenums(py::module & m) .value("EFFECT_VOIDRAYPRISMATICALIGNMENT", sc2::ABILITY_ID::EFFECT_VOIDRAYPRISMATICALIGNMENT) .value("EFFECT_WIDOWMINEATTACK", sc2::ABILITY_ID::EFFECT_WIDOWMINEATTACK) .value("EFFECT_YAMATOGUN", sc2::ABILITY_ID::EFFECT_YAMATOGUN) + .value("EGGPOP", sc2::ABILITY_ID::EGGPOP) + .value("ENERGYNOVA", sc2::ABILITY_ID::ENERGYNOVA) + .value("EVOLUTIONCHAMBERRESEARCH_EVOLVEPROPULSIVEPERISTALSIS", sc2::ABILITY_ID::EVOLUTIONCHAMBERRESEARCH_EVOLVEPROPULSIVEPERISTALSIS) + .value("EXPERIMENTALPLASMAGUN", sc2::ABILITY_ID::EXPERIMENTALPLASMAGUN) + .value("EXTENDINGBRIDGENEWIDE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE10OUT_BRIDGEEXTEND) + .value("EXTENDINGBRIDGENEWIDE10_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE10_BRIDGERETRACT) + .value("EXTENDINGBRIDGENEWIDE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE12OUT_BRIDGEEXTEND) + .value("EXTENDINGBRIDGENEWIDE12_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE12_BRIDGERETRACT) + .value("EXTENDINGBRIDGENEWIDE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE8OUT_BRIDGEEXTEND) + .value("EXTENDINGBRIDGENEWIDE8_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENEWIDE8_BRIDGERETRACT) + .value("EXTENDINGBRIDGENWWIDE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE10OUT_BRIDGEEXTEND) + .value("EXTENDINGBRIDGENWWIDE10_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE10_BRIDGERETRACT) + .value("EXTENDINGBRIDGENWWIDE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE12OUT_BRIDGEEXTEND) + .value("EXTENDINGBRIDGENWWIDE12_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE12_BRIDGERETRACT) + .value("EXTENDINGBRIDGENWWIDE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE8OUT_BRIDGEEXTEND) + .value("EXTENDINGBRIDGENWWIDE8_BRIDGERETRACT", sc2::ABILITY_ID::EXTENDINGBRIDGENWWIDE8_BRIDGERETRACT) + .value("EYESTALK", sc2::ABILITY_ID::EYESTALK) + .value("EYESTALK_CANCEL", sc2::ABILITY_ID::EYESTALK_CANCEL) + .value("FACTORYREACTORMORPH_REACTOR", sc2::ABILITY_ID::FACTORYREACTORMORPH_REACTOR) + .value("FACTORYTECHLABMORPH_TECHLABFACTORY", sc2::ABILITY_ID::FACTORYTECHLABMORPH_TECHLABFACTORY) + .value("FACTORYTECHREACTORMORPH_TECHLABFACTORY", sc2::ABILITY_ID::FACTORYTECHREACTORMORPH_TECHLABFACTORY) + .value("FLYERSHIELD", sc2::ABILITY_ID::FLYERSHIELD) + .value("FORCEFIELD_CANCEL", sc2::ABILITY_ID::FORCEFIELD_CANCEL) + .value("FRENZY", sc2::ABILITY_ID::FRENZY) + .value("GATHERSPECIALOBJECT", sc2::ABILITY_ID::GATHERSPECIALOBJECT) + .value("GENERAL_HOLDPOSITION", sc2::ABILITY_ID::GENERAL_HOLDPOSITION) + .value("GENERAL_MOVE", sc2::ABILITY_ID::GENERAL_MOVE) + .value("GENERAL_PATROL", sc2::ABILITY_ID::GENERAL_PATROL) + .value("GRAPPLE", sc2::ABILITY_ID::GRAPPLE) + .value("GRAVITONPRISON", sc2::ABILITY_ID::GRAVITONPRISON) + .value("GWALEARN_TESTLEARN", sc2::ABILITY_ID::GWALEARN_TESTLEARN) .value("HALLUCINATION_ADEPT", sc2::ABILITY_ID::HALLUCINATION_ADEPT) .value("HALLUCINATION_ARCHON", sc2::ABILITY_ID::HALLUCINATION_ARCHON) .value("HALLUCINATION_COLOSSUS", sc2::ABILITY_ID::HALLUCINATION_COLOSSUS) @@ -440,6 +678,7 @@ void define_typeenums(py::module & m) .value("HALT_TERRANBUILD", sc2::ABILITY_ID::HALT_TERRANBUILD) .value("HARVEST_GATHER", sc2::ABILITY_ID::HARVEST_GATHER) .value("HARVEST_GATHER_DRONE", sc2::ABILITY_ID::HARVEST_GATHER_DRONE) + .value("HARVEST_GATHER_MULE", sc2::ABILITY_ID::HARVEST_GATHER_MULE) .value("HARVEST_GATHER_PROBE", sc2::ABILITY_ID::HARVEST_GATHER_PROBE) .value("HARVEST_GATHER_SCV", sc2::ABILITY_ID::HARVEST_GATHER_SCV) .value("HARVEST_RETURN", sc2::ABILITY_ID::HARVEST_RETURN) @@ -447,385 +686,1360 @@ void define_typeenums(py::module & m) .value("HARVEST_RETURN_MULE", sc2::ABILITY_ID::HARVEST_RETURN_MULE) .value("HARVEST_RETURN_PROBE", sc2::ABILITY_ID::HARVEST_RETURN_PROBE) .value("HARVEST_RETURN_SCV", sc2::ABILITY_ID::HARVEST_RETURN_SCV) - .value("HOLDPOSITION", sc2::ABILITY_ID::HOLDPOSITION) - .value("LAND", sc2::ABILITY_ID::LAND) - .value("LAND_BARRACKS", sc2::ABILITY_ID::LAND_BARRACKS) - .value("LAND_COMMANDCENTER", sc2::ABILITY_ID::LAND_COMMANDCENTER) - .value("LAND_FACTORY", sc2::ABILITY_ID::LAND_FACTORY) - .value("LAND_ORBITALCOMMAND", sc2::ABILITY_ID::LAND_ORBITALCOMMAND) - .value("LAND_STARPORT", sc2::ABILITY_ID::LAND_STARPORT) - .value("LIFT", sc2::ABILITY_ID::LIFT) - .value("LIFT_BARRACKS", sc2::ABILITY_ID::LIFT_BARRACKS) - .value("LIFT_COMMANDCENTER", sc2::ABILITY_ID::LIFT_COMMANDCENTER) - .value("LIFT_FACTORY", sc2::ABILITY_ID::LIFT_FACTORY) - .value("LIFT_ORBITALCOMMAND", sc2::ABILITY_ID::LIFT_ORBITALCOMMAND) - .value("LIFT_STARPORT", sc2::ABILITY_ID::LIFT_STARPORT) - .value("LOAD", sc2::ABILITY_ID::LOAD) - .value("LOADALL", sc2::ABILITY_ID::LOADALL) - .value("LOADALL_COMMANDCENTER", sc2::ABILITY_ID::LOADALL_COMMANDCENTER) - .value("LOAD_BUNKER", sc2::ABILITY_ID::LOAD_BUNKER) - .value("LOAD_MEDIVAC", sc2::ABILITY_ID::LOAD_MEDIVAC) - .value("MORPH_ARCHON", sc2::ABILITY_ID::MORPH_ARCHON) - .value("MORPH_BROODLORD", sc2::ABILITY_ID::MORPH_BROODLORD) - .value("MORPH_GATEWAY", sc2::ABILITY_ID::MORPH_GATEWAY) - .value("MORPH_GREATERSPIRE", sc2::ABILITY_ID::MORPH_GREATERSPIRE) - .value("MORPH_HELLBAT", sc2::ABILITY_ID::MORPH_HELLBAT) - .value("MORPH_HELLION", sc2::ABILITY_ID::MORPH_HELLION) - .value("MORPH_HIVE", sc2::ABILITY_ID::MORPH_HIVE) - .value("MORPH_LAIR", sc2::ABILITY_ID::MORPH_LAIR) - .value("MORPH_LIBERATORAAMODE", sc2::ABILITY_ID::MORPH_LIBERATORAAMODE) - .value("MORPH_LIBERATORAGMODE", sc2::ABILITY_ID::MORPH_LIBERATORAGMODE) - .value("MORPH_LURKER", sc2::ABILITY_ID::MORPH_LURKER) - .value("MORPH_LURKERDEN", sc2::ABILITY_ID::MORPH_LURKERDEN) - .value("MORPH_MOTHERSHIP", sc2::ABILITY_ID::MORPH_MOTHERSHIP) - .value("MORPH_ORBITALCOMMAND", sc2::ABILITY_ID::MORPH_ORBITALCOMMAND) - .value("MORPH_OVERLORDTRANSPORT", sc2::ABILITY_ID::MORPH_OVERLORDTRANSPORT) - .value("MORPH_OVERSEER", sc2::ABILITY_ID::MORPH_OVERSEER) - .value("MORPH_PLANETARYFORTRESS", sc2::ABILITY_ID::MORPH_PLANETARYFORTRESS) - .value("MORPH_RAVAGER", sc2::ABILITY_ID::MORPH_RAVAGER) - .value("MORPH_ROOT", sc2::ABILITY_ID::MORPH_ROOT) - .value("MORPH_SIEGEMODE", sc2::ABILITY_ID::MORPH_SIEGEMODE) - .value("MORPH_SPINECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERROOT) - .value("MORPH_SPINECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERUPROOT) - .value("MORPH_SPORECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERROOT) - .value("MORPH_SPORECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERUPROOT) - .value("MORPH_SUPPLYDEPOT_LOWER", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_LOWER) - .value("MORPH_SUPPLYDEPOT_RAISE", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_RAISE) - .value("MORPH_THOREXPLOSIVEMODE", sc2::ABILITY_ID::MORPH_THOREXPLOSIVEMODE) - .value("MORPH_THORHIGHIMPACTMODE", sc2::ABILITY_ID::MORPH_THORHIGHIMPACTMODE) - .value("MORPH_UNSIEGE", sc2::ABILITY_ID::MORPH_UNSIEGE) - .value("MORPH_UPROOT", sc2::ABILITY_ID::MORPH_UPROOT) - .value("MORPH_VIKINGASSAULTMODE", sc2::ABILITY_ID::MORPH_VIKINGASSAULTMODE) - .value("MORPH_VIKINGFIGHTERMODE", sc2::ABILITY_ID::MORPH_VIKINGFIGHTERMODE) - .value("MORPH_WARPGATE", sc2::ABILITY_ID::MORPH_WARPGATE) - .value("MORPH_WARPPRISMPHASINGMODE", sc2::ABILITY_ID::MORPH_WARPPRISMPHASINGMODE) - .value("MORPH_WARPPRISMTRANSPORTMODE", sc2::ABILITY_ID::MORPH_WARPPRISMTRANSPORTMODE) - .value("MOVE", sc2::ABILITY_ID::MOVE) - .value("PATROL", sc2::ABILITY_ID::PATROL) - .value("RALLY_BUILDING", sc2::ABILITY_ID::RALLY_BUILDING) - .value("RALLY_COMMANDCENTER", sc2::ABILITY_ID::RALLY_COMMANDCENTER) - .value("RALLY_HATCHERY_UNITS", sc2::ABILITY_ID::RALLY_HATCHERY_UNITS) - .value("RALLY_HATCHERY_WORKERS", sc2::ABILITY_ID::RALLY_HATCHERY_WORKERS) - .value("RALLY_MORPHING_UNIT", sc2::ABILITY_ID::RALLY_MORPHING_UNIT) - .value("RALLY_NEXUS", sc2::ABILITY_ID::RALLY_NEXUS) - .value("RALLY_UNITS", sc2::ABILITY_ID::RALLY_UNITS) - .value("RALLY_WORKERS", sc2::ABILITY_ID::RALLY_WORKERS) - .value("RESEARCH_ADEPTRESONATINGGLAIVES", sc2::ABILITY_ID::RESEARCH_ADEPTRESONATINGGLAIVES) - .value("RESEARCH_ADVANCEDBALLISTICS", sc2::ABILITY_ID::RESEARCH_ADVANCEDBALLISTICS) - .value("RESEARCH_BANSHEECLOAKINGFIELD", sc2::ABILITY_ID::RESEARCH_BANSHEECLOAKINGFIELD) - .value("RESEARCH_BANSHEEHYPERFLIGHTROTORS", sc2::ABILITY_ID::RESEARCH_BANSHEEHYPERFLIGHTROTORS) - .value("RESEARCH_BATTLECRUISERWEAPONREFIT", sc2::ABILITY_ID::RESEARCH_BATTLECRUISERWEAPONREFIT) - .value("RESEARCH_BLINK", sc2::ABILITY_ID::RESEARCH_BLINK) - .value("RESEARCH_BURROW", sc2::ABILITY_ID::RESEARCH_BURROW) - .value("RESEARCH_CENTRIFUGALHOOKS", sc2::ABILITY_ID::RESEARCH_CENTRIFUGALHOOKS) - .value("RESEARCH_CHARGE", sc2::ABILITY_ID::RESEARCH_CHARGE) - .value("RESEARCH_CHITINOUSPLATING", sc2::ABILITY_ID::RESEARCH_CHITINOUSPLATING) - .value("RESEARCH_COMBATSHIELD", sc2::ABILITY_ID::RESEARCH_COMBATSHIELD) - .value("RESEARCH_CONCUSSIVESHELLS", sc2::ABILITY_ID::RESEARCH_CONCUSSIVESHELLS) - .value("RESEARCH_DRILLINGCLAWS", sc2::ABILITY_ID::RESEARCH_DRILLINGCLAWS) - .value("RESEARCH_ENHANCEDMUNITIONS", sc2::ABILITY_ID::RESEARCH_ENHANCEDMUNITIONS) - .value("RESEARCH_EXTENDEDTHERMALLANCE", sc2::ABILITY_ID::RESEARCH_EXTENDEDTHERMALLANCE) - .value("RESEARCH_GLIALREGENERATION", sc2::ABILITY_ID::RESEARCH_GLIALREGENERATION) - .value("RESEARCH_GRAVITICBOOSTER", sc2::ABILITY_ID::RESEARCH_GRAVITICBOOSTER) - .value("RESEARCH_GRAVITICDRIVE", sc2::ABILITY_ID::RESEARCH_GRAVITICDRIVE) - .value("RESEARCH_GROOVEDSPINES", sc2::ABILITY_ID::RESEARCH_GROOVEDSPINES) - .value("RESEARCH_HIGHCAPACITYFUELTANKS", sc2::ABILITY_ID::RESEARCH_HIGHCAPACITYFUELTANKS) - .value("RESEARCH_HISECAUTOTRACKING", sc2::ABILITY_ID::RESEARCH_HISECAUTOTRACKING) - .value("RESEARCH_INFERNALPREIGNITER", sc2::ABILITY_ID::RESEARCH_INFERNALPREIGNITER) - .value("RESEARCH_INTERCEPTORGRAVITONCATAPULT", sc2::ABILITY_ID::RESEARCH_INTERCEPTORGRAVITONCATAPULT) - .value("RESEARCH_MAGFIELDLAUNCHERS", sc2::ABILITY_ID::RESEARCH_MAGFIELDLAUNCHERS) - .value("RESEARCH_MUSCULARAUGMENTS", sc2::ABILITY_ID::RESEARCH_MUSCULARAUGMENTS) - .value("RESEARCH_NEOSTEELFRAME", sc2::ABILITY_ID::RESEARCH_NEOSTEELFRAME) - .value("RESEARCH_NEURALPARASITE", sc2::ABILITY_ID::RESEARCH_NEURALPARASITE) - .value("RESEARCH_PATHOGENGLANDS", sc2::ABILITY_ID::RESEARCH_PATHOGENGLANDS) - .value("RESEARCH_PERSONALCLOAKING", sc2::ABILITY_ID::RESEARCH_PERSONALCLOAKING) - .value("RESEARCH_PHOENIXANIONPULSECRYSTALS", sc2::ABILITY_ID::RESEARCH_PHOENIXANIONPULSECRYSTALS) - .value("RESEARCH_PNEUMATIZEDCARAPACE", sc2::ABILITY_ID::RESEARCH_PNEUMATIZEDCARAPACE) - .value("RESEARCH_PROTOSSAIRARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMOR) - .value("RESEARCH_PROTOSSAIRARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL1) - .value("RESEARCH_PROTOSSAIRARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL2) - .value("RESEARCH_PROTOSSAIRARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL3) - .value("RESEARCH_PROTOSSAIRWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONS) - .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL1) - .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL2) - .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL3) - .value("RESEARCH_PROTOSSGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMOR) - .value("RESEARCH_PROTOSSGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL1) - .value("RESEARCH_PROTOSSGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL2) - .value("RESEARCH_PROTOSSGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL3) - .value("RESEARCH_PROTOSSGROUNDWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONS) - .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1) - .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2) - .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3) - .value("RESEARCH_PROTOSSSHIELDS", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDS) - .value("RESEARCH_PROTOSSSHIELDSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL1) - .value("RESEARCH_PROTOSSSHIELDSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL2) - .value("RESEARCH_PROTOSSSHIELDSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL3) - .value("RESEARCH_PSISTORM", sc2::ABILITY_ID::RESEARCH_PSISTORM) - .value("RESEARCH_RAPIDFIRELAUNCHERS", sc2::ABILITY_ID::RESEARCH_RAPIDFIRELAUNCHERS) - .value("RESEARCH_RAVENCORVIDREACTOR", sc2::ABILITY_ID::RESEARCH_RAVENCORVIDREACTOR) - .value("RESEARCH_RAVENRECALIBRATEDEXPLOSIVES", sc2::ABILITY_ID::RESEARCH_RAVENRECALIBRATEDEXPLOSIVES) - .value("RESEARCH_SHADOWSTRIKE", sc2::ABILITY_ID::RESEARCH_SHADOWSTRIKE) - .value("RESEARCH_SMARTSERVOS", sc2::ABILITY_ID::RESEARCH_SMARTSERVOS) - .value("RESEARCH_STIMPACK", sc2::ABILITY_ID::RESEARCH_STIMPACK) - .value("RESEARCH_TERRANINFANTRYARMOR", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMOR) - .value("RESEARCH_TERRANINFANTRYARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL1) - .value("RESEARCH_TERRANINFANTRYARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL2) - .value("RESEARCH_TERRANINFANTRYARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL3) - .value("RESEARCH_TERRANINFANTRYWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONS) - .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL1) - .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL2) - .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL3) - .value("RESEARCH_TERRANSHIPWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONS) - .value("RESEARCH_TERRANSHIPWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL1) - .value("RESEARCH_TERRANSHIPWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL2) - .value("RESEARCH_TERRANSHIPWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL3) - .value("RESEARCH_TERRANSTRUCTUREARMORUPGRADE", sc2::ABILITY_ID::RESEARCH_TERRANSTRUCTUREARMORUPGRADE) - .value("RESEARCH_TERRANVEHICLEANDSHIPPLATING", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATING) - .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1) - .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2) - .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3) - .value("RESEARCH_TERRANVEHICLEWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONS) - .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL1) - .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL2) - .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL3) - .value("RESEARCH_TUNNELINGCLAWS", sc2::ABILITY_ID::RESEARCH_TUNNELINGCLAWS) - .value("RESEARCH_WARPGATE", sc2::ABILITY_ID::RESEARCH_WARPGATE) - .value("RESEARCH_ZERGFLYERARMOR", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMOR) - .value("RESEARCH_ZERGFLYERARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL1) - .value("RESEARCH_ZERGFLYERARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL2) - .value("RESEARCH_ZERGFLYERARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL3) - .value("RESEARCH_ZERGFLYERATTACK", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACK) - .value("RESEARCH_ZERGFLYERATTACKLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL1) - .value("RESEARCH_ZERGFLYERATTACKLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL2) - .value("RESEARCH_ZERGFLYERATTACKLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL3) - .value("RESEARCH_ZERGGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMOR) - .value("RESEARCH_ZERGGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL1) - .value("RESEARCH_ZERGGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL2) - .value("RESEARCH_ZERGGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL3) - .value("RESEARCH_ZERGLINGADRENALGLANDS", sc2::ABILITY_ID::RESEARCH_ZERGLINGADRENALGLANDS) - .value("RESEARCH_ZERGLINGMETABOLICBOOST", sc2::ABILITY_ID::RESEARCH_ZERGLINGMETABOLICBOOST) - .value("RESEARCH_ZERGMELEEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONS) - .value("RESEARCH_ZERGMELEEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL1) - .value("RESEARCH_ZERGMELEEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL2) - .value("RESEARCH_ZERGMELEEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL3) - .value("RESEARCH_ZERGMISSILEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONS) - .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL1) - .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL2) - .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL3) - .value("SCAN_MOVE", sc2::ABILITY_ID::SCAN_MOVE) - .value("STOP", sc2::ABILITY_ID::STOP) - .value("STOP_BUILDING", sc2::ABILITY_ID::STOP_BUILDING) - .value("STOP_CHEER", sc2::ABILITY_ID::STOP_CHEER) - .value("STOP_DANCE", sc2::ABILITY_ID::STOP_DANCE) - .value("STOP_REDIRECT", sc2::ABILITY_ID::STOP_REDIRECT) - .value("STOP_STOP", sc2::ABILITY_ID::STOP_STOP) - .value("TRAINWARP_ADEPT", sc2::ABILITY_ID::TRAINWARP_ADEPT) - .value("TRAINWARP_DARKTEMPLAR", sc2::ABILITY_ID::TRAINWARP_DARKTEMPLAR) - .value("TRAINWARP_HIGHTEMPLAR", sc2::ABILITY_ID::TRAINWARP_HIGHTEMPLAR) - .value("TRAINWARP_SENTRY", sc2::ABILITY_ID::TRAINWARP_SENTRY) - .value("TRAINWARP_STALKER", sc2::ABILITY_ID::TRAINWARP_STALKER) - .value("TRAINWARP_ZEALOT", sc2::ABILITY_ID::TRAINWARP_ZEALOT) - .value("TRAIN_ADEPT", sc2::ABILITY_ID::TRAIN_ADEPT) - .value("TRAIN_BANELING", sc2::ABILITY_ID::TRAIN_BANELING) - .value("TRAIN_BANSHEE", sc2::ABILITY_ID::TRAIN_BANSHEE) - .value("TRAIN_BATTLECRUISER", sc2::ABILITY_ID::TRAIN_BATTLECRUISER) - .value("TRAIN_CARRIER", sc2::ABILITY_ID::TRAIN_CARRIER) - .value("TRAIN_COLOSSUS", sc2::ABILITY_ID::TRAIN_COLOSSUS) - .value("TRAIN_CORRUPTOR", sc2::ABILITY_ID::TRAIN_CORRUPTOR) - .value("TRAIN_CYCLONE", sc2::ABILITY_ID::TRAIN_CYCLONE) - .value("TRAIN_DARKTEMPLAR", sc2::ABILITY_ID::TRAIN_DARKTEMPLAR) - .value("TRAIN_DISRUPTOR", sc2::ABILITY_ID::TRAIN_DISRUPTOR) - .value("TRAIN_DRONE", sc2::ABILITY_ID::TRAIN_DRONE) - .value("TRAIN_GHOST", sc2::ABILITY_ID::TRAIN_GHOST) - .value("TRAIN_HELLBAT", sc2::ABILITY_ID::TRAIN_HELLBAT) - .value("TRAIN_HELLION", sc2::ABILITY_ID::TRAIN_HELLION) - .value("TRAIN_HIGHTEMPLAR", sc2::ABILITY_ID::TRAIN_HIGHTEMPLAR) - .value("TRAIN_HYDRALISK", sc2::ABILITY_ID::TRAIN_HYDRALISK) - .value("TRAIN_IMMORTAL", sc2::ABILITY_ID::TRAIN_IMMORTAL) - .value("TRAIN_INFESTOR", sc2::ABILITY_ID::TRAIN_INFESTOR) - .value("TRAIN_LIBERATOR", sc2::ABILITY_ID::TRAIN_LIBERATOR) - .value("TRAIN_MARAUDER", sc2::ABILITY_ID::TRAIN_MARAUDER) - .value("TRAIN_MARINE", sc2::ABILITY_ID::TRAIN_MARINE) - .value("TRAIN_MEDIVAC", sc2::ABILITY_ID::TRAIN_MEDIVAC) - .value("TRAIN_MOTHERSHIP", sc2::ABILITY_ID::TRAIN_MOTHERSHIP) - .value("TRAIN_MOTHERSHIPCORE", sc2::ABILITY_ID::TRAIN_MOTHERSHIPCORE) - .value("TRAIN_MUTALISK", sc2::ABILITY_ID::TRAIN_MUTALISK) - .value("TRAIN_OBSERVER", sc2::ABILITY_ID::TRAIN_OBSERVER) - .value("TRAIN_ORACLE", sc2::ABILITY_ID::TRAIN_ORACLE) - .value("TRAIN_OVERLORD", sc2::ABILITY_ID::TRAIN_OVERLORD) - .value("TRAIN_PHOENIX", sc2::ABILITY_ID::TRAIN_PHOENIX) - .value("TRAIN_PROBE", sc2::ABILITY_ID::TRAIN_PROBE) - .value("TRAIN_QUEEN", sc2::ABILITY_ID::TRAIN_QUEEN) - .value("TRAIN_RAVEN", sc2::ABILITY_ID::TRAIN_RAVEN) - .value("TRAIN_REAPER", sc2::ABILITY_ID::TRAIN_REAPER) - .value("TRAIN_ROACH", sc2::ABILITY_ID::TRAIN_ROACH) - .value("TRAIN_SCV", sc2::ABILITY_ID::TRAIN_SCV) - .value("TRAIN_SENTRY", sc2::ABILITY_ID::TRAIN_SENTRY) - .value("TRAIN_SIEGETANK", sc2::ABILITY_ID::TRAIN_SIEGETANK) - .value("TRAIN_STALKER", sc2::ABILITY_ID::TRAIN_STALKER) - .value("TRAIN_SWARMHOST", sc2::ABILITY_ID::TRAIN_SWARMHOST) - .value("TRAIN_TEMPEST", sc2::ABILITY_ID::TRAIN_TEMPEST) - .value("TRAIN_THOR", sc2::ABILITY_ID::TRAIN_THOR) - .value("TRAIN_ULTRALISK", sc2::ABILITY_ID::TRAIN_ULTRALISK) - .value("TRAIN_VIKINGFIGHTER", sc2::ABILITY_ID::TRAIN_VIKINGFIGHTER) - .value("TRAIN_VIPER", sc2::ABILITY_ID::TRAIN_VIPER) - .value("TRAIN_VOIDRAY", sc2::ABILITY_ID::TRAIN_VOIDRAY) - .value("TRAIN_WARPPRISM", sc2::ABILITY_ID::TRAIN_WARPPRISM) - .value("TRAIN_WIDOWMINE", sc2::ABILITY_ID::TRAIN_WIDOWMINE) - .value("TRAIN_ZEALOT", sc2::ABILITY_ID::TRAIN_ZEALOT) - .value("TRAIN_ZERGLING", sc2::ABILITY_ID::TRAIN_ZERGLING) - .value("UNLOADALL", sc2::ABILITY_ID::UNLOADALL) - .value("UNLOADALLAT", sc2::ABILITY_ID::UNLOADALLAT) - .value("UNLOADALLAT_MEDIVAC", sc2::ABILITY_ID::UNLOADALLAT_MEDIVAC) - .value("UNLOADALLAT_OVERLORD", sc2::ABILITY_ID::UNLOADALLAT_OVERLORD) - .value("UNLOADALLAT_WARPPRISM", sc2::ABILITY_ID::UNLOADALLAT_WARPPRISM) - .value("UNLOADALL_BUNKER", sc2::ABILITY_ID::UNLOADALL_BUNKER) - .value("UNLOADALL_COMMANDCENTER", sc2::ABILITY_ID::UNLOADALL_COMMANDCENTER) - .value("UNLOADALL_NYDASNETWORK", sc2::ABILITY_ID::UNLOADALL_NYDASNETWORK) - .value("UNLOADALL_NYDUSWORM", sc2::ABILITY_ID::UNLOADALL_NYDUSWORM) - .value("UNLOADUNIT_BUNKER", sc2::ABILITY_ID::UNLOADUNIT_BUNKER) - .value("UNLOADUNIT_COMMANDCENTER", sc2::ABILITY_ID::UNLOADUNIT_COMMANDCENTER) - .value("UNLOADUNIT_MEDIVAC", sc2::ABILITY_ID::UNLOADUNIT_MEDIVAC) - .value("UNLOADUNIT_NYDASNETWORK", sc2::ABILITY_ID::UNLOADUNIT_NYDASNETWORK) - .value("UNLOADUNIT_OVERLORD", sc2::ABILITY_ID::UNLOADUNIT_OVERLORD) - .value("UNLOADUNIT_WARPPRISM", sc2::ABILITY_ID::UNLOADUNIT_WARPPRISM); + .value("HEAL_MEDICHEAL", sc2::ABILITY_ID::HEAL_MEDICHEAL) + .value("HELIOSCRASHMORPH_CRASHMORPH", sc2::ABILITY_ID::HELIOSCRASHMORPH_CRASHMORPH) + .value("HERCULESLAND", sc2::ABILITY_ID::HERCULESLAND) + .value("HERCULESLIFTOFF_LIFT", sc2::ABILITY_ID::HERCULESLIFTOFF_LIFT) + .value("HERCULESTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::HERCULESTRANSPORT_MEDIVACLOAD) + .value("HERCULESTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::HERCULESTRANSPORT_MEDIVACUNLOADALL) + .value("HERDINTERACT_HERD", sc2::ABILITY_ID::HERDINTERACT_HERD) + .value("HEROARMNUKE_NUKEARM", sc2::ABILITY_ID::HEROARMNUKE_NUKEARM) + .value("HERONUCLEARSTRIKE_CANCEL", sc2::ABILITY_ID::HERONUCLEARSTRIKE_CANCEL) + .value("HOLDFIRE", sc2::ABILITY_ID::HOLDFIRE) + .value("HOLDFIRE_STOPSPECIAL", sc2::ABILITY_ID::HOLDFIRE_STOPSPECIAL) + .value("HUTTRANSPORT_HUTLOAD", sc2::ABILITY_ID::HUTTRANSPORT_HUTLOAD) + .value("HUTTRANSPORT_HUTUNLOADALL", sc2::ABILITY_ID::HUTTRANSPORT_HUTUNLOADALL) + .value("HYBRIDBLINK_ZERATULBLINK", sc2::ABILITY_ID::HYBRIDBLINK_ZERATULBLINK) + .value("HYBRIDCPLASMABLAST", sc2::ABILITY_ID::HYBRIDCPLASMABLAST) + .value("HYBRIDFAOESTUN", sc2::ABILITY_ID::HYBRIDFAOESTUN) + .value("HYPERIONYAMATOSPECIAL_HYPERIONYAMATOGUN", sc2::ABILITY_ID::HYPERIONYAMATOSPECIAL_HYPERIONYAMATOGUN) + .value("IMPALE", sc2::ABILITY_ID::IMPALE) + .value("IMPLOSION", sc2::ABILITY_ID::IMPLOSION) + .value("INFESTABLEHUTTRANSPORT_HUTLOAD", sc2::ABILITY_ID::INFESTABLEHUTTRANSPORT_HUTLOAD) + .value("INFESTABLEHUTTRANSPORT_HUTUNLOADALL", sc2::ABILITY_ID::INFESTABLEHUTTRANSPORT_HUTUNLOADALL) + .value("INFESTEDVENTSPAWNBROODLORD_SPAWNBROODLORD", sc2::ABILITY_ID::INFESTEDVENTSPAWNBROODLORD_SPAWNBROODLORD) + .value("INFESTEDVENTSPAWNCORRUPTOR_SPAWNCORRUPTOR", sc2::ABILITY_ID::INFESTEDVENTSPAWNCORRUPTOR_SPAWNCORRUPTOR) + .value("INFESTEDVENTSPAWNMUTALISK_LEVIATHANSPAWNMUTALISK", sc2::ABILITY_ID::INFESTEDVENTSPAWNMUTALISK_LEVIATHANSPAWNMUTALISK) + .value("INFESTORENSNARE", sc2::ABILITY_ID::INFESTORENSNARE) + .value("INVULNERABILITYSHIELD", sc2::ABILITY_ID::INVULNERABILITYSHIELD) + .value("IRRADIATE", sc2::ABILITY_ID::IRRADIATE) + .value("IRRADIATE_CANCEL", sc2::ABILITY_ID::IRRADIATE_CANCEL) + .value("KARASSPLASMASURGE", sc2::ABILITY_ID::KARASSPLASMASURGE) + .value("LAND", sc2::ABILITY_ID::LAND) + .value("LAND_BARRACKS", sc2::ABILITY_ID::LAND_BARRACKS) + .value("LAND_COMMANDCENTER", sc2::ABILITY_ID::LAND_COMMANDCENTER) + .value("LAND_FACTORY", sc2::ABILITY_ID::LAND_FACTORY) + .value("LAND_ORBITALCOMMAND", sc2::ABILITY_ID::LAND_ORBITALCOMMAND) + .value("LAND_STARPORT", sc2::ABILITY_ID::LAND_STARPORT) + .value("LEECH", sc2::ABILITY_ID::LEECH) + .value("LEECHRESOURCES_CANCEL", sc2::ABILITY_ID::LEECHRESOURCES_CANCEL) + .value("LEVIATHANSPAWNBROODLORD_SPAWNBROODLORD", sc2::ABILITY_ID::LEVIATHANSPAWNBROODLORD_SPAWNBROODLORD) + .value("LEVIATHANSPAWNMUTALISK", sc2::ABILITY_ID::LEVIATHANSPAWNMUTALISK) + .value("LIBERATORMORPHTOAA_LIBERATORAAMODE", sc2::ABILITY_ID::LIBERATORMORPHTOAA_LIBERATORAAMODE) + .value("LIBERATORMORPHTOAG_LIBERATORAGMODE", sc2::ABILITY_ID::LIBERATORMORPHTOAG_LIBERATORAGMODE) + .value("LIBRARYDOWN", sc2::ABILITY_ID::LIBRARYDOWN) + .value("LIBRARYUP", sc2::ABILITY_ID::LIBRARYUP) + .value("LIFT", sc2::ABILITY_ID::LIFT) + .value("LIFT_BARRACKS", sc2::ABILITY_ID::LIFT_BARRACKS) + .value("LIFT_COMMANDCENTER", sc2::ABILITY_ID::LIFT_COMMANDCENTER) + .value("LIFT_FACTORY", sc2::ABILITY_ID::UNLOADALL_NYDASNETWORK) + .value("LIFT_ORBITALCOMMAND", sc2::ABILITY_ID::LIFT_ORBITALCOMMAND) + .value("LIFT_STARPORT", sc2::ABILITY_ID::LIFT_STARPORT) + .value("LIGHTBRIDGEOFF", sc2::ABILITY_ID::LIGHTBRIDGEOFF) + .value("LIGHTBRIDGEOFFTOPRIGHT_LIGHTBRIDGEOFF", sc2::ABILITY_ID::LIGHTBRIDGEOFFTOPRIGHT_LIGHTBRIDGEOFF) + .value("LIGHTBRIDGEON", sc2::ABILITY_ID::LIGHTBRIDGEON) + .value("LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON", sc2::ABILITY_ID::LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON) + .value("LIGHTNINGBOMB", sc2::ABILITY_ID::LIGHTNINGBOMB) + .value("LIGHTOFAIUR", sc2::ABILITY_ID::LIGHTOFAIUR) + .value("LOAD", sc2::ABILITY_ID::LOAD) + .value("LOADALL", sc2::ABILITY_ID::LOADALL) + .value("LOADALL_COMMANDCENTER", sc2::ABILITY_ID::LOADALL_COMMANDCENTER) + .value("LOAD_BUNKER", sc2::ABILITY_ID::LOAD_BUNKER) + .value("LOAD_MEDIVAC", sc2::ABILITY_ID::LOAD_MEDIVAC) + .value("LOAD_NYDUSNETWORK", sc2::ABILITY_ID::LOAD_NYDUSNETWORK) + .value("LOAD_NYDUSWORM", sc2::ABILITY_ID::LOAD_NYDUSWORM) + .value("LOAD_OVERLORD", sc2::ABILITY_ID::LOAD_OVERLORD) + .value("LOAD_WARPPRISM", sc2::ABILITY_ID::LOAD_WARPPRISM) + .value("LOCKONAIR", sc2::ABILITY_ID::LOCKONAIR) + .value("LOCUSTMPFLYINGMORPHTOGROUND_LOCUSTMPFLYINGSWOOP", sc2::ABILITY_ID::LOCUSTMPFLYINGMORPHTOGROUND_LOCUSTMPFLYINGSWOOP) + .value("LOCUSTMPFLYINGSWOOPATTACK_LOCUSTMPFLYINGSWOOP", sc2::ABILITY_ID::LOCUSTMPFLYINGSWOOPATTACK_LOCUSTMPFLYINGSWOOP) + .value("LOCUSTMPMORPHTOAIR_LOCUSTMPFLYINGSWOOP", sc2::ABILITY_ID::LOCUSTMPMORPHTOAIR_LOCUSTMPFLYINGSWOOP) + .value("LOKIMISSILEPODS_MISSILEPODS", sc2::ABILITY_ID::LOKIMISSILEPODS_MISSILEPODS) + .value("LOKIUNDOCK_LIFT", sc2::ABILITY_ID::LOKIUNDOCK_LIFT) + .value("LOKIYAMATO_LOKIYAMATOGUN", sc2::ABILITY_ID::LOKIYAMATO_LOKIYAMATOGUN) + .value("LURKERASPECTFROMHYDRALISKBURROWED_CANCEL", sc2::ABILITY_ID::LURKERASPECTFROMHYDRALISKBURROWED_CANCEL) + .value("LURKERASPECTFROMHYDRALISKBURROWED_LURKERFROMHYDRALISKBURROWED", sc2::ABILITY_ID::LURKERASPECTFROMHYDRALISKBURROWED_LURKERFROMHYDRALISKBURROWED) + .value("LURKERASPECTMPFROMHYDRALISKBURROWED_CANCEL", sc2::ABILITY_ID::LURKERASPECTMPFROMHYDRALISKBURROWED_CANCEL) + .value("LURKERASPECTMPFROMHYDRALISKBURROWED_LURKERMPFROMHYDRALISKBURROWED", sc2::ABILITY_ID::LURKERASPECTMPFROMHYDRALISKBURROWED_LURKERMPFROMHYDRALISKBURROWED) + .value("LURKERASPECTMP_CANCEL", sc2::ABILITY_ID::LURKERASPECTMP_CANCEL) + .value("LURKERASPECTMP_LURKERMP", sc2::ABILITY_ID::LURKERASPECTMP_LURKERMP) + .value("LURKERASPECT_CANCEL", sc2::ABILITY_ID::LURKERASPECT_CANCEL) + .value("LURKERASPECT_LURKER", sc2::ABILITY_ID::LURKERASPECT_LURKER) + .value("LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON", sc2::ABILITY_ID::LIGHTBRIDGEONTOPRIGHT_LIGHTBRIDGEON) + .value("MAKEVULTURESPIDERMINES_SPIDERMINEREPLENISH", sc2::ABILITY_ID::MAKEVULTURESPIDERMINES_SPIDERMINEREPLENISH) + .value("MASSIVEKNOCKOVER", sc2::ABILITY_ID::MASSIVEKNOCKOVER) + .value("MAXIUMTHRUST_MAXIMUMTHRUST", sc2::ABILITY_ID::MAXIUMTHRUST_MAXIMUMTHRUST) + .value("MERGEABLE_CANCEL", sc2::ABILITY_ID::MERGEABLE_CANCEL) + .value("METALGATEDIAGONALBLURLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATEDIAGONALBLURLOWERED_GATEOPEN) + .value("METALGATEDIAGONALBLUR_GATECLOSE", sc2::ABILITY_ID::METALGATEDIAGONALBLUR_GATECLOSE) + .value("METALGATEDIAGONALULBRLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATEDIAGONALULBRLOWERED_GATEOPEN) + .value("METALGATEDIAGONALULBR_GATECLOSE", sc2::ABILITY_ID::METALGATEDIAGONALULBR_GATECLOSE) + .value("METALGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN) + .value("METALGATESTRAIGHTHORIZONTALBF_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTALBF_GATECLOSE) + .value("METALGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN) + .value("METALGATESTRAIGHTHORIZONTAL_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTHORIZONTAL_GATECLOSE) + .value("METALGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN) + .value("METALGATESTRAIGHTVERTICALLF_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICALLF_GATECLOSE) + .value("METALGATESTRAIGHTVERTICALLOWERED_GATEOPEN", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICALLOWERED_GATEOPEN) + .value("METALGATESTRAIGHTVERTICAL_GATECLOSE", sc2::ABILITY_ID::METALGATESTRAIGHTVERTICAL_GATECLOSE) + .value("MINDBLAST", sc2::ABILITY_ID::MINDBLAST) + .value("MINDCONTROL", sc2::ABILITY_ID::MINDCONTROL) + .value("MISSILEPODS", sc2::ABILITY_ID::MISSILEPODS) + .value("MORPH_ARCHON", sc2::ABILITY_ID::MORPH_ARCHON) + .value("MORPH_BANELING", sc2::ABILITY_ID::MORPH_BANELING) + .value("MORPH_BROODLORD", sc2::ABILITY_ID::MORPH_BROODLORD) + .value("MORPH_CANCEL", sc2::ABILITY_ID::MORPH_CANCEL) + .value("MORPH_GATEWAY", sc2::ABILITY_ID::MORPH_GATEWAY) + .value("MORPH_GREATERSPIRE", sc2::ABILITY_ID::MORPH_GREATERSPIRE) + .value("MORPH_HELLBAT", sc2::ABILITY_ID::MORPH_HELLBAT) + .value("MORPH_HELLION", sc2::ABILITY_ID::MORPH_HELLION) + .value("MORPH_HIVE", sc2::ABILITY_ID::MORPH_HIVE) + .value("MORPH_LAIR", sc2::ABILITY_ID::MORPH_LAIR) + .value("MORPH_LIBERATORAAMODE", sc2::ABILITY_ID::MORPH_LIBERATORAAMODE) + .value("MORPH_LIBERATORAGMODE", sc2::ABILITY_ID::MORPH_LIBERATORAGMODE) + .value("MORPH_LURKER", sc2::ABILITY_ID::MORPH_LURKER) + .value("MORPH_LURKERDEN", sc2::ABILITY_ID::MORPH_LURKERDEN) + .value("MORPH_MORPHTODEVOURERMP", sc2::ABILITY_ID::MORPH_MORPHTODEVOURERMP) + .value("MORPH_MORPHTOGUARDIANMP", sc2::ABILITY_ID::MORPH_MORPHTOGUARDIANMP) + .value("MORPH_MORPHTOINFESTEDCIVILIAN", sc2::ABILITY_ID::MORPH_MORPHTOINFESTEDCIVILIAN) + .value("MORPH_MOTHERSHIP", sc2::ABILITY_ID::MORPH_MOTHERSHIP) + .value("MORPH_MOVE", sc2::ABILITY_ID::MORPH_MOVE) + .value("MORPH_OBSERVERMODE", sc2::ABILITY_ID::MORPH_OBSERVERMODE) + .value("MORPH_ORBITALCOMMAND", sc2::ABILITY_ID::MORPH_ORBITALCOMMAND) + .value("MORPH_OVERLORDTRANSPORT", sc2::ABILITY_ID::MORPH_OVERLORDTRANSPORT) + .value("MORPH_OVERSEER", sc2::ABILITY_ID::MORPH_OVERSEER) + .value("MORPH_OVERSEERMODE", sc2::ABILITY_ID::MORPH_OVERSEERMODE) + .value("MORPH_OVERSIGHTMODE", sc2::ABILITY_ID::MORPH_OVERSIGHTMODE) + .value("MORPH_PLANETARYFORTRESS", sc2::ABILITY_ID::MORPH_PLANETARYFORTRESS) + .value("MORPH_RAVAGER", sc2::ABILITY_ID::MORPH_RAVAGER) + .value("MORPH_ROOT", sc2::ABILITY_ID::MORPH_ROOT) + .value("MORPH_SIEGEMODE", sc2::ABILITY_ID::MORPH_SIEGEMODE) + .value("MORPH_SPINECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERROOT) + .value("MORPH_SPINECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPINECRAWLERUPROOT) + .value("MORPH_SPORECRAWLERROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERROOT) + .value("MORPH_SPORECRAWLERUPROOT", sc2::ABILITY_ID::MORPH_SPORECRAWLERUPROOT) + .value("MORPH_SUPPLYDEPOT_LOWER", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_LOWER) + .value("MORPH_SUPPLYDEPOT_RAISE", sc2::ABILITY_ID::MORPH_SUPPLYDEPOT_RAISE) + .value("MORPH_SURVEILLANCEMODE", sc2::ABILITY_ID::MORPH_SURVEILLANCEMODE) + .value("MORPH_THOREXPLOSIVEMODE", sc2::ABILITY_ID::MORPH_THOREXPLOSIVEMODE) + .value("MORPH_THORHIGHIMPACTMODE", sc2::ABILITY_ID::MORPH_THORHIGHIMPACTMODE) + .value("MORPH_UNSIEGE", sc2::ABILITY_ID::MORPH_UNSIEGE) + .value("MORPH_UPROOT", sc2::ABILITY_ID::MORPH_UPROOT) + .value("MORPH_VIKINGASSAULTMODE", sc2::ABILITY_ID::MORPH_VIKINGASSAULTMODE) + .value("MORPH_VIKINGFIGHTERMODE", sc2::ABILITY_ID::MORPH_VIKINGFIGHTERMODE) + .value("MORPH_WARPGATE", sc2::ABILITY_ID::MORPH_WARPGATE) + .value("MORPH_WARPPRISMPHASINGMODE", sc2::ABILITY_ID::MORPH_WARPPRISMPHASINGMODE) + .value("MORPH_WARPPRISMTRANSPORTMODE", sc2::ABILITY_ID::MORPH_WARPPRISMTRANSPORTMODE) + .value("MOTHERSHIPCOREENERGIZE", sc2::ABILITY_ID::MOTHERSHIPCOREENERGIZE) + .value("MOTHERSHIPCOREENERGIZE_CANCEL", sc2::ABILITY_ID::MOTHERSHIPCOREENERGIZE_CANCEL) + .value("MOTHERSHIPCOREPURIFYNEXUSCANCEL_CANCEL", sc2::ABILITY_ID::MOTHERSHIPCOREPURIFYNEXUSCANCEL_CANCEL) + .value("MOTHERSHIPCORETELEPORT", sc2::ABILITY_ID::MOTHERSHIPCORETELEPORT) + .value("MOTHERSHIPCOREWEAPON_MOTHERSHIPSTASIS", sc2::ABILITY_ID::MOTHERSHIPCOREWEAPON_MOTHERSHIPSTASIS) + .value("MOTHERSHIPSTASIS", sc2::ABILITY_ID::MOTHERSHIPSTASIS) + .value("MOVE_ACQUIREMOVE", sc2::ABILITY_ID::MOVE_ACQUIREMOVE) + .value("MOVE_MOVE", sc2::ABILITY_ID::MOVE_MOVE) + .value("MOVE_MOVEHOLDPOSITION", sc2::ABILITY_ID::MOVE_MOVEHOLDPOSITION) + .value("MOVE_MOVEPATROL", sc2::ABILITY_ID::MOVE_MOVEPATROL) + .value("MOVE_TURN", sc2::ABILITY_ID::MOVE_TURN) + .value("NEXUSINVULNERABILITY", sc2::ABILITY_ID::NEXUSINVULNERABILITY) + .value("NEXUSPHASESHIFT", sc2::ABILITY_ID::NEXUSPHASESHIFT) + .value("NEXUSSHIELDOVERCHARGE", sc2::ABILITY_ID::NEXUSSHIELDOVERCHARGE) + .value("NEXUSSHIELDOVERCHARGEOFF", sc2::ABILITY_ID::NEXUSSHIELDOVERCHARGEOFF) + .value("NEXUSSHIELDRECHARGE", sc2::ABILITY_ID::NEXUSSHIELDRECHARGE) + .value("NEXUSSHIELDRECHARGEONPYLON", sc2::ABILITY_ID::NEXUSSHIELDRECHARGEONPYLON) + .value("NOVASNIPE", sc2::ABILITY_ID::NOVASNIPE) + .value("OBLITERATE", sc2::ABILITY_ID::OBLITERATE) + .value("ODINBARRAGE", sc2::ABILITY_ID::ODINBARRAGE) + .value("ODINBARRAGE_CANCEL", sc2::ABILITY_ID::ODINBARRAGE_CANCEL) + .value("ODINNUCLEARSTRIKE_CANCEL", sc2::ABILITY_ID::ODINNUCLEARSTRIKE_CANCEL) + .value("ODINNUCLEARSTRIKE_ODINNUKECALLDOWN", sc2::ABILITY_ID::ODINNUCLEARSTRIKE_ODINNUKECALLDOWN) + .value("ODINWRECKAGE_ODIN", sc2::ABILITY_ID::ODINWRECKAGE_ODIN) + .value("OMEGASTORM", sc2::ABILITY_ID::OMEGASTORM) + .value("ORACLECLOAKFIELD", sc2::ABILITY_ID::ORACLECLOAKFIELD) + .value("ORACLECLOAKINGFIELDTARGETED", sc2::ABILITY_ID::ORACLECLOAKINGFIELDTARGETED) + .value("ORACLENORMALMODE", sc2::ABILITY_ID::ORACLENORMALMODE) + .value("ORACLENORMALMODE_CANCEL", sc2::ABILITY_ID::ORACLENORMALMODE_CANCEL) + .value("ORACLEPHASESHIFT", sc2::ABILITY_ID::ORACLEPHASESHIFT) + .value("ORACLEREVELATIONMODE", sc2::ABILITY_ID::ORACLEREVELATIONMODE) + .value("ORACLEREVELATIONMODE_CANCEL", sc2::ABILITY_ID::ORACLEREVELATIONMODE_CANCEL) + .value("ORACLESTASISTRAPACTIVATE_ACTIVATESTASISWARD", sc2::ABILITY_ID::ORACLESTASISTRAPACTIVATE_ACTIVATESTASISWARD) + .value("ORACLESTASISTRAP_ORACLEBUILDSTASISTRAP", sc2::ABILITY_ID::ORACLESTASISTRAP_ORACLEBUILDSTASISTRAP) + .value("OVERCHARGE", sc2::ABILITY_ID::OVERCHARGE) + .value("PARKCOLONISTVEHICLE", sc2::ABILITY_ID::PARKCOLONISTVEHICLE) + .value("PENETRATINGSHOT", sc2::ABILITY_ID::PENETRATINGSHOT) + .value("PHASEMINEBLAST", sc2::ABILITY_ID::PHASEMINEBLAST) + .value("PHASESHIFT", sc2::ABILITY_ID::PHASESHIFT) + .value("PICKUP", sc2::ABILITY_ID::PICKUP) + .value("PICKUPARCADE_PICKUP", sc2::ABILITY_ID::PICKUPARCADE_PICKUP) + .value("PICKUPGAS100", sc2::ABILITY_ID::PICKUPGAS100) + .value("PICKUPMINERALS100", sc2::ABILITY_ID::PICKUPMINERALS100) + .value("PICKUPPALLETGAS", sc2::ABILITY_ID::PICKUPPALLETGAS) + .value("PICKUPPALLETMINERALS", sc2::ABILITY_ID::PICKUPPALLETMINERALS) + .value("PICKUPSCRAPLARGE", sc2::ABILITY_ID::PICKUPSCRAPLARGE) + .value("PICKUPSCRAPMEDIUM", sc2::ABILITY_ID::PICKUPSCRAPMEDIUM) + .value("PICKUPSCRAPSMALL", sc2::ABILITY_ID::PICKUPSCRAPSMALL) + .value("PORTCITY_BRIDGE_UNITE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITE12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITE8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITE8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITN10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITN10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITN12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITN12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITN8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITN8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITN8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITNE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITNE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNE12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITNE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNE8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNE8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITNW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNW10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITNW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNW12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITNW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNW8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITS10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITS10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITS12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITS12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITS8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITS8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITS8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITSE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITSE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITSE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITSE12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITSE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITSE8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSE8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITSW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITSW10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITSW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITSW12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITSW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITSW8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITSW8_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW10OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITW10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW10_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITW12_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW12_BRIDGERETRACT) + .value("PORTCITY_BRIDGE_UNITW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW8OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITW8_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITW8_BRIDGERETRACT) + .value("PROTOSSBUILDINGQUEUE_CANCELSLOT", sc2::ABILITY_ID::PROTOSSBUILDINGQUEUE_CANCELSLOT) + .value("PSIONICSHOCKWAVE", sc2::ABILITY_ID::PSIONICSHOCKWAVE) + .value("PSYTROUSOXIDE_PSYTROUSOXIDEOFF", sc2::ABILITY_ID::PSYTROUSOXIDE_PSYTROUSOXIDEOFF) + .value("PSYTROUSOXIDE_PSYTROUSOXIDEON", sc2::ABILITY_ID::PSYTROUSOXIDE_PSYTROUSOXIDEON) + .value("PULSARBEAM_RIPFIELD", sc2::ABILITY_ID::PULSARBEAM_RIPFIELD) + .value("PULSARCANNON", sc2::ABILITY_ID::PULSARCANNON) + .value("PURIFICATIONNOVA", sc2::ABILITY_ID::PURIFICATIONNOVA) + .value("PURIFICATIONNOVAMORPHBACK_PURIFICATIONNOVA", sc2::ABILITY_ID::PURIFICATIONNOVAMORPHBACK_PURIFICATIONNOVA) + .value("PURIFICATIONNOVAMORPH_PURIFICATIONNOVA", sc2::ABILITY_ID::PURIFICATIONNOVAMORPH_PURIFICATIONNOVA) + .value("PURIFIERPLANETCRACKER_PLANETCRACKER", sc2::ABILITY_ID::PURIFIERPLANETCRACKER_PLANETCRACKER) + .value("PURIFIERTOGGLEPOWER_PURIFIERPOWERDOWN", sc2::ABILITY_ID::PURIFIERTOGGLEPOWER_PURIFIERPOWERDOWN) + .value("PURIFIERTOGGLEPOWER_PURIFIERPOWERUP", sc2::ABILITY_ID::PURIFIERTOGGLEPOWER_PURIFIERPOWERUP) + .value("PURIFYMORPHPYLONBACK_MOTHERSHIPCOREWEAPON", sc2::ABILITY_ID::PURIFYMORPHPYLONBACK_MOTHERSHIPCOREWEAPON) + .value("PURIFYMORPHPYLON_MOTHERSHIPCOREWEAPON", sc2::ABILITY_ID::PURIFYMORPHPYLON_MOTHERSHIPCOREWEAPON) + .value("QUE5LONGBLEND_CANCEL", sc2::ABILITY_ID::QUE5LONGBLEND_CANCEL) + .value("QUE5LONGBLEND_CANCELSLOT", sc2::ABILITY_ID::QUE5LONGBLEND_CANCELSLOT) + .value("QUE8_CANCEL", sc2::ABILITY_ID::QUE8_CANCEL) + .value("QUE8_CANCELSLOT", sc2::ABILITY_ID::QUE8_CANCELSLOT) + .value("QUEENBUILD_CANCEL", sc2::ABILITY_ID::QUEENBUILD_CANCEL) + .value("QUEENFLY", sc2::ABILITY_ID::QUEENFLY) + .value("QUEENLAND", sc2::ABILITY_ID::QUEENLAND) + .value("QUEENMPENSNARE", sc2::ABILITY_ID::QUEENMPENSNARE) + .value("QUEENMPINFESTCOMMANDCENTER", sc2::ABILITY_ID::QUEENMPINFESTCOMMANDCENTER) + .value("QUEENMPSPAWNBROODLINGS", sc2::ABILITY_ID::QUEENMPSPAWNBROODLINGS) + .value("QUEENSHOCKWAVE", sc2::ABILITY_ID::QUEENSHOCKWAVE) + .value("RALLY_BUILDING", sc2::ABILITY_ID::RALLY_BUILDING) + .value("RALLY_COMMANDCENTER", sc2::ABILITY_ID::RALLY_COMMANDCENTER) + .value("RALLY_HATCHERY_UNITS", sc2::ABILITY_ID::RALLY_HATCHERY_UNITS) + .value("RALLY_HATCHERY_WORKERS", sc2::ABILITY_ID::RALLY_HATCHERY_WORKERS) + .value("RALLY_MORPHING_UNIT", sc2::ABILITY_ID::RALLY_MORPHING_UNIT) + .value("RALLY_NEXUS", sc2::ABILITY_ID::RALLY_NEXUS) + .value("RALLY_UNITS", sc2::ABILITY_ID::RALLY_UNITS) + .value("RALLY_WORKERS", sc2::ABILITY_ID::RALLY_WORKERS) + .value("RAVENBUILD_CANCEL", sc2::ABILITY_ID::RAVENBUILD_CANCEL) + .value("RAYNORC4_PLANTC4CHARGE", sc2::ABILITY_ID::RAYNORC4_PLANTC4CHARGE) + .value("RAYNORSNIPE", sc2::ABILITY_ID::RAYNORSNIPE) + .value("REDSTONELAVACRITTERBURROW_BURROWDOWN", sc2::ABILITY_ID::REDSTONELAVACRITTERBURROW_BURROWDOWN) + .value("REDSTONELAVACRITTERINJUREDBURROW_BURROWDOWN", sc2::ABILITY_ID::REDSTONELAVACRITTERINJUREDBURROW_BURROWDOWN) + .value("REDSTONELAVACRITTERINJUREDUNBURROW_BURROWUP", sc2::ABILITY_ID::REDSTONELAVACRITTERINJUREDUNBURROW_BURROWUP) + .value("REDSTONELAVACRITTERUNBURROW_BURROWUP", sc2::ABILITY_ID::REDSTONELAVACRITTERUNBURROW_BURROWUP) + .value("REFINERYTOAUTOMATEDREFINERY_RAISE", sc2::ABILITY_ID::REFINERYTOAUTOMATEDREFINERY_RAISE) + .value("RELEASEINTERCEPTORS", sc2::ABILITY_ID::RELEASEINTERCEPTORS) + .value("RELEASEMINION", sc2::ABILITY_ID::RELEASEMINION) + .value("RESEARCHLABTRANSPORT_HUTLOAD", sc2::ABILITY_ID::RESEARCHLABTRANSPORT_HUTLOAD) + .value("RESEARCHLABTRANSPORT_HUTUNLOADALL", sc2::ABILITY_ID::RESEARCHLABTRANSPORT_HUTUNLOADALL) + .value("RESEARCH_ADAPTIVETALONS", sc2::ABILITY_ID::RESEARCH_ADAPTIVETALONS) + .value("RESEARCH_ADEPTRESONATINGGLAIVES", sc2::ABILITY_ID::RESEARCH_ADEPTRESONATINGGLAIVES) + .value("RESEARCH_ADVANCEDBALLISTICS", sc2::ABILITY_ID::RESEARCH_ADVANCEDBALLISTICS) + .value("RESEARCH_AMPLIFIEDSHIELDING", sc2::ABILITY_ID::RESEARCH_AMPLIFIEDSHIELDING) + .value("RESEARCH_ANABOLICSYNTHESIS", sc2::ABILITY_ID::RESEARCH_ANABOLICSYNTHESIS) + .value("RESEARCH_ARMORPIERCINGROCKETS", sc2::ABILITY_ID::RESEARCH_ARMORPIERCINGROCKETS) + .value("RESEARCH_BALLISTICRANGE", sc2::ABILITY_ID::RESEARCH_BALLISTICRANGE) + .value("RESEARCH_BANSHEECLOAKINGFIELD", sc2::ABILITY_ID::RESEARCH_BANSHEECLOAKINGFIELD) + .value("RESEARCH_BANSHEEHYPERFLIGHTROTORS", sc2::ABILITY_ID::RESEARCH_BANSHEEHYPERFLIGHTROTORS) + .value("RESEARCH_BATTLECRUISERWEAPONREFIT", sc2::ABILITY_ID::RESEARCH_BATTLECRUISERWEAPONREFIT) + .value("RESEARCH_BLINK", sc2::ABILITY_ID::RESEARCH_BLINK) + .value("RESEARCH_BURROW", sc2::ABILITY_ID::RESEARCH_BURROW) + .value("RESEARCH_CENTRIFUGALHOOKS", sc2::ABILITY_ID::RESEARCH_CENTRIFUGALHOOKS) + .value("RESEARCH_CHARGE", sc2::ABILITY_ID::RESEARCH_CHARGE) + .value("RESEARCH_CHITINOUSPLATING", sc2::ABILITY_ID::RESEARCH_CHITINOUSPLATING) + .value("RESEARCH_COMBATSHIELD", sc2::ABILITY_ID::RESEARCH_COMBATSHIELD) + .value("RESEARCH_CONCUSSIVESHELLS", sc2::ABILITY_ID::RESEARCH_CONCUSSIVESHELLS) + .value("RESEARCH_CYCLONELOCKONDAMAGE", sc2::ABILITY_ID::RESEARCH_CYCLONELOCKONDAMAGE) + .value("RESEARCH_CYCLONERAPIDFIRELAUNCHERS", sc2::ABILITY_ID::RESEARCH_CYCLONERAPIDFIRELAUNCHERS) + .value("RESEARCH_DRILLINGCLAWS", sc2::ABILITY_ID::RESEARCH_DRILLINGCLAWS) + .value("RESEARCH_DURABLEMATERIALS", sc2::ABILITY_ID::RESEARCH_DURABLEMATERIALS) + .value("RESEARCH_ENHANCEDMUNITIONS", sc2::ABILITY_ID::RESEARCH_ENHANCEDMUNITIONS) + .value("RESEARCH_ENHANCEDSHOCKWAVES", sc2::ABILITY_ID::RESEARCH_ENHANCEDSHOCKWAVES) + .value("RESEARCH_EVOLVEAMORPHOUSARMORCLOUD", sc2::ABILITY_ID::RESEARCH_EVOLVEAMORPHOUSARMORCLOUD) + .value("RESEARCH_EVOLVEVENTRALSACKS", sc2::ABILITY_ID::RESEARCH_EVOLVEVENTRALSACKS) + .value("RESEARCH_EXTENDEDTHERMALLANCE", sc2::ABILITY_ID::RESEARCH_EXTENDEDTHERMALLANCE) + .value("RESEARCH_GHOSTENERGYUPGRADE", sc2::ABILITY_ID::RESEARCH_GHOSTENERGYUPGRADE) + .value("RESEARCH_GLIALREGENERATION", sc2::ABILITY_ID::RESEARCH_GLIALREGENERATION) + .value("RESEARCH_GRAVITICBOOSTER", sc2::ABILITY_ID::RESEARCH_GRAVITICBOOSTER) + .value("RESEARCH_GRAVITICDRIVE", sc2::ABILITY_ID::RESEARCH_GRAVITICDRIVE) + .value("RESEARCH_GROOVEDSPINES", sc2::ABILITY_ID::RESEARCH_GROOVEDSPINES) + .value("RESEARCH_HALLUCINATION", sc2::ABILITY_ID::RESEARCH_HALLUCINATION) + .value("RESEARCH_HIGHCAPACITYFUELTANKS", sc2::ABILITY_ID::RESEARCH_HIGHCAPACITYFUELTANKS) + .value("RESEARCH_HISECAUTOTRACKING", sc2::ABILITY_ID::RESEARCH_HISECAUTOTRACKING) + .value("RESEARCH_IMMORTALREVIVE", sc2::ABILITY_ID::RESEARCH_IMMORTALREVIVE) + .value("RESEARCH_INFERNALPREIGNITER", sc2::ABILITY_ID::RESEARCH_INFERNALPREIGNITER) + .value("RESEARCH_INTERCEPTORGRAVITONCATAPULT", sc2::ABILITY_ID::RESEARCH_INTERCEPTORGRAVITONCATAPULT) + .value("RESEARCH_INTERCEPTORLAUNCHSPEEDUPGRADE", sc2::ABILITY_ID::RESEARCH_INTERCEPTORLAUNCHSPEEDUPGRADE) + .value("RESEARCH_LIBERATORAGMODE", sc2::ABILITY_ID::RESEARCH_LIBERATORAGMODE) + .value("RESEARCH_LOCKONRANGEUPGRADE", sc2::ABILITY_ID::RESEARCH_LOCKONRANGEUPGRADE) + .value("RESEARCH_LOCUSTLIFETIMEINCREASE", sc2::ABILITY_ID::RESEARCH_LOCUSTLIFETIMEINCREASE) + .value("RESEARCH_LURKERRANGE", sc2::ABILITY_ID::RESEARCH_LURKERRANGE) + .value("RESEARCH_MEDIVACENERGYUPGRADE", sc2::ABILITY_ID::RESEARCH_MEDIVACENERGYUPGRADE) + .value("RESEARCH_MUSCULARAUGMENTS", sc2::ABILITY_ID::RESEARCH_MUSCULARAUGMENTS) + .value("RESEARCH_NEOSTEELFRAME", sc2::ABILITY_ID::RESEARCH_NEOSTEELFRAME) + .value("RESEARCH_NEURALPARASITE", sc2::ABILITY_ID::RESEARCH_NEURALPARASITE) + .value("RESEARCH_PATHOGENGLANDS", sc2::ABILITY_ID::RESEARCH_PATHOGENGLANDS) + .value("RESEARCH_PERSONALCLOAKING", sc2::ABILITY_ID::RESEARCH_PERSONALCLOAKING) + .value("RESEARCH_PHOENIXANIONPULSECRYSTALS", sc2::ABILITY_ID::RESEARCH_PHOENIXANIONPULSECRYSTALS) + .value("RESEARCH_PNEUMATIZEDCARAPACE", sc2::ABILITY_ID::RESEARCH_PNEUMATIZEDCARAPACE) + .value("RESEARCH_PROTOSSAIRARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMOR) + .value("RESEARCH_PROTOSSAIRARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL1) + .value("RESEARCH_PROTOSSAIRARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL2) + .value("RESEARCH_PROTOSSAIRARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRARMORLEVEL3) + .value("RESEARCH_PROTOSSAIRWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONS) + .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL1) + .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL2) + .value("RESEARCH_PROTOSSAIRWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSAIRWEAPONSLEVEL3) + .value("RESEARCH_PROTOSSGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMOR) + .value("RESEARCH_PROTOSSGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL1) + .value("RESEARCH_PROTOSSGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL2) + .value("RESEARCH_PROTOSSGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDARMORLEVEL3) + .value("RESEARCH_PROTOSSGROUNDWEAPONS", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONS) + .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL1) + .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL2) + .value("RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSGROUNDWEAPONSLEVEL3) + .value("RESEARCH_PROTOSSSHIELDS", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDS) + .value("RESEARCH_PROTOSSSHIELDSLEVEL1", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL1) + .value("RESEARCH_PROTOSSSHIELDSLEVEL2", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL2) + .value("RESEARCH_PROTOSSSHIELDSLEVEL3", sc2::ABILITY_ID::RESEARCH_PROTOSSSHIELDSLEVEL3) + .value("RESEARCH_PSIONICAMPLIFIERS", sc2::ABILITY_ID::RESEARCH_PSIONICAMPLIFIERS) + .value("RESEARCH_PSIONICSURGE", sc2::ABILITY_ID::RESEARCH_PSIONICSURGE) + .value("RESEARCH_PSISTORM", sc2::ABILITY_ID::RESEARCH_PSISTORM) + .value("RESEARCH_RAPIDDEPLOYMENT", sc2::ABILITY_ID::RESEARCH_RAPIDDEPLOYMENT) + .value("RESEARCH_RAPIDREIGNITIONSYSTEM", sc2::ABILITY_ID::RESEARCH_RAPIDREIGNITIONSYSTEM) + .value("RESEARCH_RAVENCORVIDREACTOR", sc2::ABILITY_ID::RESEARCH_RAVENCORVIDREACTOR) + .value("RESEARCH_RAVENRECALIBRATEDEXPLOSIVES", sc2::ABILITY_ID::RESEARCH_RAVENRECALIBRATEDEXPLOSIVES) + .value("RESEARCH_REAPERSPEED", sc2::ABILITY_ID::RESEARCH_REAPERSPEED) + .value("RESEARCH_ROACHSUPPLY", sc2::ABILITY_ID::RESEARCH_ROACHSUPPLY) + .value("RESEARCH_SEEKERMISSILE", sc2::ABILITY_ID::RESEARCH_SEEKERMISSILE) + .value("RESEARCH_SHADOWSTRIKE", sc2::ABILITY_ID::RESEARCH_SHADOWSTRIKE) + .value("RESEARCH_SMARTSERVOS", sc2::ABILITY_ID::RESEARCH_SMARTSERVOS) + .value("RESEARCH_STIMPACK", sc2::ABILITY_ID::RESEARCH_STIMPACK) + .value("RESEARCH_TEMPESTRANGEUPGRADE", sc2::ABILITY_ID::RESEARCH_TEMPESTRANGEUPGRADE) + .value("RESEARCH_TERRANINFANTRYARMOR", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMOR) + .value("RESEARCH_TERRANINFANTRYARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL1) + .value("RESEARCH_TERRANINFANTRYARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL2) + .value("RESEARCH_TERRANINFANTRYARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYARMORLEVEL3) + .value("RESEARCH_TERRANINFANTRYWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONS) + .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL1) + .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL2) + .value("RESEARCH_TERRANINFANTRYWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANINFANTRYWEAPONSLEVEL3) + .value("RESEARCH_TERRANSHIPPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANSHIPPLATINGLEVEL1) + .value("RESEARCH_TERRANSHIPPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANSHIPPLATINGLEVEL2) + .value("RESEARCH_TERRANSHIPPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANSHIPPLATINGLEVEL3) + .value("RESEARCH_TERRANSHIPWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONS) + .value("RESEARCH_TERRANSHIPWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL1) + .value("RESEARCH_TERRANSHIPWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL2) + .value("RESEARCH_TERRANSHIPWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANSHIPWEAPONSLEVEL3) + .value("RESEARCH_TERRANSTRUCTUREARMORUPGRADE", sc2::ABILITY_ID::RESEARCH_TERRANSTRUCTUREARMORUPGRADE) + .value("RESEARCH_TERRANVEHICLEANDSHIPPLATING", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATING) + .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1) + .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2) + .value("RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3) + .value("RESEARCH_TERRANVEHICLEPLATINGLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEPLATINGLEVEL1) + .value("RESEARCH_TERRANVEHICLEPLATINGLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEPLATINGLEVEL2) + .value("RESEARCH_TERRANVEHICLEPLATINGLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEPLATINGLEVEL3) + .value("RESEARCH_TERRANVEHICLEWEAPONS", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONS) + .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL1) + .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL2) + .value("RESEARCH_TERRANVEHICLEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_TERRANVEHICLEWEAPONSLEVEL3) + .value("RESEARCH_TRANSFORMATIONSERVOS", sc2::ABILITY_ID::RESEARCH_TRANSFORMATIONSERVOS) + .value("RESEARCH_TUNNELINGCLAWS", sc2::ABILITY_ID::RESEARCH_TUNNELINGCLAWS) + .value("RESEARCH_VOIDRAYSPEEDUPGRADE", sc2::ABILITY_ID::RESEARCH_VOIDRAYSPEEDUPGRADE) + .value("RESEARCH_WARPGATE", sc2::ABILITY_ID::RESEARCH_WARPGATE) + .value("RESEARCH_ZERGFLYERARMOR", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMOR) + .value("RESEARCH_ZERGFLYERARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL1) + .value("RESEARCH_ZERGFLYERARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL2) + .value("RESEARCH_ZERGFLYERARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERARMORLEVEL3) + .value("RESEARCH_ZERGFLYERATTACK", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACK) + .value("RESEARCH_ZERGFLYERATTACKLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL1) + .value("RESEARCH_ZERGFLYERATTACKLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL2) + .value("RESEARCH_ZERGFLYERATTACKLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGFLYERATTACKLEVEL3) + .value("RESEARCH_ZERGGROUNDARMOR", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMOR) + .value("RESEARCH_ZERGGROUNDARMORLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL1) + .value("RESEARCH_ZERGGROUNDARMORLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL2) + .value("RESEARCH_ZERGGROUNDARMORLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGGROUNDARMORLEVEL3) + .value("RESEARCH_ZERGLINGADRENALGLANDS", sc2::ABILITY_ID::RESEARCH_ZERGLINGADRENALGLANDS) + .value("RESEARCH_ZERGLINGMETABOLICBOOST", sc2::ABILITY_ID::RESEARCH_ZERGLINGMETABOLICBOOST) + .value("RESEARCH_ZERGMELEEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONS) + .value("RESEARCH_ZERGMELEEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL1) + .value("RESEARCH_ZERGMELEEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL2) + .value("RESEARCH_ZERGMELEEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMELEEWEAPONSLEVEL3) + .value("RESEARCH_ZERGMISSILEWEAPONS", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONS) + .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL1", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL1) + .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL2", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL2) + .value("RESEARCH_ZERGMISSILEWEAPONSLEVEL3", sc2::ABILITY_ID::RESEARCH_ZERGMISSILEWEAPONSLEVEL3) + .value("RESTORESHIELDS", sc2::ABILITY_ID::RESTORESHIELDS) + .value("ROGUEGHOSTCLOAK_CLOAKOFF", sc2::ABILITY_ID::ROGUEGHOSTCLOAK_CLOAKOFF) + .value("ROGUEGHOSTCLOAK_CLOAKONSPECTRE", sc2::ABILITY_ID::ROGUEGHOSTCLOAK_CLOAKONSPECTRE) + .value("SALVAGEBANELINGREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEBANELINGREFUND_SALVAGE) + .value("SALVAGEBANELING_SALVAGE", sc2::ABILITY_ID::SALVAGEBANELING_SALVAGE) + .value("SALVAGEBUNKERREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEBUNKERREFUND_SALVAGE) + .value("SALVAGEBUNKER_SALVAGE", sc2::ABILITY_ID::SALVAGEBUNKER_SALVAGE) + .value("SALVAGEDRONEREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEDRONEREFUND_SALVAGE) + .value("SALVAGEDRONE_SALVAGE", sc2::ABILITY_ID::SALVAGEDRONE_SALVAGE) + .value("SALVAGEHYDRALISKREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEHYDRALISKREFUND_SALVAGE) + .value("SALVAGEHYDRALISK_SALVAGE", sc2::ABILITY_ID::SALVAGEHYDRALISK_SALVAGE) + .value("SALVAGEINFESTORREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEINFESTORREFUND_SALVAGE) + .value("SALVAGEINFESTOR_SALVAGE", sc2::ABILITY_ID::SALVAGEINFESTOR_SALVAGE) + .value("SALVAGEQUEENREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEQUEENREFUND_SALVAGE) + .value("SALVAGEQUEEN_SALVAGE", sc2::ABILITY_ID::SALVAGEQUEEN_SALVAGE) + .value("SALVAGEROACHREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEROACHREFUND_SALVAGE) + .value("SALVAGEROACH_SALVAGE", sc2::ABILITY_ID::SALVAGEROACH_SALVAGE) + .value("SALVAGESWARMHOSTREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGESWARMHOSTREFUND_SALVAGE) + .value("SALVAGESWARMHOST_SALVAGE", sc2::ABILITY_ID::SALVAGESWARMHOST_SALVAGE) + .value("SALVAGEULTRALISKREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEULTRALISKREFUND_SALVAGE) + .value("SALVAGEULTRALISK_SALVAGE", sc2::ABILITY_ID::SALVAGEULTRALISK_SALVAGE) + .value("SALVAGEZERGLINGREFUND_SALVAGE", sc2::ABILITY_ID::SALVAGEZERGLINGREFUND_SALVAGE) + .value("SALVAGEZERGLING_SALVAGE", sc2::ABILITY_ID::SALVAGEZERGLING_SALVAGE) + .value("SAPSTRUCTURE", sc2::ABILITY_ID::SAPSTRUCTURE) + .value("SCRYER", sc2::ABILITY_ID::SCRYER) + .value("SECURITYGATEDIAGONALBLURLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATEDIAGONALBLURLOWERED_GATEOPEN) + .value("SECURITYGATEDIAGONALBLUR_GATECLOSE", sc2::ABILITY_ID::SECURITYGATEDIAGONALBLUR_GATECLOSE) + .value("SECURITYGATEDIAGONALULBRLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATEDIAGONALULBRLOWERED_GATEOPEN) + .value("SECURITYGATEDIAGONALULBR_GATECLOSE", sc2::ABILITY_ID::SECURITYGATEDIAGONALULBR_GATECLOSE) + .value("SECURITYGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTALBFLOWERED_GATEOPEN) + .value("SECURITYGATESTRAIGHTHORIZONTALBF_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTALBF_GATECLOSE) + .value("SECURITYGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTALLOWERED_GATEOPEN) + .value("SECURITYGATESTRAIGHTHORIZONTAL_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTHORIZONTAL_GATECLOSE) + .value("SECURITYGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICALLFLOWERED_GATEOPEN) + .value("SECURITYGATESTRAIGHTVERTICALLF_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICALLF_GATECLOSE) + .value("SECURITYGATESTRAIGHTVERTICALLOWERED_GATEOPEN", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICALLOWERED_GATEOPEN) + .value("SECURITYGATESTRAIGHTVERTICAL_GATECLOSE", sc2::ABILITY_ID::SECURITYGATESTRAIGHTVERTICAL_GATECLOSE) + .value("SELENDISHANGAR_INTERCEPTOR", sc2::ABILITY_ID::SELENDISHANGAR_INTERCEPTOR) + .value("SELFREPAIR", sc2::ABILITY_ID::SELFREPAIR) + .value("SELFREPAIR_CANCEL", sc2::ABILITY_ID::SELFREPAIR_CANCEL) + .value("SENTRYGUNBURROW_BURROWTURRET", sc2::ABILITY_ID::SENTRYGUNBURROW_BURROWTURRET) + .value("SENTRYGUNUNBURROW_UNBURROWTURRET", sc2::ABILITY_ID::SENTRYGUNUNBURROW_UNBURROWTURRET) + .value("SHAKURASLIGHTBRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE10OUT_BRIDGEEXTEND) + .value("SHAKURASLIGHTBRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::PORTCITY_BRIDGE_UNITNW12OUT_BRIDGEEXTEND) + .value("PORTCITY_BRIDGE_UNITNW12_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE10_BRIDGERETRACT) + .value("SHAKURASLIGHTBRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE12OUT_BRIDGEEXTEND) + .value("SHAKURASLIGHTBRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE12_BRIDGERETRACT) + .value("SHAKURASLIGHTBRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE8OUT_BRIDGEEXTEND) + .value("SHAKURASLIGHTBRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENE8_BRIDGERETRACT) + .value("SHAKURASLIGHTBRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW10OUT_BRIDGEEXTEND) + .value("SHAKURASLIGHTBRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW10_BRIDGERETRACT) + .value("SHAKURASLIGHTBRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW12OUT_BRIDGEEXTEND) + .value("SHAKURASLIGHTBRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW12_BRIDGERETRACT) + .value("SHAKURASLIGHTBRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW8OUT_BRIDGEEXTEND) + .value("SHAKURASLIGHTBRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::SHAKURASLIGHTBRIDGENW8_BRIDGERETRACT) + .value("SINGLERECALL", sc2::ABILITY_ID::SINGLERECALL) + .value("SIPHON", sc2::ABILITY_ID::SIPHON) + .value("SIPHON_CANCEL", sc2::ABILITY_ID::SIPHON_CANCEL) + .value("SLAYNELEMENTALGRAB", sc2::ABILITY_ID::SLAYNELEMENTALGRAB) + .value("SMART", sc2::ABILITY_ID::SMART) + .value("SNIPE", sc2::ABILITY_ID::SNIPE) + .value("SNIPEDOT", sc2::ABILITY_ID::SNIPEDOT) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10OUT_BRIDGEEXTEND) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT10_BRIDGERETRACT) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8OUT_BRIDGEEXTEND) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENESHORT8_BRIDGERETRACT) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10OUT_BRIDGEEXTEND) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT10_BRIDGERETRACT) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8OUT_BRIDGEEXTEND) + .value("SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8_BRIDGERETRACT", sc2::ABILITY_ID::SNOWREFINERY_TERRAN_EXTENDINGBRIDGENWSHORT8_BRIDGERETRACT) + .value("SOULCHANNEL_CANCEL", sc2::ABILITY_ID::SOULCHANNEL_CANCEL) + .value("SPAWNINFESTEDTERRAN_LOCUSTMP", sc2::ABILITY_ID::SPAWNINFESTEDTERRAN_LOCUSTMP) + .value("SPECOPSDROPSHIPTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::SPECOPSDROPSHIPTRANSPORT_MEDIVACLOAD) + .value("SPECOPSDROPSHIPTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::SPECOPSDROPSHIPTRANSPORT_MEDIVACUNLOADALL) + .value("SPECTREHOLDFIRE", sc2::ABILITY_ID::SPECTREHOLDFIRE) + .value("SPECTRENUKESILOARMMAGAZINE_SPECTRENUKEARM", sc2::ABILITY_ID::SPECTRENUKESILOARMMAGAZINE_SPECTRENUKEARM) + .value("SPECTRENUKE_CANCEL", sc2::ABILITY_ID::SPECTRENUKE_CANCEL) + .value("SPECTRENUKE_SPECTRENUKECALLDOWN", sc2::ABILITY_ID::SPECTRENUKE_SPECTRENUKECALLDOWN) + .value("SPECTRESHIELD", sc2::ABILITY_ID::SPECTRESHIELD) + .value("SPECTREWEAPONSFREE_WEAPONSFREE", sc2::ABILITY_ID::SPECTREWEAPONSFREE_WEAPONSFREE) + .value("SPINECRAWLERUPROOT_CANCEL", sc2::ABILITY_ID::SPINECRAWLERUPROOT_CANCEL) + .value("SPORECRAWLERUPROOT_CANCEL", sc2::ABILITY_ID::SPORECRAWLERUPROOT_CANCEL) + .value("SS_BATTLECRUISERHUNTERSEEKERATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_BATTLECRUISERHUNTERSEEKERATTACK_SS_SHOOTING) + .value("SS_BATTLECRUISERMISSILEATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_BATTLECRUISERMISSILEATTACK_SS_SHOOTING) + .value("SS_CARRIERBOSSATTACKLAUNCH_SS_SHOOTING", sc2::ABILITY_ID::SS_CARRIERBOSSATTACKLAUNCH_SS_SHOOTING) + .value("SS_CARRIERBOSSATTACKTARGET_SS_SHOOTING", sc2::ABILITY_ID::SS_CARRIERBOSSATTACKTARGET_SS_SHOOTING) + .value("SS_CARRIERSPAWNINTERCEPTOR", sc2::ABILITY_ID::SS_CARRIERSPAWNINTERCEPTOR) + .value("SS_CORRUPTORATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_CORRUPTORATTACK_SS_SHOOTING) + .value("SS_FIGHTERBOMB", sc2::ABILITY_ID::SS_FIGHTERBOMB) + .value("SS_FIGHTERSHOOTING_SS_SHOOTING", sc2::ABILITY_ID::SS_FIGHTERSHOOTING_SS_SHOOTING) + .value("SS_INTERCEPTORATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_INTERCEPTORATTACK_SS_SHOOTING) + .value("SS_LEVIATHANSPAWNBOMBS", sc2::ABILITY_ID::SS_LEVIATHANSPAWNBOMBS) + .value("SS_LEVIATHANTENTACLEATTACKL1", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL1) + .value("SS_LEVIATHANTENTACLEATTACKL1NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL1NODELAY) + .value("SS_LEVIATHANTENTACLEATTACKL2", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL2) + .value("SS_LEVIATHANTENTACLEATTACKL2NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKL2NODELAY) + .value("SS_LEVIATHANTENTACLEATTACKR1", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR1) + .value("SS_LEVIATHANTENTACLEATTACKR1NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR1NODELAY) + .value("SS_LEVIATHANTENTACLEATTACKR2", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR2) + .value("SS_LEVIATHANTENTACLEATTACKR2NODELAY", sc2::ABILITY_ID::SS_LEVIATHANTENTACLEATTACKR2NODELAY) + .value("SS_PHOENIXSHOOTING_SS_SHOOTING", sc2::ABILITY_ID::SS_PHOENIXSHOOTING_SS_SHOOTING) + .value("SS_SCIENCEVESSELATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_SCIENCEVESSELATTACK_SS_SHOOTING) + .value("SS_SCIENCEVESSELTELEPORT_ZERATULBLINK", sc2::ABILITY_ID::SS_SCIENCEVESSELTELEPORT_ZERATULBLINK) + .value("SS_SCOUTATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_SCOUTATTACK_SS_SHOOTING) + .value("SS_SWARMGUARDIANATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_SWARMGUARDIANATTACK_SS_SHOOTING) + .value("SS_TERRATRONBEAMATTACK", sc2::ABILITY_ID::SS_TERRATRONBEAMATTACK) + .value("SS_TERRATRONSAWATTACK", sc2::ABILITY_ID::SS_TERRATRONSAWATTACK) + .value("SS_WRAITHATTACK_SS_SHOOTING", sc2::ABILITY_ID::SS_WRAITHATTACK_SS_SHOOTING) + .value("STARPORTREACTORMORPH_REACTOR", sc2::ABILITY_ID::STARPORTREACTORMORPH_REACTOR) + .value("STARPORTTECHLABMORPH_TECHLABSTARPORT", sc2::ABILITY_ID::STARPORTTECHLABMORPH_TECHLABSTARPORT) + .value("STARPORTTECHREACTORMORPH_TECHLABSTARPORT", sc2::ABILITY_ID::STARPORTTECHREACTORMORPH_TECHLABSTARPORT) + .value("STARTCOLONISTVEHICLE", sc2::ABILITY_ID::STARTCOLONISTVEHICLE) + .value("STOP", sc2::ABILITY_ID::STOP) + .value("STOPPROTOSSBUILDING_CHEER", sc2::ABILITY_ID::STOPPROTOSSBUILDING_CHEER) + .value("STOPPROTOSSBUILDING_DANCE", sc2::ABILITY_ID::STOPPROTOSSBUILDING_DANCE) + .value("STOPPROTOSSBUILDING_HOLDFIRE", sc2::ABILITY_ID::STOPPROTOSSBUILDING_HOLDFIRE) + .value("STOP_BATTLECRUISER", sc2::ABILITY_ID::STOP_BATTLECRUISER) + .value("STOP_BUILDING", sc2::ABILITY_ID::STOP_BUILDING) + .value("STOP_CHEER", sc2::ABILITY_ID::STOP_CHEER) + .value("STOP_DANCE", sc2::ABILITY_ID::STOP_DANCE) + .value("STOP_HOLDFIRESPECIAL", sc2::ABILITY_ID::STOP_HOLDFIRESPECIAL) + .value("STOP_REDIRECT", sc2::ABILITY_ID::STOP_REDIRECT) + .value("STOP_STOP", sc2::ABILITY_ID::STOP_STOP) + .value("SUMMONMERCENARIESPH_HIREKELMORIANMINERSPH", sc2::ABILITY_ID::SUMMONMERCENARIESPH_HIREKELMORIANMINERSPH) + .value("SUMMONMERCENARIES_HIREDEVILDOGS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREDEVILDOGS) + .value("SUMMONMERCENARIES_HIREDUKESREVENGE", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREDUKESREVENGE) + .value("SUMMONMERCENARIES_HIREDUSKWING", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREDUSKWING) + .value("SUMMONMERCENARIES_HIREHAMMERSECURITIES", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREHAMMERSECURITIES) + .value("SUMMONMERCENARIES_HIREHELSANGELS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREHELSANGELS) + .value("SUMMONMERCENARIES_HIREKELMORIANMINERS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIREKELMORIANMINERS) + .value("SUMMONMERCENARIES_HIRESIEGEBREAKERS", sc2::ABILITY_ID::SUMMONMERCENARIES_HIRESIEGEBREAKERS) + .value("SUMMONMERCENARIES_HIRESPARTANCOMPANY", sc2::ABILITY_ID::SUMMONMERCENARIES_HIRESPARTANCOMPANY) + .value("SWARMHOSTSPAWNLOCUSTS_LOCUSTMP", sc2::ABILITY_ID::SWARMHOSTSPAWNLOCUSTS_LOCUSTMP) + .value("TALDARIMVORTEX_VORTEX", sc2::ABILITY_ID::TALDARIMVORTEX_VORTEX) + .value("TAUNT", sc2::ABILITY_ID::TAUNT) + .value("TAURENOUTHOUSELIFTOFF_TAURENOUTHOUSEFLY", sc2::ABILITY_ID::TAURENOUTHOUSELIFTOFF_TAURENOUTHOUSEFLY) + .value("TAURENOUTHOUSETRANSPORT_LOADTAURENOUTHOUSE", sc2::ABILITY_ID::TAURENOUTHOUSETRANSPORT_LOADTAURENOUTHOUSE) + .value("TAURENOUTHOUSETRANSPORT_UNLOADTAURENOUTHOUSE", sc2::ABILITY_ID::TAURENOUTHOUSETRANSPORT_UNLOADTAURENOUTHOUSE) + .value("TAURENSTIMPACK_STIM", sc2::ABILITY_ID::TAURENSTIMPACK_STIM) + .value("TEMPLEDOORDOWN", sc2::ABILITY_ID::TEMPLEDOORDOWN) + .value("TEMPLEDOORDOWNURDL", sc2::ABILITY_ID::TEMPLEDOORDOWNURDL) + .value("TEMPLEDOORUP", sc2::ABILITY_ID::TEMPLEDOORUP) + .value("TEMPLEDOORUPURDL", sc2::ABILITY_ID::TEMPLEDOORUPURDL) + .value("TEMPORALRIFT", sc2::ABILITY_ID::TEMPORALRIFT) + .value("TERRANBUILDDROP_CANCEL", sc2::ABILITY_ID::TERRANBUILDDROP_CANCEL) + .value("TERRANBUILDDROP_SUPPLYDEPOTDROP", sc2::ABILITY_ID::TERRANBUILDDROP_SUPPLYDEPOTDROP) + .value("TESTHERODEBUGMISSILEABILITY", sc2::ABILITY_ID::TESTHERODEBUGMISSILEABILITY) + .value("TESTHERODEBUGTRACKINGABILITY", sc2::ABILITY_ID::TESTHERODEBUGTRACKINGABILITY) + .value("TESTHERODEBUGTRACKINGABILITY_CANCEL", sc2::ABILITY_ID::TESTHERODEBUGTRACKINGABILITY_CANCEL) + .value("TESTHEROGRAB_GRABZERGLING", sc2::ABILITY_ID::TESTHEROGRAB_GRABZERGLING) + .value("TESTHEROTHROW_THROWZERGLING", sc2::ABILITY_ID::TESTHEROTHROW_THROWZERGLING) + .value("TESTINTERACT_DESIGNATE", sc2::ABILITY_ID::TESTINTERACT_DESIGNATE) + .value("TESTLEARN", sc2::ABILITY_ID::TESTLEARN) + .value("TESTREVIVE_SCV", sc2::ABILITY_ID::TESTREVIVE_SCV) + .value("TESTZERG_CANCEL", sc2::ABILITY_ID::TESTZERG_CANCEL) + .value("THEMOROSDEVICE", sc2::ABILITY_ID::THEMOROSDEVICE) + .value("THORAPMODE_CANCEL", sc2::ABILITY_ID::THORAPMODE_CANCEL) + .value("THORREBORN_CANCEL", sc2::ABILITY_ID::THORREBORN_CANCEL) + .value("THORREBORN_THOR", sc2::ABILITY_ID::THORREBORN_THOR) + .value("THORWRECKAGE_THOR", sc2::ABILITY_ID::THORWRECKAGE_THOR) + .value("TIMESTOP", sc2::ABILITY_ID::TIMESTOP) + .value("TIMESTOP_CANCEL", sc2::ABILITY_ID::TIMESTOP_CANCEL) + .value("TORNADOMISSILE", sc2::ABILITY_ID::TORNADOMISSILE) + .value("TOSSGRENADE", sc2::ABILITY_ID::TOSSGRENADE) + .value("TRAINWARP_ADEPT", sc2::ABILITY_ID::TRAINWARP_ADEPT) + .value("TRAINWARP_DARKTEMPLAR", sc2::ABILITY_ID::TRAINWARP_DARKTEMPLAR) + .value("TRAINWARP_HIGHTEMPLAR", sc2::ABILITY_ID::TRAINWARP_HIGHTEMPLAR) + .value("TRAINWARP_SENTRY", sc2::ABILITY_ID::TRAINWARP_SENTRY) + .value("TRAINWARP_STALKER", sc2::ABILITY_ID::TRAINWARP_STALKER) + .value("TRAINWARP_ZEALOT", sc2::ABILITY_ID::TRAINWARP_ZEALOT) + .value("TRAIN_ADEPT", sc2::ABILITY_ID::TRAIN_ADEPT) + .value("TRAIN_ARCHON", sc2::ABILITY_ID::TRAIN_ARCHON) + .value("TRAIN_BANSHEE", sc2::ABILITY_ID::TRAIN_BANSHEE) + .value("TRAIN_BATTLECRUISER", sc2::ABILITY_ID::TRAIN_BATTLECRUISER) + .value("TRAIN_CARRIER", sc2::ABILITY_ID::TRAIN_CARRIER) + .value("TRAIN_COLOSSUS", sc2::ABILITY_ID::TRAIN_COLOSSUS) + .value("TRAIN_CORRUPTOR", sc2::ABILITY_ID::TRAIN_CORRUPTOR) + .value("TRAIN_CYCLONE", sc2::ABILITY_ID::TRAIN_CYCLONE) + .value("TRAIN_DARKTEMPLAR", sc2::ABILITY_ID::TRAIN_DARKTEMPLAR) + .value("TRAIN_DISRUPTOR", sc2::ABILITY_ID::TRAIN_DISRUPTOR) + .value("TRAIN_DRONE", sc2::ABILITY_ID::TRAIN_DRONE) + .value("TRAIN_GHOST", sc2::ABILITY_ID::TRAIN_GHOST) + .value("TRAIN_HELLBAT", sc2::ABILITY_ID::TRAIN_HELLBAT) + .value("TRAIN_HELLION", sc2::ABILITY_ID::TRAIN_HELLION) + .value("TRAIN_HIGHTEMPLAR", sc2::ABILITY_ID::TRAIN_HIGHTEMPLAR) + .value("TRAIN_HYDRALISK", sc2::ABILITY_ID::TRAIN_HYDRALISK) + .value("TRAIN_IMMORTAL", sc2::ABILITY_ID::TRAIN_IMMORTAL) + .value("TRAIN_INFESTEDABOMINATION", sc2::ABILITY_ID::TRAIN_INFESTEDABOMINATION) + .value("TRAIN_INFESTEDCIVILIAN", sc2::ABILITY_ID::TRAIN_INFESTEDCIVILIAN) + .value("TRAIN_INFESTEDTERRANCAMPAIGN", sc2::ABILITY_ID::TRAIN_INFESTEDTERRANCAMPAIGN) + .value("TRAIN_INFESTOR", sc2::ABILITY_ID::TRAIN_INFESTOR) + .value("TRAIN_LIBERATOR", sc2::ABILITY_ID::TRAIN_LIBERATOR) + .value("TRAIN_MARAUDER", sc2::ABILITY_ID::TRAIN_MARAUDER) + .value("TRAIN_MARINE", sc2::ABILITY_ID::TRAIN_MARINE) + .value("TRAIN_MEDIVAC", sc2::ABILITY_ID::TRAIN_MEDIVAC) + .value("TRAIN_MOTHERSHIP", sc2::ABILITY_ID::TRAIN_MOTHERSHIP) + .value("TRAIN_MOTHERSHIPCORE", sc2::ABILITY_ID::TRAIN_MOTHERSHIPCORE) + .value("TRAIN_MUTALISK", sc2::ABILITY_ID::TRAIN_MUTALISK) + .value("TRAIN_OBSERVER", sc2::ABILITY_ID::TRAIN_OBSERVER) + .value("TRAIN_ORACLE", sc2::ABILITY_ID::TRAIN_ORACLE) + .value("TRAIN_OVERLORD", sc2::ABILITY_ID::TRAIN_OVERLORD) + .value("TRAIN_PHOENIX", sc2::ABILITY_ID::TRAIN_PHOENIX) + .value("TRAIN_PROBE", sc2::ABILITY_ID::TRAIN_PROBE) + .value("TRAIN_QUEEN", sc2::ABILITY_ID::TRAIN_QUEEN) + .value("SPECTREHOLDFIRE", sc2::ABILITY_ID::SPECTREHOLDFIRE) + .value("TRAIN_RAVEN", sc2::ABILITY_ID::TRAIN_RAVEN) + .value("TRAIN_REAPER", sc2::ABILITY_ID::TRAIN_REAPER) + .value("TRAIN_ROACH", sc2::ABILITY_ID::TRAIN_ROACH) + .value("TRAIN_SCV", sc2::ABILITY_ID::TRAIN_SCV) + .value("TRAIN_SENTRY", sc2::ABILITY_ID::TRAIN_SENTRY) + .value("TRAIN_SIEGETANK", sc2::ABILITY_ID::TRAIN_SIEGETANK) + .value("TRAIN_STALKER", sc2::ABILITY_ID::TRAIN_STALKER) + .value("TRAIN_SWARMHOST", sc2::ABILITY_ID::TRAIN_SWARMHOST) + .value("TRAIN_TEMPEST", sc2::ABILITY_ID::TRAIN_TEMPEST) + .value("TRAIN_THOR", sc2::ABILITY_ID::TRAIN_THOR) + .value("TRAIN_ULTRALISK", sc2::ABILITY_ID::TRAIN_ULTRALISK) + .value("TRAIN_VIKINGFIGHTER", sc2::ABILITY_ID::TRAIN_VIKINGFIGHTER) + .value("TRAIN_VIPER", sc2::ABILITY_ID::TRAIN_VIPER) + .value("TRAIN_VOIDRAY", sc2::ABILITY_ID::TRAIN_VOIDRAY) + .value("TRAIN_WARPINMOHANDAR", sc2::ABILITY_ID::TRAIN_WARPINMOHANDAR) + .value("TRAIN_WARPINSCOUT", sc2::ABILITY_ID::TRAIN_WARPINSCOUT) + .value("TRAIN_WARPINSELENDIS", sc2::ABILITY_ID::TRAIN_WARPINSELENDIS) + .value("TRAIN_WARPINURUN", sc2::ABILITY_ID::TRAIN_WARPINURUN) + .value("TRAIN_WARPINZERATUL", sc2::ABILITY_ID::TRAIN_WARPINZERATUL) + .value("TRAIN_WARPPRISM", sc2::ABILITY_ID::TRAIN_WARPPRISM) + .value("TRAIN_WIDOWMINE", sc2::ABILITY_ID::TRAIN_WIDOWMINE) + .value("TRAIN_ZEALOT", sc2::ABILITY_ID::TRAIN_ZEALOT) + .value("TRAIN_ZERGLING", sc2::ABILITY_ID::TRAIN_ZERGLING) + .value("TRANSPORTMODE_CANCEL", sc2::ABILITY_ID::TRANSPORTMODE_CANCEL) + .value("TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKLOAD", sc2::ABILITY_ID::TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKLOAD) + .value("TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKUNLOADALL", sc2::ABILITY_ID::TRANSPORTTRUCKTRANSPORT_TRANSPORTTRUCKUNLOADALL) + .value("TYCHUS03OMEGASTORM_OMEGASTORM", sc2::ABILITY_ID::TYCHUS03OMEGASTORM_OMEGASTORM) + .value("ULTRALISKWEAPONCOOLDOWN", sc2::ABILITY_ID::ULTRALISKWEAPONCOOLDOWN) + .value("ULTRASONICPULSE", sc2::ABILITY_ID::ULTRASONICPULSE) + .value("UNLOADALL", sc2::ABILITY_ID::UNLOADALL) + .value("UNLOADALLAT", sc2::ABILITY_ID::UNLOADALLAT) + .value("UNLOADALLAT_MEDIVAC", sc2::ABILITY_ID::UNLOADALLAT_MEDIVAC) + .value("UNLOADALLAT_OVERLORD", sc2::ABILITY_ID::UNLOADALLAT_OVERLORD) + .value("UNLOADALLAT_WARPPRISM", sc2::ABILITY_ID::UNLOADALLAT_WARPPRISM) + .value("UNLOADALL_BUNKER", sc2::ABILITY_ID::UNLOADALL_BUNKER) + .value("UNLOADALL_COMMANDCENTER", sc2::ABILITY_ID::UNLOADALL_COMMANDCENTER) + .value("UNLOADALL_NYDASNETWORK", sc2::ABILITY_ID::UNLOADALL_NYDASNETWORK) + .value("UNLOADALL_NYDUSWORM", sc2::ABILITY_ID::UNLOADALL_NYDUSWORM) + .value("UNLOADALL_WARPPRISM", sc2::ABILITY_ID::UNLOADALL_WARPPRISM) + .value("UNLOADUNIT", sc2::ABILITY_ID::UNLOADUNIT) + .value("UNLOADUNIT_BUNKER", sc2::ABILITY_ID::UNLOADUNIT_BUNKER) + .value("UNLOADUNIT_COMMANDCENTER", sc2::ABILITY_ID::UNLOADUNIT_COMMANDCENTER) + .value("UNLOADUNIT_MEDIVAC", sc2::ABILITY_ID::UNLOADUNIT_MEDIVAC) + .value("UNLOADUNIT_NYDASNETWORK", sc2::ABILITY_ID::UNLOADUNIT_NYDASNETWORK) + .value("UNLOADUNIT_OVERLORD", sc2::ABILITY_ID::UNLOADUNIT_OVERLORD) + .value("UNLOADUNIT_WARPPRISM", sc2::ABILITY_ID::UNLOADUNIT_WARPPRISM) + .value("VAL03QUEENOFBLADESBURROW_BURROWDOWN", sc2::ABILITY_ID::VAL03QUEENOFBLADESBURROW_BURROWDOWN) + .value("VAL03QUEENOFBLADESDEEPTUNNEL_DEEPTUNNEL", sc2::ABILITY_ID::VAL03QUEENOFBLADESDEEPTUNNEL_DEEPTUNNEL) + .value("VAL03QUEENOFBLADESUNBURROW_BURROWUP", sc2::ABILITY_ID::VAL03QUEENOFBLADESUNBURROW_BURROWUP) + .value("VOIDMPIMMORTALREVIVEDEATH_IMMORTAL", sc2::ABILITY_ID::VOIDMPIMMORTALREVIVEDEATH_IMMORTAL) + .value("VOIDMPIMMORTALREVIVEREBUILD_IMMORTAL", sc2::ABILITY_ID::VOIDMPIMMORTALREVIVEREBUILD_IMMORTAL) + .value("VOIDSEEKERPHASEMINEBLAST_PHASEMINEBLAST", sc2::ABILITY_ID::VOIDSEEKERPHASEMINEBLAST_PHASEMINEBLAST) + .value("VOIDSEEKERTRANSPORT_MEDIVACLOAD", sc2::ABILITY_ID::VOIDSEEKERTRANSPORT_MEDIVACLOAD) + .value("VOIDSEEKERTRANSPORT_MEDIVACUNLOADALL", sc2::ABILITY_ID::VOIDSEEKERTRANSPORT_MEDIVACUNLOADALL) + .value("VOIDSIPHON", sc2::ABILITY_ID::VOIDSIPHON) + .value("VOIDSWARMHOSTSPAWNLOCUST", sc2::ABILITY_ID::VOIDSWARMHOSTSPAWNLOCUST) + .value("VOODOOSHIELD", sc2::ABILITY_ID::VOODOOSHIELD) + .value("VORTEX", sc2::ABILITY_ID::VORTEX) + .value("VORTEXPURIFIER_VORTEX", sc2::ABILITY_ID::VORTEXPURIFIER_VORTEX) + .value("VULTUREQUEUE3_CANCEL", sc2::ABILITY_ID::VULTUREQUEUE3_CANCEL) + .value("VULTUREQUEUE3_CANCELSLOT", sc2::ABILITY_ID::VULTUREQUEUE3_CANCELSLOT) + .value("VULTURESPIDERMINES_SPIDERMINE", sc2::ABILITY_ID::VULTURESPIDERMINES_SPIDERMINE) + .value("WARPABLE_CANCEL", sc2::ABILITY_ID::WARPABLE_CANCEL) + .value("WIDOWMINEBURROW_CANCEL", sc2::ABILITY_ID::WIDOWMINEBURROW_CANCEL) + .value("WORMHOLETRANSIT", sc2::ABILITY_ID::WORMHOLETRANSIT) + .value("WRAITHCLOAK_CLOAKOFF", sc2::ABILITY_ID::WRAITHCLOAK_CLOAKOFF) + .value("WRECKINGCREWASSAULTMODE_ASSAULTMODE", sc2::ABILITY_ID::WRECKINGCREWASSAULTMODE_ASSAULTMODE) + .value("WRECKINGCREWFIGHTERMODE_FIGHTERMODE", sc2::ABILITY_ID::WRECKINGCREWFIGHTERMODE_FIGHTERMODE) + .value("XELNAGAHEALINGSHRINE", sc2::ABILITY_ID::XELNAGAHEALINGSHRINE) + .value("XELNAGA_CAVERNS_DOOREOPENED_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOOREOPENED_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORNEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN) + .value("XELNAGA_CAVERNS_DOORNE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORNOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN) + .value("XELNAGA_CAVERNS_DOORNW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORNW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORN_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORN_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORSEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSEOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN) + .value("XELNAGA_CAVERNS_DOORSE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSE_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORSOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN) + .value("XELNAGA_CAVERNS_DOORSWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN) + .value("XELNAGA_CAVERNS_DOORSW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORSW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORS_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORS_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_DOORWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORWOPENED_XELNAGA_CAVERNS_DOORDEFAULTOPEN) + .value("XELNAGA_CAVERNS_DOORW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE", sc2::ABILITY_ID::XELNAGA_CAVERNS_DOORW_XELNAGA_CAVERNS_DOORDEFAULTCLOSE) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEH10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH10OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEH10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH10_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEH12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH12OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEH12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH12_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEH8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH8OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEH8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEH8_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENE10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE10OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENE10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE10_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENE12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE12OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENE12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE12_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENE8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE8OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENE8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENE8_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENW10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW10OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENW10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW10_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENW12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW12OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENW12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW12_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENW8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW8OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGENW8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGENW8_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEV10OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV10OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEV10_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV10_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEV12OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV12OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEV12_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV12_BRIDGERETRACT) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEV8OUT_BRIDGEEXTEND", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV8OUT_BRIDGEEXTEND) + .value("XELNAGA_CAVERNS_FLOATING_BRIDGEV8_BRIDGERETRACT", sc2::ABILITY_ID::XELNAGA_CAVERNS_FLOATING_BRIDGEV8_BRIDGERETRACT) + .value("ZERATULBLINK", sc2::ABILITY_ID::ZERATULBLINK) + .value("ZERATULSTUN", sc2::ABILITY_ID::ZERATULSTUN) + .value("_250MMSTRIKECANNONS", sc2::ABILITY_ID::_250MMSTRIKECANNONS) + .value("_250MMSTRIKECANNONS_CANCEL", sc2::ABILITY_ID::_250MMSTRIKECANNONS_CANCEL) + .value("_330MMBARRAGECANNONS", sc2::ABILITY_ID::_330MMBARRAGECANNONS) + .value("_330MMBARRAGECANNONS_CANCEL", sc2::ABILITY_ID::_330MMBARRAGECANNONS_CANCEL); py::enum_<sc2::UPGRADE_ID>(m, "UPGRADE_ID") - .value("INVALID", sc2::UPGRADE_ID::INVALID) - .value("CARRIERLAUNCHSPEEDUPGRADE", sc2::UPGRADE_ID::CARRIERLAUNCHSPEEDUPGRADE) - .value("GLIALRECONSTITUTION", sc2::UPGRADE_ID::GLIALRECONSTITUTION) - .value("TUNNELINGCLAWS", sc2::UPGRADE_ID::TUNNELINGCLAWS) - .value("CHITINOUSPLATING", sc2::UPGRADE_ID::CHITINOUSPLATING) - .value("HISECAUTOTRACKING", sc2::UPGRADE_ID::HISECAUTOTRACKING) - .value("TERRANBUILDINGARMOR", sc2::UPGRADE_ID::TERRANBUILDINGARMOR) - .value("TERRANINFANTRYWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL1) - .value("TERRANINFANTRYWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL2) - .value("TERRANINFANTRYWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL3) - .value("NEOSTEELFRAME", sc2::UPGRADE_ID::NEOSTEELFRAME) - .value("TERRANINFANTRYARMORSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL1) - .value("TERRANINFANTRYARMORSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL2) - .value("TERRANINFANTRYARMORSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL3) - .value("STIMPACK", sc2::UPGRADE_ID::STIMPACK) - .value("SHIELDWALL", sc2::UPGRADE_ID::SHIELDWALL) - .value("PUNISHERGRENADES", sc2::UPGRADE_ID::PUNISHERGRENADES) - .value("HIGHCAPACITYBARRELS", sc2::UPGRADE_ID::HIGHCAPACITYBARRELS) + .value("ABDOMINALFORTITUDE", sc2::UPGRADE_ID::ABDOMINALFORTITUDE) + .value("ADEPTKILLBOUNCE", sc2::UPGRADE_ID::ADEPTKILLBOUNCE) + .value("ADEPTPIERCINGATTACK", sc2::UPGRADE_ID::ADEPTPIERCINGATTACK) + .value("ADEPTSHIELDUPGRADE", sc2::UPGRADE_ID::ADEPTSHIELDUPGRADE) + .value("ADVANCEDCONSTRUCTION", sc2::UPGRADE_ID::ADVANCEDCONSTRUCTION) + .value("ADVANCEDHEALINGAI", sc2::UPGRADE_ID::ADVANCEDHEALINGAI) + .value("ADVANCEDMEDICTRAINING", sc2::UPGRADE_ID::ADVANCEDMEDICTRAINING) + .value("AMPLIFIEDSHIELDING", sc2::UPGRADE_ID::AMPLIFIEDSHIELDING) + .value("ANABOLICSYNTHESIS", sc2::UPGRADE_ID::ANABOLICSYNTHESIS) + .value("ANIONPULSECRYSTALS", sc2::UPGRADE_ID::ANIONPULSECRYSTALS) + .value("ARESCLASSWEAPONSSYSTEM", sc2::UPGRADE_ID::ARESCLASSWEAPONSSYSTEM) + .value("ARESCLASSWEAPONSSYSTEMVIKING", sc2::UPGRADE_ID::ARESCLASSWEAPONSSYSTEMVIKING) + .value("ARMORPIERCINGROCKETS", sc2::UPGRADE_ID::ARMORPIERCINGROCKETS) + .value("AUTOHARVESTER", sc2::UPGRADE_ID::AUTOHARVESTER) + .value("AUXILIARYMEDBOTS", sc2::UPGRADE_ID::AUXILIARYMEDBOTS) + .value("BANELINGBURROWMOVE", sc2::UPGRADE_ID::BANELINGBURROWMOVE) .value("BANSHEECLOAK", sc2::UPGRADE_ID::BANSHEECLOAK) - .value("RAVENCORVIDREACTOR", sc2::UPGRADE_ID::RAVENCORVIDREACTOR) - .value("PERSONALCLOAKING", sc2::UPGRADE_ID::PERSONALCLOAKING) - .value("TERRANVEHICLEWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL1) - .value("TERRANVEHICLEWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL2) - .value("TERRANVEHICLEWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL3) - .value("TERRANSHIPWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL1) - .value("TERRANSHIPWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL2) - .value("TERRANSHIPWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL3) - .value("PROTOSSGROUNDWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL1) - .value("PROTOSSGROUNDWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL2) - .value("PROTOSSGROUNDWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL3) - .value("PROTOSSGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL1) - .value("PROTOSSGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL2) - .value("PROTOSSGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL3) - .value("PROTOSSSHIELDSLEVEL1", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL1) - .value("PROTOSSSHIELDSLEVEL2", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL2) - .value("PROTOSSSHIELDSLEVEL3", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL3) - .value("OBSERVERGRAVITICBOOSTER", sc2::UPGRADE_ID::OBSERVERGRAVITICBOOSTER) - .value("GRAVITICDRIVE", sc2::UPGRADE_ID::GRAVITICDRIVE) - .value("EXTENDEDTHERMALLANCE", sc2::UPGRADE_ID::EXTENDEDTHERMALLANCE) - .value("PSISTORMTECH", sc2::UPGRADE_ID::PSISTORMTECH) - .value("ZERGMELEEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL1) - .value("ZERGMELEEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL2) - .value("ZERGMELEEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL3) - .value("ZERGGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL1) - .value("ZERGGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL2) - .value("ZERGGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL3) - .value("ZERGMISSILEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL1) - .value("ZERGMISSILEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL2) - .value("ZERGMISSILEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL3) - .value("OVERLORDSPEED", sc2::UPGRADE_ID::OVERLORDSPEED) + .value("BANSHEECLOAKEDDAMAGE", sc2::UPGRADE_ID::BANSHEECLOAKEDDAMAGE) + .value("BANSHEESPEED", sc2::UPGRADE_ID::BANSHEESPEED) + .value("BATTLECRUISERBEHEMOTHREACTOR", sc2::UPGRADE_ID::BATTLECRUISERBEHEMOTHREACTOR) + .value("BATTLECRUISERENABLESPECIALIZATIONS", sc2::UPGRADE_ID::BATTLECRUISERENABLESPECIALIZATIONS) + .value("BEARCLAWNOZZLES", sc2::UPGRADE_ID::BEARCLAWNOZZLES) + .value("BLINKTECH", sc2::UPGRADE_ID::BLINKTECH) .value("BURROW", sc2::UPGRADE_ID::BURROW) - .value("ZERGLINGATTACKSPEED", sc2::UPGRADE_ID::ZERGLINGATTACKSPEED) - .value("ZERGLINGMOVEMENTSPEED", sc2::UPGRADE_ID::ZERGLINGMOVEMENTSPEED) - .value("ZERGFLYERWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL1) - .value("ZERGFLYERWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL2) - .value("ZERGFLYERWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL3) - .value("ZERGFLYERARMORSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL1) - .value("ZERGFLYERARMORSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL2) - .value("ZERGFLYERARMORSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL3) - .value("INFESTORENERGYUPGRADE", sc2::UPGRADE_ID::INFESTORENERGYUPGRADE) + .value("BURSTCAPACITORS", sc2::UPGRADE_ID::BURSTCAPACITORS) + .value("CAMPAIGNJOTUNBOOSTERS", sc2::UPGRADE_ID::CAMPAIGNJOTUNBOOSTERS) + .value("CARRIERCARRIERCAPACITY", sc2::UPGRADE_ID::CARRIERCARRIERCAPACITY) + .value("CARRIERLAUNCHSPEEDUPGRADE", sc2::UPGRADE_ID::CARRIERLAUNCHSPEEDUPGRADE) + .value("CARRIERLEASHRANGEUPGRADE", sc2::UPGRADE_ID::CARRIERLEASHRANGEUPGRADE) + .value("CELLULARREACTORS", sc2::UPGRADE_ID::CELLULARREACTORS) .value("CENTRIFICALHOOKS", sc2::UPGRADE_ID::CENTRIFICALHOOKS) - .value("BATTLECRUISERENABLESPECIALIZATIONS", sc2::UPGRADE_ID::BATTLECRUISERENABLESPECIALIZATIONS) - .value("PROTOSSAIRWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL1) - .value("PROTOSSAIRWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL2) - .value("PROTOSSAIRWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL3) - .value("PROTOSSAIRARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL1) - .value("PROTOSSAIRARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL2) - .value("PROTOSSAIRARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL3) - .value("WARPGATERESEARCH", sc2::UPGRADE_ID::WARPGATERESEARCH) + .value("CERBERUSMINES", sc2::UPGRADE_ID::CERBERUSMINES) .value("CHARGE", sc2::UPGRADE_ID::CHARGE) - .value("BLINKTECH", sc2::UPGRADE_ID::BLINKTECH) - .value("PHOENIXRANGEUPGRADE", sc2::UPGRADE_ID::PHOENIXRANGEUPGRADE) - .value("NEURALPARASITE", sc2::UPGRADE_ID::NEURALPARASITE) - .value("TERRANVEHICLEANDSHIPARMORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL1) - .value("TERRANVEHICLEANDSHIPARMORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL2) - .value("TERRANVEHICLEANDSHIPARMORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL3) + .value("CHITINOUSPLATING", sc2::UPGRADE_ID::CHITINOUSPLATING) + .value("CINEMATICMODE", sc2::UPGRADE_ID::CINEMATICMODE) + .value("CLOAKDISTORTIONFIELD", sc2::UPGRADE_ID::CLOAKDISTORTIONFIELD) + .value("CLUSTERBOMB", sc2::UPGRADE_ID::CLUSTERBOMB) + .value("CLUSTERWARHEADS", sc2::UPGRADE_ID::CLUSTERWARHEADS) + .value("COMBATDRUGS", sc2::UPGRADE_ID::COMBATDRUGS) + .value("COMBATSHIELD", sc2::UPGRADE_ID::COMBATSHIELD) + .value("COMMANDCENTERREACTOR", sc2::UPGRADE_ID::COMMANDCENTERREACTOR) + .value("CROSSSPECTRUMDAMPENERS", sc2::UPGRADE_ID::CROSSSPECTRUMDAMPENERS) + .value("CURSORDEBUG", sc2::UPGRADE_ID::CURSORDEBUG) + .value("CYCLONEAIRUPGRADE", sc2::UPGRADE_ID::CYCLONEAIRUPGRADE) + .value("CYCLONELOCKONDAMAGEUPGRADE", sc2::UPGRADE_ID::CYCLONELOCKONDAMAGEUPGRADE) + .value("CYCLONELOCKONRANGEUPGRADE", sc2::UPGRADE_ID::CYCLONELOCKONRANGEUPGRADE) + .value("CYCLONERAPIDFIRELAUNCHERS", sc2::UPGRADE_ID::CYCLONERAPIDFIRELAUNCHERS) + .value("DARKPROTOSS", sc2::UPGRADE_ID::DARKPROTOSS) + .value("DARKTEMPLARBLINKUPGRADE", sc2::UPGRADE_ID::DARKTEMPLARBLINKUPGRADE) + .value("DARKTEMPLARTACTICS", sc2::UPGRADE_ID::DARKTEMPLARTACTICS) + .value("DEFENSIVEMATRIX", sc2::UPGRADE_ID::DEFENSIVEMATRIX) + .value("DEVASTATORMISSILES", sc2::UPGRADE_ID::DEVASTATORMISSILES) + .value("DIGGINGCLAWS", sc2::UPGRADE_ID::DIGGINGCLAWS) + .value("DISTORTIONBLASTERS", sc2::UPGRADE_ID::DISTORTIONBLASTERS) + .value("DISTORTIONSENSORS", sc2::UPGRADE_ID::DISTORTIONSENSORS) + .value("DISTORTIONTHRUSTERS", sc2::UPGRADE_ID::DISTORTIONTHRUSTERS) .value("DRILLCLAWS", sc2::UPGRADE_ID::DRILLCLAWS) - .value("ADEPTPIERCINGATTACK", sc2::UPGRADE_ID::ADEPTPIERCINGATTACK) - .value("MAGFIELDLAUNCHERS", sc2::UPGRADE_ID::MAGFIELDLAUNCHERS) + .value("DUALFUSIONWELDERS", sc2::UPGRADE_ID::DUALFUSIONWELDERS) + .value("DURABLEMATERIALS", sc2::UPGRADE_ID::DURABLEMATERIALS) + .value("DYNAMICPOWERROUTING", sc2::UPGRADE_ID::DYNAMICPOWERROUTING) + .value("EMPTOWER", sc2::UPGRADE_ID::EMPTOWER) + .value("ENERGYSTORAGE", sc2::UPGRADE_ID::ENERGYSTORAGE) + .value("ENHANCEDSHOCKWAVES", sc2::UPGRADE_ID::ENHANCEDSHOCKWAVES) .value("EVOLVEGROOVEDSPINES", sc2::UPGRADE_ID::EVOLVEGROOVEDSPINES) .value("EVOLVEMUSCULARAUGMENTS", sc2::UPGRADE_ID::EVOLVEMUSCULARAUGMENTS) - .value("BANSHEESPEED", sc2::UPGRADE_ID::BANSHEESPEED) - .value("RAVENRECALIBRATEDEXPLOSIVES", sc2::UPGRADE_ID::RAVENRECALIBRATEDEXPLOSIVES) - .value("MEDIVACINCREASESPEEDBOOST", sc2::UPGRADE_ID::MEDIVACINCREASESPEEDBOOST) - .value("LIBERATORAGRANGEUPGRADE", sc2::UPGRADE_ID::LIBERATORAGRANGEUPGRADE) - .value("DARKTEMPLARBLINKUPGRADE", sc2::UPGRADE_ID::DARKTEMPLARBLINKUPGRADE) - .value("SMARTSERVOS", sc2::UPGRADE_ID::SMARTSERVOS) - .value("RAPIDFIRELAUNCHERS", sc2::UPGRADE_ID::RAPIDFIRELAUNCHERS) - .value("ENHANCEDMUNITIONS", sc2::UPGRADE_ID::ENHANCEDMUNITIONS); - + .value("EXPANDEDHULL", sc2::UPGRADE_ID::EXPANDEDHULL) + .value("EXTENDEDTHERMALLANCE", sc2::UPGRADE_ID::EXTENDEDTHERMALLANCE) + .value("EXTRAMINES", sc2::UPGRADE_ID::EXTRAMINES) + .value("FIREBATJUGGERNAUTPLATING", sc2::UPGRADE_ID::FIREBATJUGGERNAUTPLATING) + .value("FIRESUPPRESSIONSYSTEMS", sc2::UPGRADE_ID::FIRESUPPRESSIONSYSTEMS) + .value("FLARERESEARCH", sc2::UPGRADE_ID::FLARERESEARCH) + .value("FLYINGLOCUSTS", sc2::UPGRADE_ID::FLYINGLOCUSTS) + .value("FORTIFIEDBUNKERCARAPACE", sc2::UPGRADE_ID::FORTIFIEDBUNKERCARAPACE) + .value("FULLBORECANISTERAMMO", sc2::UPGRADE_ID::FULLBORECANISTERAMMO) + .value("GHOSTMOEBIUSREACTOR", sc2::UPGRADE_ID::GHOSTMOEBIUSREACTOR) + .value("GLIALRECONSTITUTION", sc2::UPGRADE_ID::GLIALRECONSTITUTION) + .value("GRAVITICDRIVE", sc2::UPGRADE_ID::GRAVITICDRIVE) + .value("GRAVITICTHRUSTERS", sc2::UPGRADE_ID::GRAVITICTHRUSTERS) + .value("HAILSTORMMISSILEPODS", sc2::UPGRADE_ID::HAILSTORMMISSILEPODS) + .value("HALOROCKETS", sc2::UPGRADE_ID::HALOROCKETS) + .value("HALTECH", sc2::UPGRADE_ID::HALTECH) + .value("HELLIONCAMPAIGNINFERNALPREIGNITER", sc2::UPGRADE_ID::HELLIONCAMPAIGNINFERNALPREIGNITER) + .value("HIGHCAPACITYBARRELS", sc2::UPGRADE_ID::HIGHCAPACITYBARRELS) + .value("HIGHTEMPLARKHAYDARINAMULET", sc2::UPGRADE_ID::HIGHTEMPLARKHAYDARINAMULET) + .value("HIREDEVILDOGSPH", sc2::UPGRADE_ID::HIREDEVILDOGSPH) + .value("HIREDUKESREVENGE", sc2::UPGRADE_ID::HIREDUKESREVENGE) + .value("HIREDUSKWINGPH", sc2::UPGRADE_ID::HIREDUSKWINGPH) + .value("HIREHAMMERSECURITIESPH", sc2::UPGRADE_ID::HIREHAMMERSECURITIESPH) + .value("HIREHELSANGELSPH", sc2::UPGRADE_ID::HIREHELSANGELSPH) + .value("HIREKELMORIANMINERSPH", sc2::UPGRADE_ID::HIREKELMORIANMINERSPH) + .value("HIRESIEGEBREAKERSPH", sc2::UPGRADE_ID::HIRESIEGEBREAKERSPH) + .value("HIRESPARTANCOMPANYPH", sc2::UPGRADE_ID::HIRESPARTANCOMPANYPH) + .value("HISECAUTOTRACKING", sc2::UPGRADE_ID::HISECAUTOTRACKING) + .value("HIVEMINDEMULATOR", sc2::UPGRADE_ID::HIVEMINDEMULATOR) + .value("HUNTERSEEKER", sc2::UPGRADE_ID::HUNTERSEEKER) + .value("HURRICANEMISSILES", sc2::UPGRADE_ID::HURRICANEMISSILES) + .value("HYBRIDCPLASMAUPGRADEHARD", sc2::UPGRADE_ID::HYBRIDCPLASMAUPGRADEHARD) + .value("HYBRIDCPLASMAUPGRADEINSANE", sc2::UPGRADE_ID::HYBRIDCPLASMAUPGRADEINSANE) + .value("HYDRALISKSPEED", sc2::UPGRADE_ID::HYDRALISKSPEED) + .value("HYDRALISKSPEEDUPGRADE", sc2::UPGRADE_ID::HYDRALISKSPEEDUPGRADE) + .value("HYPERFLUXOR", sc2::UPGRADE_ID::HYPERFLUXOR) + .value("IMMORTALBARRIER", sc2::UPGRADE_ID::IMMORTALBARRIER) + .value("IMMORTALREVIVE", sc2::UPGRADE_ID::IMMORTALREVIVE) + .value("IMPALERROUNDS", sc2::UPGRADE_ID::IMPALERROUNDS) + .value("INCREASEDRANGE", sc2::UPGRADE_ID::INCREASEDRANGE) + .value("INFERNALPREIGNITERS", sc2::UPGRADE_ID::INFERNALPREIGNITERS) + .value("INFESTORENERGYUPGRADE", sc2::UPGRADE_ID::INFESTORENERGYUPGRADE) + .value("INFESTORPERISTALSIS", sc2::UPGRADE_ID::INFESTORPERISTALSIS) + .value("INTERCEPTORLIMIT4", sc2::UPGRADE_ID::INTERCEPTORLIMIT4) + .value("INTERCEPTORLIMIT6", sc2::UPGRADE_ID::INTERCEPTORLIMIT6) + .value("INVALID", sc2::UPGRADE_ID::INVALID) + .value("JACKHAMMERCONCUSSIONGRENADES", sc2::UPGRADE_ID::JACKHAMMERCONCUSSIONGRENADES) + .value("JUGGERNAUTPLATING", sc2::UPGRADE_ID::JUGGERNAUTPLATING) + .value("KINETICFIELDS", sc2::UPGRADE_ID::KINETICFIELDS) + .value("LIBERATORAGRANGEUPGRADE", sc2::UPGRADE_ID::LIBERATORAGRANGEUPGRADE) + .value("LIBERATORMORPH", sc2::UPGRADE_ID::LIBERATORMORPH) + .value("LOCUSTLIFETIMEINCREASE", sc2::UPGRADE_ID::LOCUSTLIFETIMEINCREASE) + .value("LURKERRANGE", sc2::UPGRADE_ID::LURKERRANGE) + .value("MAELSTROMROUNDS", sc2::UPGRADE_ID::MAELSTROMROUNDS) + .value("MAGFIELDLAUNCHERS", sc2::UPGRADE_ID::MAGFIELDLAUNCHERS) + .value("MARAUDERLIFEBOOST", sc2::UPGRADE_ID::MARAUDERLIFEBOOST) + .value("MARINESTIMPACK", sc2::UPGRADE_ID::MARINESTIMPACK) + .value("MECHANICALREBIRTH", sc2::UPGRADE_ID::MECHANICALREBIRTH) + .value("MEDIVACCADUCEUSREACTOR", sc2::UPGRADE_ID::MEDIVACCADUCEUSREACTOR) + .value("MEDIVACINCREASESPEEDBOOST", sc2::UPGRADE_ID::MEDIVACINCREASESPEEDBOOST) + .value("MEDIVACRAPIDDEPLOYMENT", sc2::UPGRADE_ID::MEDIVACRAPIDDEPLOYMENT) + .value("MICROBIALSHROUD", sc2::UPGRADE_ID::MICROBIALSHROUD) + .value("MICROFILTERING", sc2::UPGRADE_ID::MICROFILTERING) + .value("MICROFUSIONREACTORS", sc2::UPGRADE_ID::MICROFUSIONREACTORS) + .value("MODULARCONSTRUCTION", sc2::UPGRADE_ID::MODULARCONSTRUCTION) + .value("MULE", sc2::UPGRADE_ID::MULE) + .value("MULTILOCKTARGETINGSYSTEMS", sc2::UPGRADE_ID::MULTILOCKTARGETINGSYSTEMS) + .value("NANOBOTINJECTORS", sc2::UPGRADE_ID::NANOBOTINJECTORS) + .value("NANOCONSTRUCTOR", sc2::UPGRADE_ID::NANOCONSTRUCTOR) + .value("NAPALMFUELTANKS", sc2::UPGRADE_ID::NAPALMFUELTANKS) + .value("NEOSTEELANDSHRIKETURRETICONUPGRADE", sc2::UPGRADE_ID::NEOSTEELANDSHRIKETURRETICONUPGRADE) + .value("NEOSTEELFRAME", sc2::UPGRADE_ID::NEOSTEELFRAME) + .value("NEURALPARASITE", sc2::UPGRADE_ID::NEURALPARASITE) + .value("NOTPOSSIBLESIEGEMODE", sc2::UPGRADE_ID::NOTPOSSIBLESIEGEMODE) + .value("OBSERVERGRAVITICBOOSTER", sc2::UPGRADE_ID::OBSERVERGRAVITICBOOSTER) + .value("OBVERSEINCUBATION", sc2::UPGRADE_ID::OBVERSEINCUBATION) + .value("OCULARIMPLANTS", sc2::UPGRADE_ID::OCULARIMPLANTS) + .value("ORACLEENERGYUPGRADE", sc2::UPGRADE_ID::ORACLEENERGYUPGRADE) + .value("ORBITALRELAY", sc2::UPGRADE_ID::ORBITALRELAY) + .value("ORBITALSTRIKE", sc2::UPGRADE_ID::ORBITALSTRIKE) + .value("ORGANICCARAPACE", sc2::UPGRADE_ID::ORGANICCARAPACE) + .value("OVERLORDSPEED", sc2::UPGRADE_ID::OVERLORDSPEED) + .value("OVERLORDTRANSPORT", sc2::UPGRADE_ID::OVERLORDTRANSPORT) + .value("PARTICLECANNONAIR", sc2::UPGRADE_ID::PARTICLECANNONAIR) + .value("PERMANENTCLOAKGHOST", sc2::UPGRADE_ID::PERMANENTCLOAKGHOST) + .value("PERMANENTCLOAKSPECTRE", sc2::UPGRADE_ID::PERMANENTCLOAKSPECTRE) + .value("PERSONALCLOAKING", sc2::UPGRADE_ID::PERSONALCLOAKING) + .value("PHOENIXRANGEUPGRADE", sc2::UPGRADE_ID::PHOENIXRANGEUPGRADE) + .value("PREDATOR", sc2::UPGRADE_ID::PREDATOR) + .value("PROJECTILEACCELERATORS", sc2::UPGRADE_ID::PROJECTILEACCELERATORS) + .value("PROTOSSAIRARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL1) + .value("PROTOSSAIRARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL2) + .value("PROTOSSAIRARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRARMORSLEVEL3) + .value("PROTOSSAIRWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL1) + .value("PROTOSSAIRWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL2) + .value("PROTOSSAIRWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSAIRWEAPONSLEVEL3) + .value("PROTOSSGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL1) + .value("PROTOSSGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL2) + .value("PROTOSSGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDARMORSLEVEL3) + .value("PROTOSSGROUNDWEAPONSLEVEL1", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL1) + .value("PROTOSSGROUNDWEAPONSLEVEL2", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL2) + .value("PROTOSSGROUNDWEAPONSLEVEL3", sc2::UPGRADE_ID::PROTOSSGROUNDWEAPONSLEVEL3) + .value("PROTOSSHEROSHIPDETECTOR", sc2::UPGRADE_ID::PROTOSSHEROSHIPDETECTOR) + .value("PROTOSSHEROSHIPSPELL", sc2::UPGRADE_ID::PROTOSSHEROSHIPSPELL) + .value("PROTOSSHEROSHIPWEAPON", sc2::UPGRADE_ID::PROTOSSHEROSHIPWEAPON) + .value("PROTOSSSHIELDSLEVEL1", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL1) + .value("PROTOSSSHIELDSLEVEL2", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL2) + .value("PROTOSSSHIELDSLEVEL3", sc2::UPGRADE_ID::PROTOSSSHIELDSLEVEL3) + .value("PSIDISRUPTOR", sc2::UPGRADE_ID::PSIDISRUPTOR) + .value("PSIONICAMPLIFIERS", sc2::UPGRADE_ID::PSIONICAMPLIFIERS) + .value("PSISTORMTECH", sc2::UPGRADE_ID::PSISTORMTECH) + .value("PUNISHERGRENADES", sc2::UPGRADE_ID::PUNISHERGRENADES) + .value("RAPIDDEPLOYMENT", sc2::UPGRADE_ID::RAPIDDEPLOYMENT) + .value("RAVAGERRANGE", sc2::UPGRADE_ID::RAVAGERRANGE) + .value("RAVENCORVIDREACTOR", sc2::UPGRADE_ID::RAVENCORVIDREACTOR) + .value("RAVENDAMAGEUPGRADE", sc2::UPGRADE_ID::RAVENDAMAGEUPGRADE) + .value("RAVENENHANCEDMUNITIONS", sc2::UPGRADE_ID::RAVENENHANCEDMUNITIONS) + .value("RAVENRECALIBRATEDEXPLOSIVES", sc2::UPGRADE_ID::RAVENRECALIBRATEDEXPLOSIVES) + .value("RAZORWIRE", sc2::UPGRADE_ID::RAZORWIRE) + .value("REAPERD8CHARGE", sc2::UPGRADE_ID::REAPERD8CHARGE) + .value("REAPERJUMP", sc2::UPGRADE_ID::REAPERJUMP) + .value("REAPERSPEED", sc2::UPGRADE_ID::REAPERSPEED) + .value("REAPERSTIMPACK", sc2::UPGRADE_ID::REAPERSTIMPACK) + .value("REAPERU238ROUNDS", sc2::UPGRADE_ID::REAPERU238ROUNDS) + .value("REGENERATIVEBIOSTEEL", sc2::UPGRADE_ID::REGENERATIVEBIOSTEEL) + .value("REINFORCEDSUPERSTRUCTURE", sc2::UPGRADE_ID::REINFORCEDSUPERSTRUCTURE) + .value("RESTORESHIELDS", sc2::UPGRADE_ID::RESTORESHIELDS) + .value("ROACHSUPPLY", sc2::UPGRADE_ID::ROACHSUPPLY) + .value("SCAVENGINGSYSTEMS", sc2::UPGRADE_ID::SCAVENGINGSYSTEMS) + .value("SCIENCEVESSEL", sc2::UPGRADE_ID::SCIENCEVESSEL) + .value("SCIENCEVESSELENERGYMANIPULATION", sc2::UPGRADE_ID::SCIENCEVESSELENERGYMANIPULATION) + .value("SCIENCEVESSELPLASMAWEAPONRY", sc2::UPGRADE_ID::SCIENCEVESSELPLASMAWEAPONRY) + .value("SECRETEDCOATING", sc2::UPGRADE_ID::SECRETEDCOATING) + .value("SHAPEDHULL", sc2::UPGRADE_ID::SHAPEDHULL) + .value("SHIELDWALL", sc2::UPGRADE_ID::SHIELDWALL) + .value("SHOWGATLINGGUN", sc2::UPGRADE_ID::SHOWGATLINGGUN) + .value("SHRIKETURRET", sc2::UPGRADE_ID::SHRIKETURRET) + .value("SIEGETANKSHAPEDBLAST", sc2::UPGRADE_ID::SIEGETANKSHAPEDBLAST) + .value("SIEGETECH", sc2::UPGRADE_ID::SIEGETECH) + .value("SINGULARITYCHARGE", sc2::UPGRADE_ID::SINGULARITYCHARGE) + .value("SMARTSERVOS", sc2::UPGRADE_ID::SMARTSERVOS) + .value("SPECTRETOOLTIPUPGRADE", sc2::UPGRADE_ID::SPECTRETOOLTIPUPGRADE) + .value("STABILIZERMEDPACKS", sc2::UPGRADE_ID::STABILIZERMEDPACKS) + .value("STIMPACK", sc2::UPGRADE_ID::STIMPACK) + .value("STRIKECANNONS", sc2::UPGRADE_ID::STRIKECANNONS) + .value("SUNDERINGIMPACT", sc2::UPGRADE_ID::SUNDERINGIMPACT) + .value("SUPPLYDEPOTDROP", sc2::UPGRADE_ID::SUPPLYDEPOTDROP) + .value("SURVIVALPODS", sc2::UPGRADE_ID::SURVIVALPODS) + .value("TECHREACTOR", sc2::UPGRADE_ID::TECHREACTOR) + .value("TECHREACTORAI", sc2::UPGRADE_ID::TECHREACTORAI) + .value("TEMPESTRANGEUPGRADE", sc2::UPGRADE_ID::TEMPESTRANGEUPGRADE) + .value("TERRANBUILDINGARMOR", sc2::UPGRADE_ID::TERRANBUILDINGARMOR) + .value("TERRANDEFENSERANGEBONUS", sc2::UPGRADE_ID::TERRANDEFENSERANGEBONUS) + .value("TERRANINFANTRYARMORSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL1) + .value("TERRANINFANTRYARMORSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL2) + .value("TERRANINFANTRYARMORSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYARMORSLEVEL3) + .value("TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL1) + .value("TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL2) + .value("TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYARMORSVANADIUMPLATINGLEVEL3) + .value("TERRANINFANTRYWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL1) + .value("TERRANINFANTRYWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL2) + .value("TERRANINFANTRYWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSLEVEL3) + .value("TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL1", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL1) + .value("TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL2", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL2) + .value("TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL3", sc2::UPGRADE_ID::TERRANINFANTRYWEAPONSULTRACAPACITORSLEVEL3) + .value("TERRANSHIPARMORSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPARMORSLEVEL1) + .value("TERRANSHIPARMORSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPARMORSLEVEL2) + .value("TERRANSHIPARMORSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPARMORSLEVEL3) + .value("TERRANSHIPARMORSVANADIUMPLATINGLEVEL1", sc2::UPGRADE_ID::TERRANSHIPARMORSVANADIUMPLATINGLEVEL1) + .value("TERRANSHIPARMORSVANADIUMPLATINGLEVEL2", sc2::UPGRADE_ID::TERRANSHIPARMORSVANADIUMPLATINGLEVEL2) + .value("TERRANSHIPARMORSVANADIUMPLATINGLEVEL3", sc2::UPGRADE_ID::TERRANSHIPARMORSVANADIUMPLATINGLEVEL3) + .value("TERRANSHIPWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL1) + .value("TERRANSHIPWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL2) + .value("TERRANSHIPWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPWEAPONSLEVEL3) + .value("TERRANSHIPWEAPONSULTRACAPACITORSLEVEL1", sc2::UPGRADE_ID::TERRANSHIPWEAPONSULTRACAPACITORSLEVEL1) + .value("TERRANSHIPWEAPONSULTRACAPACITORSLEVEL2", sc2::UPGRADE_ID::TERRANSHIPWEAPONSULTRACAPACITORSLEVEL2) + .value("TERRANSHIPWEAPONSULTRACAPACITORSLEVEL3", sc2::UPGRADE_ID::TERRANSHIPWEAPONSULTRACAPACITORSLEVEL3) + .value("TERRANVEHICLEANDSHIPARMORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL1) + .value("TERRANVEHICLEANDSHIPARMORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL2) + .value("TERRANVEHICLEANDSHIPARMORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPARMORSLEVEL3) + .value("TERRANVEHICLEANDSHIPWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPWEAPONSLEVEL1) + .value("TERRANVEHICLEANDSHIPWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPWEAPONSLEVEL2) + .value("TERRANVEHICLEANDSHIPWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEANDSHIPWEAPONSLEVEL3) + .value("TERRANVEHICLEARMORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEARMORSLEVEL1) + .value("TERRANVEHICLEARMORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEARMORSLEVEL2) + .value("TERRANVEHICLEARMORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEARMORSLEVEL3) + .value("TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL1) + .value("TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL2) + .value("TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEARMORSVANADIUMPLATINGLEVEL3) + .value("TERRANVEHICLEWEAPONSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL1) + .value("TERRANVEHICLEWEAPONSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL2) + .value("TERRANVEHICLEWEAPONSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSLEVEL3) + .value("TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL1", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL1) + .value("TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL2", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL2) + .value("TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL3", sc2::UPGRADE_ID::TERRANVEHICLEWEAPONSULTRACAPACITORSLEVEL3) + .value("TOSHEASYMODE", sc2::UPGRADE_ID::TOSHEASYMODE) + .value("TRANSFORMATIONSERVOS", sc2::UPGRADE_ID::TRANSFORMATIONSERVOS) + .value("TRILITHIUMPOWERCELLS", sc2::UPGRADE_ID::TRILITHIUMPOWERCELLS) + .value("TUNGSTENSPIKES", sc2::UPGRADE_ID::TUNGSTENSPIKES) + .value("TUNNELINGCLAWS", sc2::UPGRADE_ID::TUNNELINGCLAWS) + .value("TURBOCHARGEDENGINES", sc2::UPGRADE_ID::TURBOCHARGEDENGINES) + .value("TWINLINKEDFLAMETHROWERS", sc2::UPGRADE_ID::TWINLINKEDFLAMETHROWERS) + .value("TYCHUS05BATTLECRUISERPENETRATION", sc2::UPGRADE_ID::TYCHUS05BATTLECRUISERPENETRATION) + .value("ULTRACAPACITORS", sc2::UPGRADE_ID::ULTRACAPACITORS) + .value("ULTRALISKBURROWCHARGEUPGRADE", sc2::UPGRADE_ID::ULTRALISKBURROWCHARGEUPGRADE) + .value("ULTRASONICPULSE", sc2::UPGRADE_ID::ULTRASONICPULSE) + .value("VANADIUMPLATING", sc2::UPGRADE_ID::VANADIUMPLATING) + .value("VIKINGJOTUNBOOSTERS", sc2::UPGRADE_ID::VIKINGJOTUNBOOSTERS) + .value("VIRALMUNITIONS", sc2::UPGRADE_ID::VIRALMUNITIONS) + .value("VIRALPLASMA", sc2::UPGRADE_ID::VIRALPLASMA) + .value("VOIDRAYSPEEDUPGRADE", sc2::UPGRADE_ID::VOIDRAYSPEEDUPGRADE) + .value("VULTUREAUTOREPAIR", sc2::UPGRADE_ID::VULTUREAUTOREPAIR) + .value("WARPGATERESEARCH", sc2::UPGRADE_ID::WARPGATERESEARCH) + .value("WHITENAPALM", sc2::UPGRADE_ID::WHITENAPALM) + .value("WRAITHCLOAK", sc2::UPGRADE_ID::WRAITHCLOAK) + .value("X88TNAPALMUPGRADE", sc2::UPGRADE_ID::X88TNAPALMUPGRADE) + .value("YAMATOCANNON", sc2::UPGRADE_ID::YAMATOCANNON) + .value("ZERGBURROWMOVE", sc2::UPGRADE_ID::ZERGBURROWMOVE) + .value("ZERGFLYERARMORSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL1) + .value("ZERGFLYERARMORSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL2) + .value("ZERGFLYERARMORSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERARMORSLEVEL3) + .value("ZERGFLYERWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL1) + .value("ZERGFLYERWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL2) + .value("ZERGFLYERWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGFLYERWEAPONSLEVEL3) + .value("ZERGGROUNDARMORSLEVEL1", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL1) + .value("ZERGGROUNDARMORSLEVEL2", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL2) + .value("ZERGGROUNDARMORSLEVEL3", sc2::UPGRADE_ID::ZERGGROUNDARMORSLEVEL3) + .value("ZERGLINGATTACKSPEED", sc2::UPGRADE_ID::ZERGLINGATTACKSPEED) + .value("ZERGLINGMOVEMENTSPEED", sc2::UPGRADE_ID::ZERGLINGMOVEMENTSPEED) + .value("ZERGMELEEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL1) + .value("ZERGMELEEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL2) + .value("ZERGMELEEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMELEEWEAPONSLEVEL3) + .value("ZERGMISSILEWEAPONSLEVEL1", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL1) + .value("ZERGMISSILEWEAPONSLEVEL2", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL2) + .value("ZERGMISSILEWEAPONSLEVEL3", sc2::UPGRADE_ID::ZERGMISSILEWEAPONSLEVEL3) + .value("_330MMBARRAGECANNONS", sc2::UPGRADE_ID::_330MMBARRAGECANNONS); + py::enum_<sc2::BUFF_ID>(m, "BUFF_ID") - .value("INVALID", sc2::BUFF_ID::INVALID) - .value("GRAVITONBEAM", sc2::BUFF_ID::GRAVITONBEAM) - .value("GHOSTCLOAK", sc2::BUFF_ID::GHOSTCLOAK) - .value("BANSHEECLOAK", sc2::BUFF_ID::BANSHEECLOAK) - .value("POWERUSERWARPABLE", sc2::BUFF_ID::POWERUSERWARPABLE) - .value("QUEENSPAWNLARVATIMER", sc2::BUFF_ID::QUEENSPAWNLARVATIMER) - .value("GHOSTHOLDFIRE", sc2::BUFF_ID::GHOSTHOLDFIRE) - .value("GHOSTHOLDFIREB", sc2::BUFF_ID::GHOSTHOLDFIREB) - .value("EMPDECLOAK", sc2::BUFF_ID::EMPDECLOAK) - .value("FUNGALGROWTH", sc2::BUFF_ID::FUNGALGROWTH) - .value("GUARDIANSHIELD", sc2::BUFF_ID::GUARDIANSHIELD) - .value("TIMEWARPPRODUCTION", sc2::BUFF_ID::TIMEWARPPRODUCTION) - .value("NEURALPARASITE", sc2::BUFF_ID::NEURALPARASITE) - .value("STIMPACKMARAUDER", sc2::BUFF_ID::STIMPACKMARAUDER) - .value("SUPPLYDROP", sc2::BUFF_ID::SUPPLYDROP) - .value("STIMPACK", sc2::BUFF_ID::STIMPACK) - .value("PSISTORM", sc2::BUFF_ID::PSISTORM) - .value("CLOAKFIELDEFFECT", sc2::BUFF_ID::CLOAKFIELDEFFECT) - .value("CHARGING", sc2::BUFF_ID::CHARGING) - .value("SLOW", sc2::BUFF_ID::SLOW) - .value("CONTAMINATED", sc2::BUFF_ID::CONTAMINATED) - .value("BLINDINGCLOUDSTRUCTURE", sc2::BUFF_ID::BLINDINGCLOUDSTRUCTURE) - .value("ORACLEREVELATION", sc2::BUFF_ID::ORACLEREVELATION) - .value("VIPERCONSUMESTRUCTURE", sc2::BUFF_ID::VIPERCONSUMESTRUCTURE) - .value("BLINDINGCLOUD", sc2::BUFF_ID::BLINDINGCLOUD) - .value("MEDIVACSPEEDBOOST", sc2::BUFF_ID::MEDIVACSPEEDBOOST) - .value("PURIFY", sc2::BUFF_ID::PURIFY) - .value("ORACLEWEAPON", sc2::BUFF_ID::ORACLEWEAPON) - .value("IMMORTALOVERLOAD", sc2::BUFF_ID::IMMORTALOVERLOAD) - .value("LOCKON", sc2::BUFF_ID::LOCKON) - .value("SEEKERMISSILE", sc2::BUFF_ID::SEEKERMISSILE) - .value("TEMPORALFIELD", sc2::BUFF_ID::TEMPORALFIELD) - .value("VOIDRAYSWARMDAMAGEBOOST", sc2::BUFF_ID::VOIDRAYSWARMDAMAGEBOOST) - .value("ORACLESTASISTRAPTARGET", sc2::BUFF_ID::ORACLESTASISTRAPTARGET) - .value("PARASITICBOMB", sc2::BUFF_ID::PARASITICBOMB) - .value("PARASITICBOMBUNITKU", sc2::BUFF_ID::PARASITICBOMBUNITKU) - .value("PARASITICBOMBSECONDARYUNITSEARCH", sc2::BUFF_ID::PARASITICBOMBSECONDARYUNITSEARCH) - .value("LURKERHOLDFIREB", sc2::BUFF_ID::LURKERHOLDFIREB) - .value("CHANNELSNIPECOMBAT", sc2::BUFF_ID::CHANNELSNIPECOMBAT) - .value("TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR", sc2::BUFF_ID::TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR) - .value("CARRYMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYMINERALFIELDMINERALS) - .value("CARRYHIGHYIELDMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYHIGHYIELDMINERALFIELDMINERALS) - .value("CARRYHARVESTABLEVESPENEGEYSERGAS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGAS) - .value("CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS) - .value("CARRYHARVESTABLEVESPENEGEYSERGASZERG", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASZERG); + .value("ACCELERATIONZONEFLYINGTEMPORALFIELD", sc2::BUFF_ID::ACCELERATIONZONEFLYINGTEMPORALFIELD) + .value("ACCELERATIONZONETEMPORALFIELD", sc2::BUFF_ID::ACCELERATIONZONETEMPORALFIELD) + .value("ADEPTDEATHCHECK", sc2::BUFF_ID::ADEPTDEATHCHECK) + .value("AGGRESSIVEMUTATION", sc2::BUFF_ID::AIDANGERBUFF) + .value("AMORPHOUSARMORCLOUD", sc2::BUFF_ID::AMORPHOUSARMORCLOUD) + .value("ANTIAIRWEAPONSWITCHCOOLDOWN", sc2::BUFF_ID::ANTIAIRWEAPONSWITCHCOOLDOWN) + .value("ARBITERMPCLOAKFIELDEFFECT", sc2::BUFF_ID::ARBITERMPCLOAKFIELDEFFECT) + .value("ARBITERMPSTASISFIELD", sc2::BUFF_ID::ARBITERMPSTASISFIELD) + .value("ARTANISCLOAKINGFIELDEFFECT", sc2::BUFF_ID::ARTANISCLOAKINGFIELDEFFECT) + .value("ARTANISTEMPORALRIFTUNIT", sc2::BUFF_ID::ARTANISTEMPORALRIFTUNIT) + .value("ARTANISVORTEXBEHAVIOR", sc2::BUFF_ID::ARTANISVORTEXBEHAVIOR) + .value("AUTOMATEDREPAIR", sc2::BUFF_ID::AUTOMATEDREPAIR) + .value("BANSHEECLOAK", sc2::BUFF_ID::BANSHEECLOAK) + .value("BANSHEECLOAKCROSSSPECTRUMDAMPENERS", sc2::BUFF_ID::BANSHEECLOAKCROSSSPECTRUMDAMPENERS) + .value("BATTLECRUISERANTIAIRDISABLE", sc2::BUFF_ID::BATTLECRUISERANTIAIRDISABLE) + .value("BENIGN", sc2::BUFF_ID::BENIGN) + .value("BIOSTASIS", sc2::BUFF_ID::BIOSTASIS) + .value("BLINDINGCLOUD", sc2::BUFF_ID::BLINDINGCLOUD) + .value("BLINDINGCLOUDSTRUCTURE", sc2::BUFF_ID::BLINDINGCLOUDSTRUCTURE) + .value("BUILDINGSCARAB", sc2::BUFF_ID::BUILDINGSCARAB) + .value("BUILDINGSHIELD", sc2::BUFF_ID::BUILDINGSHIELD) + .value("BUILDINGSTASIS", sc2::BUFF_ID::BUILDINGSTASIS) + .value("BURROWCHARGE", sc2::BUFF_ID::BURROWCHARGE) + .value("BURSTCAPACITORSDAMAGEBUFF", sc2::BUFF_ID::BURSTCAPACITORSDAMAGEBUFF) + .value("BYPASSARMORDEBUFFONE", sc2::BUFF_ID::BYPASSARMORDEBUFFONE) + .value("BYPASSARMORDEBUFFTHREE", sc2::BUFF_ID::BYPASSARMORDEBUFFTHREE) + .value("BYPASSARMORDEBUFFTWO", sc2::BUFF_ID::BYPASSARMORDEBUFFTWO) + .value("CANNONRADAR", sc2::BUFF_ID::CANNONRADAR) + .value("CAPRESOURCE", sc2::BUFF_ID::CAPRESOURCE) + .value("CARRYHARVESTABLEVESPENEGEYSERGAS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGAS) + .value("CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASPROTOSS) + .value("CARRYHARVESTABLEVESPENEGEYSERGASZERG", sc2::BUFF_ID::CARRYHARVESTABLEVESPENEGEYSERGASZERG) + .value("CARRYHIGHYIELDMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYHIGHYIELDMINERALFIELDMINERALS) + .value("CARRYMINERALFIELDMINERALS", sc2::BUFF_ID::CARRYMINERALFIELDMINERALS) + .value("CHANNELSNIPECOMBAT", sc2::BUFF_ID::CHANNELSNIPECOMBAT) + .value("CHARGEUP", sc2::BUFF_ID::CHARGEUP) + .value("CHARGING", sc2::BUFF_ID::CHARGING) + .value("CHRONOBOOSTENERGYCOST", sc2::BUFF_ID::CHRONOBOOSTENERGYCOST) + .value("CLOAKFIELDEFFECT", sc2::BUFF_ID::CLOAKFIELDEFFECT) + .value("CLOAKINGFIELDTARGETED", sc2::BUFF_ID::CLOAKINGFIELDTARGETED) + .value("CLOAKUNIT", sc2::BUFF_ID::CLOAKUNIT) + .value("COLLAPSIBLEROCKTOWERCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLEROCKTOWERCONJOINEDSEARCH) + .value("COLLAPSIBLEROCKTOWERRAMPDIAGONALCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLEROCKTOWERRAMPDIAGONALCONJOINEDSEARCH) + .value("COLLAPSIBLETERRANTOWERCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLETERRANTOWERCONJOINEDSEARCH) + .value("COLLAPSIBLETERRANTOWERRAMPDIAGONALCONJOINEDSEARCH", sc2::BUFF_ID::COLLAPSIBLETERRANTOWERRAMPDIAGONALCONJOINEDSEARCH) + .value("COLONYINFESTATION", sc2::BUFF_ID::COLONYINFESTATION) + .value("CONTAMINATED", sc2::BUFF_ID::CONTAMINATED) + .value("CORRUPTION", sc2::BUFF_ID::CORRUPTION) + .value("CORRUPTIONBOMBDAMAGE", sc2::BUFF_ID::CORRUPTIONBOMBDAMAGE) + .value("CORRUPTORGROUNDATTACKDEBUFF", sc2::BUFF_ID::CORRUPTORGROUNDATTACKDEBUFF) + .value("CORRUPTORINFESTING", sc2::BUFF_ID::CORRUPTORINFESTING) + .value("CORSAIRMPDISRUPTIONWEB", sc2::BUFF_ID::CORSAIRMPDISRUPTIONWEB) + .value("DEFENSIVEMATRIX", sc2::BUFF_ID::DEFENSIVEMATRIX) + .value("DEFILERMPCONSUME", sc2::BUFF_ID::DEFILERMPCONSUME) + .value("DEFILERMPDARKSWARM", sc2::BUFF_ID::DEFILERMPDARKSWARM) + .value("DEFILERMPPLAGUE", sc2::BUFF_ID::DEFILERMPPLAGUE) + .value("DEVOURERMPACIDSPORES", sc2::BUFF_ID::DEVOURERMPACIDSPORES) + .value("DIGESTERCREEPSPRAYVISION", sc2::BUFF_ID::DIGESTERCREEPSPRAYVISION) + .value("DISABLEABILS", sc2::BUFF_ID::DISABLEABILS) + .value("DISABLEINTERCEPTORS", sc2::BUFF_ID::DISABLEINTERCEPTORS) + .value("DISRUPTORPUSH", sc2::BUFF_ID::DISRUPTORPUSH) + .value("DOMINATION", sc2::BUFF_ID::DOMINATION) + .value("DOOMDAMAGEDELAY", sc2::BUFF_ID::DOOMDAMAGEDELAY) + .value("DUTCHMARAUDERSLOW", sc2::BUFF_ID::DUTCHMARAUDERSLOW) + .value("EMPBURST", sc2::BUFF_ID::EMPBURST) + .value("EMPDECLOAK", sc2::BUFF_ID::EMPDECLOAK) + .value("EMPDRAIN", sc2::BUFF_ID::EMPDRAIN) + .value("ENGAGE", sc2::BUFF_ID::ENGAGE) + .value("ETHEREAL", sc2::BUFF_ID::ETHEREAL) + .value("EXTENDBRIDGEEXTENDINGBRIDGENEWIDE10OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENEWIDE10OUT) + .value("EXTENDBRIDGEEXTENDINGBRIDGENEWIDE12OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENEWIDE12OUT) + .value("EXTENDBRIDGEEXTENDINGBRIDGENEWIDE8OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENEWIDE8OUT) + .value("EXTENDBRIDGEEXTENDINGBRIDGENWWIDE10OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENWWIDE10OUT) + .value("EXTENDBRIDGEEXTENDINGBRIDGENWWIDE12OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENWWIDE12OUT) + .value("EXTENDBRIDGEEXTENDINGBRIDGENWWIDE8OUT", sc2::BUFF_ID::EXTENDBRIDGEEXTENDINGBRIDGENWWIDE8OUT) + .value("EYESTALK", sc2::BUFF_ID::EYESTALK) + .value("FUNGALGROWTH", sc2::BUFF_ID::FUNGALGROWTH) + .value("GHOSTBLAST", sc2::BUFF_ID::GHOSTBLAST) + .value("GHOSTCLOAK", sc2::BUFF_ID::GHOSTCLOAK) + .value("GHOSTHOLDFIRE", sc2::BUFF_ID::GHOSTHOLDFIRE) + .value("GHOSTHOLDFIREB", sc2::BUFF_ID::GHOSTHOLDFIREB) + .value("GHOSTSNIPEDOT", sc2::BUFF_ID::GHOSTSNIPEDOT) + .value("GRAVITONBEAM", sc2::BUFF_ID::GRAVITONBEAM) + .value("GRAVITONPRISON", sc2::BUFF_ID::GRAVITONPRISON) + .value("HEROICBUFF03", sc2::BUFF_ID::HEROICBUFF03) + .value("HIDDEN", sc2::BUFF_ID::HIDDEN) + .value("HYBRIDCZERGYROOTS", sc2::BUFF_ID::HYBRIDCZERGYROOTS) + .value("HYBRIDFZERGYROOTS", sc2::BUFF_ID::HYBRIDFZERGYROOTS) + .value("IMMORTALOVERLOAD", sc2::BUFF_ID::IMMORTALOVERLOAD) + .value("INCAPACITATED", sc2::BUFF_ID::INCAPACITATED) + .value("INFESTORDISEASE", sc2::BUFF_ID::INFESTORDISEASE) + .value("INFESTORENSNARE", sc2::BUFF_ID::INFESTORENSNARE) + .value("INFESTORENSNAREMAKEPRECURSORREHEIGHTSOURCE", sc2::BUFF_ID::INFESTORENSNAREMAKEPRECURSORREHEIGHTSOURCE) + .value("INHIBITORZONEFLYINGTEMPORALFIELD", sc2::BUFF_ID::INHIBITORZONEFLYINGTEMPORALFIELD) + .value("INHIBITORZONETEMPORALFIELD", sc2::BUFF_ID::INHIBITORZONETEMPORALFIELD) + .value("INVALID", sc2::BUFF_ID::INVALID) + .value("INVULNERABILITYSHIELD", sc2::BUFF_ID::INVULNERABILITYSHIELD) + .value("IRRADIATE", sc2::BUFF_ID::IRRADIATE) + .value("ITEMGRAVITYBOMBS", sc2::BUFF_ID::ITEMGRAVITYBOMBS) + .value("JUMPSTOMPFSTUN", sc2::BUFF_ID::JUMPSTOMPFSTUN) + .value("JUMPSTOMPSTUN", sc2::BUFF_ID::JUMPSTOMPSTUN) + .value("KARASSPSISTORM", sc2::BUFF_ID::KARASSPSISTORM) + .value("LASERSIGHT", sc2::BUFF_ID::LASERSIGHT) + .value("LASERTARGETING", sc2::BUFF_ID::LASERTARGETING) + .value("LEECH", sc2::BUFF_ID::LEECH) + .value("LEECHDISABLEABILITIES", sc2::BUFF_ID::LEECHDISABLEABILITIES) + .value("LIGHTNINGBOMB", sc2::BUFF_ID::LIGHTNINGBOMB) + .value("LIGHTOFAIUR", sc2::BUFF_ID::LIGHTOFAIUR) + .value("LOCKDOWNB", sc2::BUFF_ID::LOCKDOWNB) + .value("LOCKON", sc2::BUFF_ID::LOCKON) + .value("LURKERHOLDFIRE", sc2::BUFF_ID::LURKERHOLDFIRE) + .value("LURKERHOLDFIREB", sc2::BUFF_ID::LURKERHOLDFIREB) + .value("MAXIMUMTHRUST", sc2::BUFF_ID::MAXIMUMTHRUST) + .value("MEDIVACSPEEDBOOST", sc2::BUFF_ID::MEDIVACSPEEDBOOST) + .value("MERCAIRDROPDELAY", sc2::BUFF_ID::MERCAIRDROPDELAY) + .value("MERCENARYCYCLONEMISSILES", sc2::BUFF_ID::MERCENARYCYCLONEMISSILES) + .value("MERCENARYSENSORDISH", sc2::BUFF_ID::MERCENARYSENSORDISH) + .value("MERCENARYSHIELD", sc2::BUFF_ID::MERCENARYSHIELD) + .value("MERCGROUNDDROP", sc2::BUFF_ID::MERCGROUNDDROP) + .value("MERCGROUNDDROPDELAY", sc2::BUFF_ID::MERCGROUNDDROPDELAY) + .value("MINDBLASTSTUN", sc2::BUFF_ID::MINDBLASTSTUN) + .value("MINDCONTROL", sc2::BUFF_ID::MINDCONTROL) + .value("MINEDRONECOUNTDOWN", sc2::BUFF_ID::MINEDRONECOUNTDOWN) + .value("MINEDRONEDOT", sc2::BUFF_ID::MINEDRONEDOT) + .value("MOTHERSHIPCOREENERGIZEVISUAL", sc2::BUFF_ID::MOTHERSHIPCOREENERGIZEVISUAL) + .value("MOTHERSHIPSTASIS", sc2::BUFF_ID::MOTHERSHIPSTASIS) + .value("MOTHERSHIPSTASISCASTER", sc2::BUFF_ID::MOTHERSHIPSTASISCASTER) + .value("NAPALM", sc2::BUFF_ID::NAPALM) + .value("NEURALPARASITE", sc2::BUFF_ID::NEURALPARASITE) + .value("NEURALPARASITEWAIT", sc2::BUFF_ID::NEURALPARASITEWAIT) + .value("NEXUSINVULNERABILITY", sc2::BUFF_ID::NEXUSINVULNERABILITY) + .value("NEXUSPHASESHIFT", sc2::BUFF_ID::NEXUSPHASESHIFT) + .value("NEXUSSHIELDOVERCHARGE", sc2::BUFF_ID::NEXUSSHIELDOVERCHARGE) + .value("NEXUSSHIELDRECHARGEONPYLONBEHAVIOR", sc2::BUFF_ID::NEXUSSHIELDRECHARGEONPYLONBEHAVIOR) + .value("NEXUSSHIELDRECHARGEONPYLONBEHAVIORSECONDARYONTARGET", sc2::BUFF_ID::NEXUSSHIELDRECHARGEONPYLONBEHAVIORSECONDARYONTARGET) + .value("NULLFIELD", sc2::BUFF_ID::NULLFIELD) + .value("NYDUSWORMLAVAINSTANTDEATH", sc2::BUFF_ID::NYDUSWORMLAVAINSTANTDEATH) + .value("ORACLECLOAKFIELD", sc2::BUFF_ID::ORACLECLOAKFIELD) + .value("ORACLECLOAKFIELDEFFECT", sc2::BUFF_ID::ORACLECLOAKFIELDEFFECT) + .value("ORACLEPHASESHIFT", sc2::BUFF_ID::ORACLEPHASESHIFT) + .value("ORACLEREVELATION", sc2::BUFF_ID::ORACLEREVELATION) + .value("ORACLESTASISTRAPTARGET", sc2::BUFF_ID::ORACLESTASISTRAPTARGET) + .value("ORACLEWEAPON", sc2::BUFF_ID::ORACLEWEAPON) + .value("OVERCHARGE", sc2::BUFF_ID::OVERCHARGE) + .value("OVERCHARGEDAMAGE", sc2::BUFF_ID::OVERCHARGEDAMAGE) + .value("OVERCHARGESPEEDBOOST", sc2::BUFF_ID::OVERCHARGESPEEDBOOST) + .value("PARASITICBOMB", sc2::BUFF_ID::PARASITICBOMB) + .value("PARASITICBOMBDELAYTIMEDLIFE", sc2::BUFF_ID::PARASITICBOMBDELAYTIMEDLIFE) + .value("PARASITICBOMBSECONDARYUNITSEARCH", sc2::BUFF_ID::PARASITICBOMBSECONDARYUNITSEARCH) + .value("PARASITICBOMBUNITKU", sc2::BUFF_ID::PARASITICBOMBUNITKU) + .value("PERMANENTLYCLOAKED", sc2::BUFF_ID::PERMANENTLYCLOAKED) + .value("PERSONALCLOAKINGFREE", sc2::BUFF_ID::PERSONALCLOAKINGFREE) + .value("PHASESHIELD", sc2::BUFF_ID::PHASESHIELD) + .value("POWERUSERWARPABLE", sc2::BUFF_ID::POWERUSERWARPABLE) + .value("PREDATORCLOAKING", sc2::BUFF_ID::PREDATORCLOAKING) + .value("PROTECTIVEBARRIER", sc2::BUFF_ID::PROTECTIVEBARRIER) + .value("PSIDISRUPTION", sc2::BUFF_ID::PSIDISRUPTION) + .value("PSIONICSHOCKWAVEHEIGHTANDSTUN", sc2::BUFF_ID::PSIONICSHOCKWAVEHEIGHTANDSTUN) + .value("PSISTORM", sc2::BUFF_ID::PSISTORM) + .value("PSYTROUSOXIDE", sc2::BUFF_ID::PSYTROUSOXIDE) + .value("PURIFICATIONNOVA", sc2::BUFF_ID::PURIFICATIONNOVA) + .value("PURIFICATIONNOVAPOST", sc2::BUFF_ID::PURIFICATIONNOVAPOST) + .value("PURIFIERPLANETCRACKERCHARGE", sc2::BUFF_ID::PURIFIERPLANETCRACKERCHARGE) + .value("PURIFY", sc2::BUFF_ID::PURIFY) + .value("QUEENKNOCKDOWN", sc2::BUFF_ID::QUEENKNOCKDOWN) + .value("QUEENMPENSNARE", sc2::BUFF_ID::QUEENMPENSNARE) + .value("QUEENSPAWNLARVATIMER", sc2::BUFF_ID::QUEENSPAWNLARVATIMER) + .value("RADAR25", sc2::BUFF_ID::RADAR25) + .value("RAVENSCRAMBLERMISSILE", sc2::BUFF_ID::RAVENSCRAMBLERMISSILE) + .value("RAVENSHREDDERMISSILEARMORREDUCTION", sc2::BUFF_ID::RAVENSHREDDERMISSILEARMORREDUCTION) + .value("RAVENSHREDDERMISSILEARMORREDUCTIONUISUBTRUCT", sc2::BUFF_ID::RAVENSHREDDERMISSILEARMORREDUCTIONUISUBTRUCT) + .value("RAVENSHREDDERMISSILETIMEOUT", sc2::BUFF_ID::RAVENSHREDDERMISSILETIMEOUT) + .value("RAVENSHREDDERMISSILETINT", sc2::BUFF_ID::RAVENSHREDDERMISSILETINT) + .value("RAYNORMISSILETIMEDLIFE", sc2::BUFF_ID::RAYNORMISSILETIMEDLIFE) + .value("RAYNORTIMEBOMBMISSILE", sc2::BUFF_ID::RAYNORTIMEBOMBMISSILE) + .value("RAYNORTIMEBOMBUNIT", sc2::BUFF_ID::RAYNORTIMEBOMBUNIT) + .value("RELEASEINTERCEPTORSBEACON", sc2::BUFF_ID::RELEASEINTERCEPTORSBEACON) + .value("RELEASEINTERCEPTORSCOOLDOWN", sc2::BUFF_ID::RELEASEINTERCEPTORSCOOLDOWN) + .value("RELEASEINTERCEPTORSTIMEDLIFEWARNING", sc2::BUFF_ID::RELEASEINTERCEPTORSTIMEDLIFEWARNING) + .value("RELEASEINTERCEPTORSWANDERDELAY", sc2::BUFF_ID::RELEASEINTERCEPTORSWANDERDELAY) + .value("RESCUE", sc2::BUFF_ID::RESCUE) + .value("RESONATINGGLAIVESPHASESHIFT", sc2::BUFF_ID::RESONATINGGLAIVESPHASESHIFT) + .value("RESOURCESTUN", sc2::BUFF_ID::RESOURCESTUN) + .value("RESTORESHIELDS", sc2::BUFF_ID::RESTORESHIELDS) + .value("ROUGHTERRAINSEARCH", sc2::BUFF_ID::ROUGHTERRAINSEARCH) + .value("ROUGHTERRAINSLOW", sc2::BUFF_ID::ROUGHTERRAINSLOW) + .value("SCIENCEVESSELCLOAKFIELD", sc2::BUFF_ID::SCIENCEVESSELCLOAKFIELD) + .value("SCRYER", sc2::BUFF_ID::SCRYER) + .value("SCRYERFRIENDLY", sc2::BUFF_ID::SCRYERFRIENDLY) + .value("SEEKERMISSILE", sc2::BUFF_ID::SEEKERMISSILE) + .value("SEEKERMISSILETIMEOUT", sc2::BUFF_ID::SEEKERMISSILETIMEOUT) + .value("SELFREPAIR", sc2::BUFF_ID::SELFREPAIR) + .value("SHADOWCLONE", sc2::BUFF_ID::SHADOWCLONE) + .value("SHEEPBUSY", sc2::BUFF_ID::SHEEPBUSY) + .value("SHIFTDELAY", sc2::BUFF_ID::SHIFTDELAY) + .value("SHREDDERSWARMDAMAGEAPPLY", sc2::BUFF_ID::SHREDDERSWARMDAMAGEAPPLY) + .value("SLAYNELEMENTALGRABSTUN", sc2::BUFF_ID::SLAYNELEMENTALGRABSTUN) + .value("SLIMED", sc2::BUFF_ID::SLIMED) + .value("SLOW", sc2::BUFF_ID::SLOW) + .value("SPECTRECLOAKING", sc2::BUFF_ID::SPECTRECLOAKING) + .value("SPECTRECLOAKINGFREE", sc2::BUFF_ID::SPECTRECLOAKINGFREE) + .value("SPECTREHOLDFIRE", sc2::BUFF_ID::SPECTREHOLDFIRE) + .value("SPECTREHOLDFIREB", sc2::BUFF_ID::SPECTREHOLDFIREB) + .value("SPECTRELOCKDOWNB", sc2::BUFF_ID::SPECTRELOCKDOWNB) + .value("SPECTRESHIELD", sc2::BUFF_ID::SPECTRESHIELD) + .value("SPORECANNONMISSILE", sc2::BUFF_ID::SPORECANNONMISSILE) + .value("SS_BATTLECRUISERCOLLISIONCHECK", sc2::BUFF_ID::SS_BATTLECRUISERCOLLISIONCHECK) + .value("SS_BATTLECRUISERHUNTERSEEKERTIMEOUT", sc2::BUFF_ID::SS_BATTLECRUISERHUNTERSEEKERTIMEOUT) + .value("SS_BATTLECRUISERMISSILELAUNCHER", sc2::BUFF_ID::SS_BATTLECRUISERMISSILELAUNCHER) + .value("SS_CARRIERBOSSCOLLISIONCHECK", sc2::BUFF_ID::SS_CARRIERBOSSCOLLISIONCHECK) + .value("SS_CARRIERCOLLISIONCHECK", sc2::BUFF_ID::SS_CARRIERCOLLISIONCHECK) + .value("SS_CORRUPTORCOLLISIONCHECK", sc2::BUFF_ID::SS_CORRUPTORCOLLISIONCHECK) + .value("SS_CORRUPTORMISSILETARGETCHECK", sc2::BUFF_ID::SS_CORRUPTORMISSILETARGETCHECK) + .value("SS_FIGHTERBOMBMISSILEDEATH", sc2::BUFF_ID::SS_FIGHTERBOMBMISSILEDEATH) + .value("SS_FIGHTERDRONEDAMAGERESPONSE", sc2::BUFF_ID::SS_FIGHTERDRONEDAMAGERESPONSE) + .value("SS_INTERCEPTORCOLLISIONCHECK", sc2::BUFF_ID::SS_INTERCEPTORCOLLISIONCHECK) + .value("SS_INVULNERABLE", sc2::BUFF_ID::SS_INVULNERABLE) + .value("SS_LEVIATHANBOMBCOLLISIONCHECK", sc2::BUFF_ID::SS_LEVIATHANBOMBCOLLISIONCHECK) + .value("SS_LEVIATHANBOMBEXPLODETIMER", sc2::BUFF_ID::SS_LEVIATHANBOMBEXPLODETIMER) + .value("SS_LEVIATHANBOMBMISSILETARGETCHECK", sc2::BUFF_ID::SS_LEVIATHANBOMBMISSILETARGETCHECK) + .value("SS_LEVIATHANCOLLISIONCHECK", sc2::BUFF_ID::SS_LEVIATHANCOLLISIONCHECK) + .value("SS_LEVIATHANTENTACLEMISSILESCANSWAPDELAY", sc2::BUFF_ID::SS_LEVIATHANTENTACLEMISSILESCANSWAPDELAY) + .value("SS_LEVIATHANTENTACLEMISSILETARGETCHECK", sc2::BUFF_ID::SS_LEVIATHANTENTACLEMISSILETARGETCHECK) + .value("SS_LEVIATHANTENTACLEMISSILETARGETCHECKINVERTED", sc2::BUFF_ID::SS_LEVIATHANTENTACLEMISSILETARGETCHECKINVERTED) + .value("SS_LEVIATHANTENTACLETARGETDEATHDELAY", sc2::BUFF_ID::SS_LEVIATHANTENTACLETARGETDEATHDELAY) + .value("SS_LIGHTNINGPROJECTOR", sc2::BUFF_ID::SS_LIGHTNINGPROJECTOR) + .value("SS_LIGHTNINGPROJECTORCOLLISIONCHECK", sc2::BUFF_ID::SS_LIGHTNINGPROJECTORCOLLISIONCHECK) + .value("SS_MAXACCELERATION", sc2::BUFF_ID::SS_MAXACCELERATION) + .value("SS_MAXSPEED", sc2::BUFF_ID::SS_MAXSPEED) + .value("SS_MISSILETARGETCHECK", sc2::BUFF_ID::SS_MISSILETARGETCHECK) + .value("SS_MISSILETARGETCHECKVIKING", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKING) + .value("SS_MISSILETARGETCHECKVIKINGDRONE", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKINGDRONE) + .value("SS_MISSILETARGETCHECKVIKINGSTRONG1", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKINGSTRONG1) + .value("SS_MISSILETARGETCHECKVIKINGSTRONG2", sc2::BUFF_ID::SS_MISSILETARGETCHECKVIKINGSTRONG2) + .value("SS_MISSILETIMEOUT", sc2::BUFF_ID::SS_MISSILETIMEOUT) + .value("SS_PHOENIXCOLLISIONCHECK", sc2::BUFF_ID::SS_PHOENIXCOLLISIONCHECK) + .value("SS_POWERUPDIAGONAL1", sc2::BUFF_ID::SS_POWERUPDIAGONAL1) + .value("SS_POWERUPDIAGONAL2", sc2::BUFF_ID::SS_POWERUPDIAGONAL2) + .value("SS_POWERUPHEALTH1", sc2::BUFF_ID::SS_POWERUPHEALTH1) + .value("SS_POWERUPHEALTH2", sc2::BUFF_ID::SS_POWERUPHEALTH2) + .value("SS_POWERUPMORPHTOBOMB", sc2::BUFF_ID::SS_POWERUPMORPHTOBOMB) + .value("SS_POWERUPMORPHTOHEALTH", sc2::BUFF_ID::SS_POWERUPMORPHTOHEALTH) + .value("SS_POWERUPMORPHTOSIDEMISSILES", sc2::BUFF_ID::SS_POWERUPMORPHTOSIDEMISSILES) + .value("SS_POWERUPMORPHTOSTRONGERMISSILES", sc2::BUFF_ID::SS_POWERUPMORPHTOSTRONGERMISSILES) + .value("SS_POWERUPSTRONG", sc2::BUFF_ID::SS_POWERUPSTRONG) + .value("SS_SCIENCEVESSELCOLLISIONCHECK", sc2::BUFF_ID::SS_SCIENCEVESSELCOLLISIONCHECK) + .value("SS_SCOURGECOLLISIONCHECK", sc2::BUFF_ID::SS_SCOURGECOLLISIONCHECK) + .value("SS_SCOURGEDEATH", sc2::BUFF_ID::SS_SCOURGEDEATH) + .value("SS_SCOURGEMISSILETARGETCHECK", sc2::BUFF_ID::SS_SCOURGEMISSILETARGETCHECK) + .value("SS_SCOUTCOLLISIONCHECK", sc2::BUFF_ID::SS_SCOUTCOLLISIONCHECK) + .value("SS_STRONGERENEMYBUFF", sc2::BUFF_ID::SS_STRONGERENEMYBUFF) + .value("SS_SWARMGUARDIANCOLLISIONCHECK", sc2::BUFF_ID::SS_SWARMGUARDIANCOLLISIONCHECK) + .value("SS_TERRATRONARMMISSILETARGETCHECK", sc2::BUFF_ID::SS_TERRATRONARMMISSILETARGETCHECK) + .value("SS_TERRATRONCOLLISIONCHECK", sc2::BUFF_ID::SS_TERRATRONCOLLISIONCHECK) + .value("SS_TERRATRONMISSILELAUNCHER", sc2::BUFF_ID::SS_TERRATRONMISSILELAUNCHER) + .value("SS_TERRATRONMISSILESPINNERCOLLISIONCHECK", sc2::BUFF_ID::SS_TERRATRONMISSILESPINNERCOLLISIONCHECK) + .value("SS_TERRATRONMISSILESPINNERMISSILELAUNCHER", sc2::BUFF_ID::SS_TERRATRONMISSILESPINNERMISSILELAUNCHER) + .value("SS_TERRATRONSAWCOLLISIONCHECK", sc2::BUFF_ID::SS_TERRATRONSAWCOLLISIONCHECK) + .value("SS_TERRATRONSTUN", sc2::BUFF_ID::SS_TERRATRONSTUN) + .value("SS_VIKINGRESPAWN", sc2::BUFF_ID::SS_VIKINGRESPAWN) + .value("SS_WRAITHCOLLISIONCHECK", sc2::BUFF_ID::SS_WRAITHCOLLISIONCHECK) + .value("STASIS", sc2::BUFF_ID::STASIS) + .value("STIMPACK", sc2::BUFF_ID::STIMPACK) + .value("STIMPACKMARAUDER", sc2::BUFF_ID::STIMPACKMARAUDER) + .value("STUNROUNDINITIALBEHAVIOR", sc2::BUFF_ID::STUNROUNDINITIALBEHAVIOR) + .value("SUPPLYDROP", sc2::BUFF_ID::SUPPLYDROP) + .value("TAUNTB", sc2::BUFF_ID::TAUNTB) + .value("TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR", sc2::BUFF_ID::TEMPESTDISRUPTIONBLASTSTUNBEHAVIOR) + .value("TEMPORALFIELD", sc2::BUFF_ID::TEMPORALFIELD) + .value("TEMPORALRIFTUNIT", sc2::BUFF_ID::TEMPORALRIFTUNIT) + .value("TESTATTRIBUTE", sc2::BUFF_ID::TESTATTRIBUTE) + .value("TESTVETERANCY", sc2::BUFF_ID::TESTVETERANCY) + .value("TIMESCALECONVERSIONBEHAVIOR", sc2::BUFF_ID::TIMESCALECONVERSIONBEHAVIOR) + .value("TIMESTOPSTUN", sc2::BUFF_ID::TIMESTOPSTUN) + .value("TIMEWARPPRODUCTION", sc2::BUFF_ID::TIMEWARPPRODUCTION) + .value("TRANSFUSION", sc2::BUFF_ID::TRANSFUSION) + .value("TRANSIENTMORPH", sc2::BUFF_ID::TRANSIENTMORPH) + .value("TYCHUSCOMMANDOSTIMPACK", sc2::BUFF_ID::TYCHUSCOMMANDOSTIMPACK) + .value("ULTRASONICPULSESTUN", sc2::BUFF_ID::ULTRASONICPULSESTUN) + .value("VIPERCONSUMESTRUCTURE", sc2::BUFF_ID::VIPERCONSUMESTRUCTURE) + .value("VIRALPLASMA", sc2::BUFF_ID::VIRALPLASMA) + .value("VOIDMPIMMORTALREVIVESUPRESSED", sc2::BUFF_ID::VOIDMPIMMORTALREVIVESUPRESSED) + .value("VOIDRAYSWARMDAMAGEBOOST", sc2::BUFF_ID::VOIDRAYSWARMDAMAGEBOOST) + .value("VOIDSIPHON", sc2::BUFF_ID::VOIDSIPHON) + .value("VOODOOLOCKDOWN", sc2::BUFF_ID::VOODOOLOCKDOWN) + .value("VOODOOSHIELD", sc2::BUFF_ID::VOODOOSHIELD) + .value("VORTEXBEHAVIOR", sc2::BUFF_ID::VORTEXBEHAVIOR) + .value("VORTEXBEHAVIORENEMY", sc2::BUFF_ID::VORTEXBEHAVIORENEMY) + .value("VORTEXBEHAVIORERADICATOR", sc2::BUFF_ID::VORTEXBEHAVIORERADICATOR) + .value("WATER", sc2::BUFF_ID::WATER) + .value("WRAITHCLOAK", sc2::BUFF_ID::WRAITHCLOAK) + .value("ZERATULSTUN", sc2::BUFF_ID::ZERATULSTUN) + .value("_250MMSTRIKECANNONS", sc2::BUFF_ID::_250MMSTRIKECANNONS) + .value("_330MMBARRAGECANNONS", sc2::BUFF_ID::_330MMBARRAGECANNONS); + + py::enum_<sc2::EFFECT_ID>(m, "EFFECT_ID") + .value("BLINDINGCLOUD", sc2::EFFECT_ID::BLINDINGCLOUD) + .value("CORROSIVEBILE", sc2::EFFECT_ID::CORROSIVEBILE) + .value("GUARDIANSHIELD", sc2::EFFECT_ID::GUARDIANSHIELD) + .value("INVALID", sc2::EFFECT_ID::INVALID) + .value("LIBERATORDEFENDERZONE", sc2::EFFECT_ID::LIBERATORDEFENDERZONE) + .value("LIBERATORDEFENDERZONESETUP", sc2::EFFECT_ID::LIBERATORDEFENDERZONESETUP) + .value("LURKERSPINES", sc2::EFFECT_ID::LURKERSPINES) + .value("NUKEDOT", sc2::EFFECT_ID::NUKEDOT) + .value("PSISTORM", sc2::EFFECT_ID::PSISTORM) + .value("SCANNERSWEEP", sc2::EFFECT_ID::SCANNERSWEEP) + .value("TEMPORALFIELD", sc2::EFFECT_ID::TEMPORALFIELD) + .value("TEMPORALFIELDGROWING", sc2::EFFECT_ID::TEMPORALFIELDGROWING) + .value("THERMALLANCE", sc2::EFFECT_ID::THERMALLANCE); + };