BWAPI
quorum/include/BWAPI/Unit.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <list>
00004 
00005 #include <BWAPI/Order.h>
00006 #include <BWAPI/TechType.h>
00007 #include <BWAPI/UpgradeType.h>
00008 #include <BWAPI/UnitType.h>
00009 #include <BWAPI/Position.h>
00010 #include <BWAPI/TilePosition.h>
00011 #include <BWAPI/UnitCommand.h>
00012 #include <BWAPI/Client/UnitData.h>
00013 namespace BWAPI
00014 {
00015   class Player;
00016 
00040   class Unit
00041   {
00042     public:
00045       virtual int getID() const = 0;
00046 
00048       virtual Player* getPlayer() const = 0;
00049 
00051       virtual UnitType getType() const = 0;
00052 
00054       virtual Position getPosition() const = 0;
00055 
00058       virtual TilePosition getTilePosition() const = 0;
00059 
00062       virtual double getAngle() const = 0;
00063 
00065       virtual double getVelocityX() const = 0;
00066 
00068       virtual double getVelocityY() const = 0;
00069 
00071       virtual int getHitPoints() const = 0;
00072 
00074       virtual int getShields() const = 0;
00075 
00077       virtual int getEnergy() const = 0;
00078 
00082       virtual int getResources() const = 0;
00083 
00085       virtual int getResourceGroup() const = 0;
00086 
00088       virtual int getDistance(Unit* target) const = 0;
00089 
00091       virtual int getDistance(Position target) const = 0;
00092 
00094       virtual bool hasPath(Unit* target) const = 0;
00095 
00097       virtual bool hasPath(Position target) const = 0;
00098 
00100       virtual int getLastCommandFrame() const = 0;
00101 
00103       virtual UnitCommand getLastCommand() const = 0;
00104 
00107       virtual int getUpgradeLevel(UpgradeType upgrade) const = 0;
00108 
00111       virtual UnitType getInitialType() const = 0;
00112 
00115       virtual Position getInitialPosition() const = 0;
00116 
00120       virtual TilePosition getInitialTilePosition() const = 0;
00121 
00124       virtual int getInitialHitPoints() const = 0;
00125 
00128       virtual int getInitialResources() const = 0;
00129 
00131       virtual int getKillCount() const = 0;
00132 
00134       virtual int getAcidSporeCount() const = 0;
00135 
00137       virtual int getInterceptorCount() const = 0;
00138 
00140       virtual int getScarabCount() const = 0;
00141 
00143       virtual int getSpiderMineCount() const = 0;
00144 
00146       virtual int getGroundWeaponCooldown() const = 0;
00147 
00149       virtual int getAirWeaponCooldown() const = 0;
00150 
00152       virtual int getSpellCooldown() const = 0;
00153 
00156       virtual int getDefenseMatrixPoints() const = 0;
00157 
00159       virtual int getDefenseMatrixTimer() const = 0;
00160 
00162       virtual int getEnsnareTimer() const = 0;
00163 
00165       virtual int getIrradiateTimer() const = 0;
00166 
00168       virtual int getLockdownTimer() const = 0;
00169 
00171       virtual int getMaelstromTimer() const = 0;
00172 
00173       // TODO: add doc
00174       virtual int getOrderTimer() const = 0;
00175 
00177       virtual int getPlagueTimer() const = 0;
00178 
00182       virtual int getRemoveTimer() const = 0;
00183 
00185       virtual int getStasisTimer() const = 0;
00186 
00188       virtual int getStimTimer() const = 0;
00189 
00192       virtual UnitType getBuildType() const = 0;
00193 
00196       virtual std::list<UnitType > getTrainingQueue() const = 0;
00197 
00201       virtual TechType getTech() const = 0;
00202 
00206       virtual UpgradeType getUpgrade() const = 0;
00207 
00209       virtual int getRemainingBuildTime() const = 0;
00210 
00214       virtual int getRemainingTrainTime() const = 0;
00215 
00219       virtual int getRemainingResearchTime() const = 0;
00220 
00224       virtual int getRemainingUpgradeTime() const = 0;
00225 
00229       virtual Unit* getBuildUnit() const = 0;
00230 
00234       virtual Unit* getTarget() const = 0;
00235 
00238       virtual Position getTargetPosition() const = 0;
00239 
00240       // TODO: add doc
00241       virtual Order getOrder() const = 0;
00242           virtual Order getSecondaryOrder() const = 0;
00243 
00247       virtual Unit* getOrderTarget() const = 0;
00248 
00251       virtual Position getOrderTargetPosition() const = 0;
00252 
00256       virtual Position getRallyPosition() const = 0;
00257 
00261       virtual Unit* getRallyUnit() const = 0;
00262 
00264       virtual Unit* getAddon() const = 0;
00265 
00268       virtual Unit* getNydusExit() const = 0;
00269 
00271       virtual Unit* getPowerUp() const = 0;
00272 
00274       virtual Unit* getTransport() const = 0;
00275 
00278       virtual std::set<Unit*> getLoadedUnits() const = 0;
00279 
00282       virtual Unit* getCarrier() const = 0;
00283 
00286       virtual std::set<Unit*> getInterceptors() const = 0;
00287 
00290       virtual Unit* getHatchery() const = 0;
00291 
00295       virtual std::set<Unit*> getLarva() const = 0;
00296 
00298       virtual std::set<Unit*>& getUnitsInRadius(int radius) const = 0;
00299 
00301       virtual std::set<Unit*>& getUnitsInWeaponRange(WeaponType weapon) const = 0;
00302 
00312       virtual bool exists() const = 0;
00313 
00314       /* Returns true if the Nuclear Missile Silo has a nuke */
00315       virtual bool hasNuke() const = 0;
00316 
00318       virtual bool isAccelerating() const = 0;
00319 
00320       // TODO: add doc
00321       virtual bool isAttacking() const = 0;
00322 
00323       virtual bool isAttackFrame() const = 0;
00324 
00330       virtual bool isBeingConstructed() const = 0;
00331 
00333       virtual bool isBeingGathered() const = 0;
00334 
00336       virtual bool isBeingHealed() const = 0;
00337 
00339       virtual bool isBlind() const = 0;
00340 
00342       virtual bool isBraking() const = 0;
00343 
00346       virtual bool isBurrowed() const = 0;
00347 
00350       virtual bool isCarryingGas() const = 0;
00351 
00354       virtual bool isCarryingMinerals() const = 0;
00355 
00358       virtual bool isCloaked() const = 0;
00359 
00361       virtual bool isCompleted() const = 0;
00362 
00366       virtual bool isConstructing() const = 0;
00367 
00369       virtual bool isDefenseMatrixed() const = 0;
00370 
00372       virtual bool isDetected() const = 0;
00373 
00375       virtual bool isEnsnared() const = 0;
00376 
00379       virtual bool isFollowing() const = 0;
00380 
00384       virtual bool isGatheringGas() const = 0;
00385 
00389       virtual bool isGatheringMinerals() const = 0;
00390 
00394       virtual bool isHallucination() const = 0;
00395 
00398       virtual bool isHoldingPosition() const = 0;
00399 
00402       virtual bool isIdle() const = 0;
00403 
00405       virtual bool isInterruptible() const = 0;
00406 
00408       virtual bool isInvincible() const = 0;
00409 
00411       virtual bool isInWeaponRange(Unit *target) const = 0;
00412 
00415       virtual bool isIrradiated() const = 0;
00416 
00419       virtual bool isLifted() const = 0;
00420 
00424       virtual bool isLoaded() const = 0;
00425 
00428       virtual bool isLockedDown() const = 0;
00429 
00432       virtual bool isMaelstrommed() const = 0;
00433 
00436       virtual bool isMorphing() const = 0;
00437 
00440       virtual bool isMoving() const = 0;
00441 
00443       virtual bool isParasited() const = 0;
00444 
00447       virtual bool isPatrolling() const = 0;
00448 
00451       virtual bool isPlagued() const = 0;
00452 
00454       virtual bool isRepairing() const = 0;
00455 
00459       virtual bool isResearching() const = 0;
00460 
00464       virtual bool isSelected() const = 0;
00465 
00468       virtual bool isSieged() const = 0;
00469 
00472       virtual bool isStartingAttack() const = 0;
00473 
00476       virtual bool isStasised() const = 0;
00477 
00480       virtual bool isStimmed() const = 0;
00481 
00483       virtual bool isStuck() const = 0;
00484 
00487       virtual bool isTraining() const = 0;
00488 
00490       virtual bool isUnderStorm() const = 0;
00491 
00493       virtual bool isUnderDarkSwarm() const = 0;
00494 
00496       virtual bool isUnderDisruptionWeb() const = 0;
00497 
00499       virtual bool isUnpowered() const = 0;
00500 
00504       virtual bool isUpgrading() const = 0;
00505 
00509       virtual bool isVisible() const = 0;
00510       virtual bool isVisible(Player* player) const = 0;
00511 
00513       virtual bool canIssueCommand(UnitCommand command) const = 0;
00514 
00516       virtual bool issueCommand(UnitCommand command) = 0;
00517 
00519       virtual bool attack(Position target, bool shiftQueueCommand = false) = 0;
00520 
00522       virtual bool attack(Unit* target, bool shiftQueueCommand = false) = 0;
00523 
00527       virtual bool build(TilePosition target, UnitType type) = 0;
00528 
00531       virtual bool buildAddon(UnitType type) = 0;
00532 
00537       virtual bool train(UnitType type) = 0;
00538 
00541       virtual bool morph(UnitType type) = 0;
00542 
00545       virtual bool research(TechType tech) = 0;
00546 
00549       virtual bool upgrade(UpgradeType upgrade) = 0;
00550 
00553       virtual bool setRallyPoint(Position target) = 0;
00554 
00557       virtual bool setRallyPoint(Unit* target) = 0;
00558 
00561       virtual bool move(Position target, bool shiftQueueCommand = false) = 0;
00562 
00565       virtual bool patrol(Position target, bool shiftQueueCommand = false) = 0;
00566 
00568       virtual bool holdPosition(bool shiftQueueCommand = false) = 0;
00569 
00571       virtual bool stop(bool shiftQueueCommand = false) = 0;
00572 
00575       virtual bool follow(Unit* target, bool shiftQueueCommand = false) = 0;
00576 
00579       virtual bool gather(Unit* target, bool shiftQueueCommand = false) = 0;
00580 
00584       virtual bool returnCargo(bool shiftQueueCommand = false) = 0;
00585 
00589       virtual bool repair(Unit* target, bool shiftQueueCommand = false) = 0;
00590 
00594       virtual bool burrow() = 0;
00595 
00599       virtual bool unburrow() = 0;
00600 
00603       virtual bool cloak() = 0;
00604 
00607       virtual bool decloak() = 0;
00608 
00611       virtual bool siege() = 0;
00612 
00615       virtual bool unsiege() = 0;
00616 
00619       virtual bool lift() = 0;
00620 
00623       virtual bool land(TilePosition target) = 0;
00624 
00627       virtual bool load(Unit* target, bool shiftQueueCommand = false) = 0;
00628 
00631       virtual bool unload(Unit* target) = 0;
00632 
00635       virtual bool unloadAll(bool shiftQueueCommand = false) = 0;
00636 
00641       virtual bool unloadAll(Position target, bool shiftQueueCommand = false) = 0;
00642 
00644       virtual bool rightClick(Position target, bool shiftQueueCommand = false) = 0;
00645 
00648       virtual bool rightClick(Unit* target, bool shiftQueueCommand = false) = 0;
00649 
00653       virtual bool haltConstruction() = 0;
00654 
00657       virtual bool cancelConstruction() = 0;
00658 
00660       virtual bool cancelAddon() = 0;
00661 
00664       virtual bool cancelTrain(int slot = -2) = 0;
00665 
00668       virtual bool cancelMorph() = 0;
00669 
00672       virtual bool cancelResearch() = 0;
00673 
00676       virtual bool cancelUpgrade() = 0;
00677 
00680       virtual bool useTech(TechType tech) = 0;
00681 
00684       virtual bool useTech(TechType tech, Position target) = 0;
00685 
00688       virtual bool useTech(TechType tech, Unit* target) = 0;
00689 
00691       virtual void setClientInfo(void* clientinfo) = 0;
00692 
00694       virtual void* getClientInfo() const = 0;
00695 
00697       virtual bool placeCOP(TilePosition target) = 0;
00698 
00700       virtual bool          isUnderAttack() const = 0;
00701 
00703       virtual BWAPI::Player *getLastAttackingPlayer() const = 0;
00704   };
00705 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines