Top

sc2.data module

import enum
from s2clientprotocol import (
    sc2api_pb2 as sc_pb,
    raw_pb2 as raw_pb,
    data_pb2 as data_pb,
    common_pb2 as common_pb,
    error_pb2 as error_pb
)
from typing import List, Dict, Set, Tuple, Any, Optional, Union # mypy type checking

from .ids.unit_typeid import UnitTypeId
from .ids.ability_id import AbilityId

""" For the list of enums, see here

https://github.com/Blizzard/s2client-api/blob/d9ba0a33d6ce9d233c2a4ee988360c188fbe9dbf/include/sc2api/sc2_gametypes.h
https://github.com/Blizzard/s2client-api/blob/d9ba0a33d6ce9d233c2a4ee988360c188fbe9dbf/include/sc2api/sc2_action.h
https://github.com/Blizzard/s2client-api/blob/d9ba0a33d6ce9d233c2a4ee988360c188fbe9dbf/include/sc2api/sc2_unit.h
https://github.com/Blizzard/s2client-api/blob/d9ba0a33d6ce9d233c2a4ee988360c188fbe9dbf/include/sc2api/sc2_data.h
"""

CreateGameError = enum.Enum("CreateGameError", sc_pb.ResponseCreateGame.Error.items())

PlayerType = enum.Enum("PlayerType", sc_pb.PlayerType.items())
Difficulty = enum.Enum("Difficulty", sc_pb.Difficulty.items())
Status = enum.Enum("Status", sc_pb.Status.items())
Result = enum.Enum("Result", sc_pb.Result.items())
Alert = enum.Enum("Alert", sc_pb.Alert.items())
ChatChannel = enum.Enum("ChatChannel", sc_pb.ActionChat.Channel.items())

Race = enum.Enum("Race", common_pb.Race.items())

DisplayType = enum.Enum("DisplayType", raw_pb.DisplayType.items())
Alliance = enum.Enum("Alliance", raw_pb.Alliance.items())
CloakState = enum.Enum("CloakState", raw_pb.CloakState.items())

Attribute = enum.Enum("Attribute", data_pb.Attribute.items())
TargetType = enum.Enum("TargetType", data_pb.Weapon.TargetType.items())
Target = enum.Enum("Target", data_pb.AbilityData.Target.items())

ActionResult = enum.Enum("ActionResult", error_pb.ActionResult.items())

race_worker: Dict[Race, UnitTypeId] = {
    Race.Protoss: UnitTypeId.PROBE,
    Race.Terran: UnitTypeId.SCV,
    Race.Zerg: UnitTypeId.DRONE
}

race_townhalls: Dict[Race, Set[UnitTypeId]] = {
    Race.Protoss: {UnitTypeId.NEXUS},
    Race.Terran: {UnitTypeId.COMMANDCENTER, UnitTypeId.ORBITALCOMMAND, UnitTypeId.PLANETARYFORTRESS},
    Race.Zerg: {UnitTypeId.HATCHERY, UnitTypeId.LAIR, UnitTypeId.HIVE}
}

warpgate_abilities: Dict[AbilityId, AbilityId] = {
    AbilityId.GATEWAYTRAIN_ZEALOT: AbilityId.WARPGATETRAIN_ZEALOT,
    AbilityId.GATEWAYTRAIN_STALKER: AbilityId.WARPGATETRAIN_STALKER,
    AbilityId.GATEWAYTRAIN_HIGHTEMPLAR: AbilityId.WARPGATETRAIN_HIGHTEMPLAR,
    AbilityId.GATEWAYTRAIN_DARKTEMPLAR: AbilityId.WARPGATETRAIN_DARKTEMPLAR,
    AbilityId.GATEWAYTRAIN_SENTRY: AbilityId.WARPGATETRAIN_SENTRY,
    AbilityId.TRAIN_ADEPT: AbilityId.TRAINWARP_ADEPT
}

race_gas: Dict[Race, UnitTypeId] = {
    Race.Protoss: UnitTypeId.ASSIMILATOR,
    Race.Terran: UnitTypeId.REFINERY,
    Race.Zerg: UnitTypeId.EXTRACTOR
}

Module variables

var race_gas

var race_townhalls

var race_worker

var warpgate_abilities

Classes

class ActionResult

An enumeration.

Ancestors (in MRO)

Class variables

var AddOnTooFarFromBuilding

var AlreadySpawningLarva

var AlreadyTargeted

var BuildTechRequirementsNotMet

var BuildingIsUnderConstruction

var CantAddMoreCharges

var CantAttackWeaponsDisabled

var CantAttackWithoutAmmo

var CantBuildLocationInvalid

var CantBuildOnDenseTerrain

var CantBuildOnThat

var CantBuildTooCloseToCreepSource

var CantBuildTooCloseToDropOff

var CantBuildTooCloseToResources

var CantBuildTooFarFromBuildPowerSource

var CantBuildTooFarFromCreepSource

var CantBuildTooFarFromWater

var CantDropThisItem

var CantFindCancelOrder

var CantFindDropOff

var CantFindEnoughTargets

var CantFindPlacementLocation

var CantFindTeleportLocation

var CantHarvestThatResource

var CantHoldAnyMoreAmmo

var CantHoldAnyMoreItems

var CantHoldThat

var CantLandLocationInvalid

var CantLandOnDenseTerrain

var CantLandTooCloseToCreepSource

var CantLandTooCloseToResources

var CantLandTooFarFromBuildPowerSource

var CantLandTooFarFromCreepSource

var CantLandTooFarFromTrainPowerSource

var CantLandTooFarFromWater

var CantLoadImmobileUnits

var CantLoadOtherPlayersUnits

var CantLoadThatUnit

var CantLockdown

var CantMindControl

var CantMoveThisItem

var CantPawnThisUnit

var CantQueueThatOrder

var CantRechargeImmobileUnits

var CantRechargeOtherPlayersUnits

var CantRechargeUnderConstructionUnits

var CantSeeBuildLocation

var CantSeeLandLocation

var CantSpend

var CantTargetAirUnits

var CantTargetArmoredUnits

var CantTargetBiologicalUnits

var CantTargetBuriedUnits

var CantTargetCaster

var CantTargetCloakedUnits

var CantTargetDazedUnits

var CantTargetDeadUnits

var CantTargetDestructibles

var CantTargetDetectedUnits

var CantTargetEnemyUnits

var CantTargetEnergyCapableUnits

var CantTargetExhaustedResources

var CantTargetFlyers

var CantTargetFriendlyUnits

var CantTargetGroundUnits

var CantTargetHallucinations

var CantTargetHeroicUnits

var CantTargetHiddenUnits

var CantTargetInvulnerableUnits

var CantTargetItems

var CantTargetLightUnits

var CantTargetMassiveUnits

var CantTargetMechanicalUnits

var CantTargetMissile

var CantTargetNeutralUnits

var CantTargetOuter

var CantTargetPassiveUnits

var CantTargetPreventDefeatUnits

var CantTargetPreventRevealUnits

var CantTargetPsionicUnits

var CantTargetRace

var CantTargetResistantUnits

var CantTargetRevivableUnits

var CantTargetRoboticUnits

var CantTargetShieldCapableUnits

var CantTargetSimilarUnits

var CantTargetStructures

var CantTargetStunnedUnits

var CantTargetSummonedUnits

var CantTargetThatUnit

var CantTargetUncommandableUnits

var CantTargetUnderConstructionUnits

var CantTargetUnitWithEnergy

var CantTargetUnitWithShields

var CantTargetUnitsInAStasisField

var CantTargetUnstoppableUnits

var CantTargetUser1

var CantTargetWorkerUnits

var CantTargetYourOwnUnits

var CantTrade

var CantTrainTooFarFromTrainPowerSource

var CantUnloadUnitsThere

var CantUseInfoPanel

var CantUseMinimap

var CantWarpInUnitsThere

var Cooldown

var CouldntAllocateUnit

var CouldntReachTarget

var EnergySuppressed

var Error

var FoodUsageImpossible

var HarvestersNotRequired

var InvalidItemClass

var LifeSuppressed

var LoadAllNoTargetsFound

var MustBuildRefineryFirst

var MustLockdownUnitFirst

var MustTargetAirUnits

var MustTargetArmoredUnits

var MustTargetBiologicalUnits

var MustTargetBuriedUnits

var MustTargetCaster

var MustTargetCloakedUnits

var MustTargetDazedUnits

var MustTargetDeadUnits

var MustTargetDestructibles

var MustTargetDetectedUnits

var MustTargetEnemyUnits

var MustTargetEnergyCapableUnits

var MustTargetFlyers

var MustTargetFriendlyUnits

var MustTargetGroundUnits

var MustTargetHallucinations

var MustTargetHeroicUnits

var MustTargetHiddenUnits

var MustTargetInventory

var MustTargetInvulnerableUnits

var MustTargetItems

var MustTargetLightUnits

var MustTargetMassiveUnits

var MustTargetMechanicalUnits

var MustTargetMissile

var MustTargetNeutralUnits

var MustTargetOuter

var MustTargetPassiveUnits

var MustTargetPawnableUnit

var MustTargetPreventDefeatUnits

var MustTargetPreventRevealUnits

var MustTargetPsionicUnits

var MustTargetRace

var MustTargetResistantUnits

var MustTargetResources

var MustTargetRevivableUnits

var MustTargetRoboticUnits

var MustTargetShieldCapableUnits

var MustTargetSimilarUnits

var MustTargetStructures

var MustTargetStunnedUnits

var MustTargetSummonedUnits

var MustTargetUncommandableUnits

var MustTargetUnderConstructionUnits

var MustTargetUnit

var MustTargetUnitWithEnergy

var MustTargetUnitWithLife

var MustTargetUnitWithShields

var MustTargetUnitsInAStasisField

var MustTargetUnstoppableUnits

var MustTargetUser1

var MustTargetVisibleLocation

var MustTargetVisibleUnit

var MustTargetWalkableLocation

var MustTargetWorkerUnits

var MustTargetYourOwnUnits

var NoCalldownAvailable

var NoCargoToUnload

var NoItemsToDrop

var NotEnoughCharges

var NotEnoughCustom

var NotEnoughEnergy

var NotEnoughFood

var NotEnoughLife

var NotEnoughMinerals

var NotEnoughRoomToLoadUnit

var NotEnoughShields

var NotEnoughTerrazine

var NotEnoughVespene

var NotSupported

var NotWhileOccupied

var OrderQueueIsFull

var QueueIsFull

var RallyQueueIsFull

var RequiresHealTarget

var RequiresRepairTarget

var Retry

var ShieldsSuppressed

var Success

var TargetHasNoInventory

var TargetIsOutOfArc

var TargetIsOutOfRange

var TargetIsTooClose

var TechRequirementsNotMet

var TooMuchCustom

var TooMuchEnergy

var TooMuchFood

var TooMuchLife

var TooMuchMinerals

var TooMuchShields

var TooMuchTerrazine

var TooMuchVespene

var TransportIsHoldingPosition

var UnitCantMove

var WaypointListFull

var YouCantControlThatUnit

var YouCantIssueCommandsToThatUnit

var name

var value

class Alert

An enumeration.

Ancestors (in MRO)

  • Alert
  • enum.Enum
  • builtins.object

Class variables

var NuclearLaunchDetected

var NydusWormDetected

var name

var value

class Alliance

An enumeration.

Ancestors (in MRO)

Class variables

var Ally

var Enemy

var Neutral

var Self

var name

var value

class Attribute

An enumeration.

Ancestors (in MRO)

Class variables

var Armored

var Biological

var Heroic

var Hover

var Light

var Massive

var Mechanical

var Psionic

var Robotic

var Structure

var Summoned

var name

var value

class ChatChannel

An enumeration.

Ancestors (in MRO)

Class variables

var Broadcast

var Team

var name

var value

class CloakState

An enumeration.

Ancestors (in MRO)

Class variables

var Cloaked

var CloakedDetected

var NotCloaked

var name

var value

class CreateGameError

An enumeration.

Ancestors (in MRO)

Class variables

var InvalidMapData

var InvalidMapHandle

var InvalidMapName

var InvalidMapPath

var InvalidPlayerSetup

var MissingMap

var MissingPlayerSetup

var MultiplayerUnsupported

var name

var value

class Difficulty

An enumeration.

Ancestors (in MRO)

Class variables

var CheatInsane

var CheatMoney

var CheatVision

var Easy

var Hard

var Harder

var Medium

var MediumHard

var VeryEasy

var VeryHard

var name

var value

class DisplayType

An enumeration.

Ancestors (in MRO)

Class variables

var Hidden

var Snapshot

var Visible

var name

var value

class PlayerType

An enumeration.

Ancestors (in MRO)

Class variables

var Computer

var Observer

var Participant

var name

var value

class Race

An enumeration.

Ancestors (in MRO)

  • Race
  • enum.Enum
  • builtins.object

Class variables

var NoRace

var Protoss

var Random

var Terran

var Zerg

var name

var value

class Result

An enumeration.

Ancestors (in MRO)

  • Result
  • enum.Enum
  • builtins.object

Class variables

var Defeat

var Tie

var Undecided

var Victory

var name

var value

class Status

An enumeration.

Ancestors (in MRO)

  • Status
  • enum.Enum
  • builtins.object

Class variables

var ended

var in_game

var in_replay

var init_game

var launched

var name

var quit

var unknown

var value

class Target

An enumeration.

Ancestors (in MRO)

  • Target
  • enum.Enum
  • builtins.object

Class variables

var None

var Point

var PointOrNone

var PointOrUnit

var Unit

var name

var value

class TargetType

An enumeration.

Ancestors (in MRO)

Class variables

var Air

var Any

var Ground

var name

var value