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