BWAPI
|
00001 #pragma once 00002 #include <BWAPI.h> 00003 #include "UnitData.h" 00004 #include <set> 00005 #include <string> 00006 00007 namespace BWAPI 00008 { 00009 class Player; 00010 class UnitImpl : public Unit 00011 { 00012 private: 00013 int id; 00014 UnitType initialType; 00015 int initialResources; 00016 int initialHitPoints; 00017 Position initialPosition; 00018 int lastCommandFrame; 00019 UnitCommand lastCommand; 00020 void* clientInfo; 00021 public: 00022 UnitData* self; 00023 std::set<Unit*> connectedUnits; 00024 std::set<Unit*> loadedUnits; 00025 void clear(); 00026 void saveInitialState(); 00027 00028 UnitImpl(int id); 00029 virtual int getID() const; 00030 virtual Player* getPlayer() const; 00031 virtual UnitType getType() const; 00032 virtual Position getPosition() const; 00033 virtual TilePosition getTilePosition() const; 00034 virtual double getAngle() const; 00035 virtual double getVelocityX() const; 00036 virtual double getVelocityY() const; 00037 virtual int getHitPoints() const; 00038 virtual int getShields() const; 00039 virtual int getEnergy() const; 00040 virtual int getResources() const; 00041 virtual int getResourceGroup() const; 00042 00043 virtual int getDistance(Unit* target) const; 00044 virtual int getDistance(Position target) const; 00045 virtual bool hasPath(Unit* target) const; 00046 virtual bool hasPath(Position target) const; 00047 virtual int getLastCommandFrame() const; 00048 virtual UnitCommand getLastCommand() const; 00049 virtual int getUpgradeLevel(UpgradeType upgrade) const; 00050 00051 virtual UnitType getInitialType() const; 00052 virtual Position getInitialPosition() const; 00053 virtual TilePosition getInitialTilePosition() const; 00054 virtual int getInitialHitPoints() const; 00055 virtual int getInitialResources() const; 00056 00057 virtual int getKillCount() const; 00058 virtual int getAcidSporeCount() const; 00059 virtual int getInterceptorCount() const; 00060 virtual int getScarabCount() const; 00061 virtual int getSpiderMineCount() const; 00062 virtual int getGroundWeaponCooldown() const; 00063 virtual int getAirWeaponCooldown() const; 00064 virtual int getSpellCooldown() const; 00065 virtual int getDefenseMatrixPoints() const; 00066 00067 virtual int getDefenseMatrixTimer() const; 00068 virtual int getEnsnareTimer() const; 00069 virtual int getIrradiateTimer() const; 00070 virtual int getLockdownTimer() const; 00071 virtual int getMaelstromTimer() const; 00072 virtual int getOrderTimer() const; 00073 virtual int getPlagueTimer() const; 00074 virtual int getRemoveTimer() const; 00075 virtual int getStasisTimer() const; 00076 virtual int getStimTimer() const; 00077 00078 virtual UnitType getBuildType() const; 00079 virtual std::list<UnitType> getTrainingQueue() const; 00080 virtual TechType getTech() const; 00081 virtual UpgradeType getUpgrade() const; 00082 virtual int getRemainingBuildTime() const; 00083 virtual int getRemainingTrainTime() const; 00084 virtual int getRemainingResearchTime() const; 00085 virtual int getRemainingUpgradeTime() const; 00086 virtual Unit* getBuildUnit() const; 00087 00088 virtual Unit* getTarget() const; 00089 virtual Position getTargetPosition() const; 00090 virtual Order getOrder() const; 00091 virtual Unit* getOrderTarget() const; 00092 virtual Position getOrderTargetPosition() const; 00093 virtual Order getSecondaryOrder() const; 00094 virtual Position getRallyPosition() const; 00095 virtual Unit* getRallyUnit() const; 00096 virtual Unit* getAddon() const; 00097 virtual Unit* getNydusExit() const; 00098 virtual Unit* getPowerUp() const; 00099 00100 virtual Unit* getTransport() const; 00101 virtual std::set<Unit*> getLoadedUnits() const; 00102 virtual Unit* getCarrier() const; 00103 virtual std::set<Unit*> getInterceptors() const; 00104 virtual Unit* getHatchery() const; 00105 virtual std::set<Unit*> getLarva() const; 00106 virtual std::set<Unit*>& getUnitsInRadius(int radius) const; 00107 virtual std::set<Unit*>& getUnitsInWeaponRange(WeaponType weapon) const; 00108 00109 virtual bool exists() const; 00110 virtual bool hasNuke() const; 00111 virtual bool isAccelerating() const; 00112 virtual bool isAttacking() const; 00113 virtual bool isAttackFrame() const; 00114 virtual bool isBeingConstructed() const; 00115 virtual bool isBeingGathered() const; 00116 virtual bool isBeingHealed() const; 00117 virtual bool isBlind() const; 00118 virtual bool isBraking() const; 00119 virtual bool isBurrowed() const; 00120 virtual bool isCarryingGas() const; 00121 virtual bool isCarryingMinerals() const; 00122 virtual bool isCloaked() const; 00123 virtual bool isCompleted() const; 00124 virtual bool isConstructing() const; 00125 virtual bool isDefenseMatrixed() const; 00126 virtual bool isDetected() const; 00127 virtual bool isEnsnared() const; 00128 virtual bool isFollowing() const; 00129 virtual bool isGatheringGas() const; 00130 virtual bool isGatheringMinerals() const; 00131 virtual bool isHallucination() const; 00132 virtual bool isHoldingPosition() const; 00133 virtual bool isIdle() const; 00134 virtual bool isInterruptible() const; 00135 virtual bool isInvincible() const; 00136 virtual bool isInWeaponRange(Unit *target) const; 00137 virtual bool isIrradiated() const; 00138 virtual bool isLifted() const; 00139 virtual bool isLoaded() const; 00140 virtual bool isLockedDown() const; 00141 virtual bool isMaelstrommed() const; 00142 virtual bool isMorphing() const; 00143 virtual bool isMoving() const; 00144 virtual bool isParasited() const; 00145 virtual bool isPatrolling() const; 00146 virtual bool isPlagued() const; 00147 virtual bool isRepairing() const; 00148 virtual bool isResearching() const; 00149 virtual bool isSelected() const; 00150 virtual bool isSieged() const; 00151 virtual bool isStartingAttack() const; 00152 virtual bool isStasised() const; 00153 virtual bool isStimmed() const; 00154 virtual bool isStuck() const; 00155 virtual bool isTraining() const; 00156 virtual bool isUnderStorm() const; 00157 virtual bool isUnderDarkSwarm() const; 00158 virtual bool isUnderDisruptionWeb() const; 00159 virtual bool isUnpowered() const; 00160 virtual bool isUpgrading() const; 00161 virtual bool isVisible() const; 00162 virtual bool isVisible(Player* player) const; 00163 00164 virtual bool canIssueCommand(UnitCommand command) const; 00165 virtual bool issueCommand(UnitCommand command); 00166 00167 virtual bool attack(Position target, bool shiftQueueCommand = false); 00168 virtual bool attack(Unit* target, bool shiftQueueCommand = false); 00169 virtual bool build(TilePosition target, UnitType type); 00170 virtual bool buildAddon(UnitType type); 00171 virtual bool train(UnitType type); 00172 virtual bool morph(UnitType type); 00173 virtual bool research(TechType tech); 00174 virtual bool upgrade(UpgradeType upgrade); 00175 virtual bool setRallyPoint(Position target); 00176 virtual bool setRallyPoint(Unit* target); 00177 virtual bool move(Position target, bool shiftQueueCommand = false); 00178 virtual bool patrol(Position target, bool shiftQueueCommand = false); 00179 virtual bool holdPosition(bool shiftQueueCommand = false); 00180 virtual bool stop(bool shiftQueueCommand = false); 00181 virtual bool follow(Unit* target, bool shiftQueueCommand = false); 00182 virtual bool gather(Unit* target, bool shiftQueueCommand = false); 00183 virtual bool returnCargo(bool shiftQueueCommand = false); 00184 virtual bool repair(Unit* target, bool shiftQueueCommand = false); 00185 virtual bool burrow(); 00186 virtual bool unburrow(); 00187 virtual bool cloak(); 00188 virtual bool decloak(); 00189 virtual bool siege(); 00190 virtual bool unsiege(); 00191 virtual bool lift(); 00192 virtual bool land(TilePosition target); 00193 virtual bool load(Unit* target, bool shiftQueueCommand = false); 00194 virtual bool unload(Unit* target); 00195 virtual bool unloadAll(bool shiftQueueCommand = false); 00196 virtual bool unloadAll(Position target, bool shiftQueueCommand = false); 00197 virtual bool rightClick(Position target, bool shiftQueueCommand = false); 00198 virtual bool rightClick(Unit* target, bool shiftQueueCommand = false); 00199 virtual bool haltConstruction(); 00200 virtual bool cancelConstruction(); 00201 virtual bool cancelAddon(); 00202 virtual bool cancelTrain(int slot = -2); 00203 virtual bool cancelMorph(); 00204 virtual bool cancelResearch(); 00205 virtual bool cancelUpgrade(); 00206 virtual bool useTech(TechType tech); 00207 virtual bool useTech(TechType tech, Position target); 00208 virtual bool useTech(TechType tech, Unit* target); 00209 00210 virtual void setClientInfo(void* clientinfo); 00211 virtual void* getClientInfo() const; 00212 00213 virtual bool placeCOP(TilePosition target); 00214 00215 virtual bool isUnderAttack() const; 00216 virtual BWAPI::Player *getLastAttackingPlayer() const; 00217 }; 00218 }