BWAPI
quorum/include/BWAPI/Client/UnitImpl.h
Go to the documentation of this file.
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 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines