BWAPI
trunk/bwapi/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 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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines