BWAPI
|
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/Region.h> 00011 #include <BWAPI/TilePosition.h> 00012 #include <BWAPI/UnitCommand.h> 00013 #include <BWAPI/Client/UnitData.h> 00014 namespace BWAPI 00015 { 00016 class Player; 00017 00041 class Unit 00042 { 00043 protected: 00044 virtual ~Unit() {}; 00045 public: 00048 virtual int getID() const = 0; 00049 00051 virtual int getReplayID() const = 0; 00052 00054 virtual Player* getPlayer() const = 0; 00055 00057 virtual UnitType getType() const = 0; 00058 00060 virtual Position getPosition() const = 0; 00061 00064 virtual TilePosition getTilePosition() const = 0; 00065 00068 virtual double getAngle() const = 0; 00069 00071 virtual double getVelocityX() const = 0; 00072 00074 virtual double getVelocityY() const = 0; 00075 00077 virtual BWAPI::Region *getRegion() const = 0; 00078 00080 virtual int getLeft() const = 0; 00081 00083 virtual int getTop() const = 0; 00084 00086 virtual int getRight() const = 0; 00087 00089 virtual int getBottom() const = 0; 00090 00092 virtual int getHitPoints() const = 0; 00093 00095 virtual int getShields() const = 0; 00096 00098 virtual int getEnergy() const = 0; 00099 00103 virtual int getResources() const = 0; 00104 00106 virtual int getResourceGroup() const = 0; 00107 00109 virtual int getDistance(Unit* target) const = 0; 00110 00112 virtual int getDistance(Position target) const = 0; 00113 00115 virtual bool hasPath(Unit* target) const = 0; 00116 00118 virtual bool hasPath(Position target) const = 0; 00119 00121 virtual int getLastCommandFrame() const = 0; 00122 00124 virtual UnitCommand getLastCommand() const = 0; 00125 00127 virtual BWAPI::Player *getLastAttackingPlayer() const = 0; 00128 00131 virtual int getUpgradeLevel(UpgradeType upgrade) const = 0; 00132 00135 virtual UnitType getInitialType() const = 0; 00136 00139 virtual Position getInitialPosition() const = 0; 00140 00144 virtual TilePosition getInitialTilePosition() const = 0; 00145 00148 virtual int getInitialHitPoints() const = 0; 00149 00152 virtual int getInitialResources() const = 0; 00153 00155 virtual int getKillCount() const = 0; 00156 00158 virtual int getAcidSporeCount() const = 0; 00159 00161 virtual int getInterceptorCount() const = 0; 00162 00164 virtual int getScarabCount() const = 0; 00165 00167 virtual int getSpiderMineCount() const = 0; 00168 00170 virtual int getGroundWeaponCooldown() const = 0; 00171 00173 virtual int getAirWeaponCooldown() const = 0; 00174 00176 virtual int getSpellCooldown() const = 0; 00177 00180 virtual int getDefenseMatrixPoints() const = 0; 00181 00183 virtual int getDefenseMatrixTimer() const = 0; 00184 00186 virtual int getEnsnareTimer() const = 0; 00187 00189 virtual int getIrradiateTimer() const = 0; 00190 00192 virtual int getLockdownTimer() const = 0; 00193 00195 virtual int getMaelstromTimer() const = 0; 00196 00197 // TODO: add doc 00198 virtual int getOrderTimer() const = 0; 00199 00201 virtual int getPlagueTimer() const = 0; 00202 00206 virtual int getRemoveTimer() const = 0; 00207 00209 virtual int getStasisTimer() const = 0; 00210 00212 virtual int getStimTimer() const = 0; 00213 00216 virtual UnitType getBuildType() const = 0; 00217 00220 virtual std::list<UnitType > getTrainingQueue() const = 0; 00221 00225 virtual TechType getTech() const = 0; 00226 00230 virtual UpgradeType getUpgrade() const = 0; 00231 00233 virtual int getRemainingBuildTime() const = 0; 00234 00238 virtual int getRemainingTrainTime() const = 0; 00239 00243 virtual int getRemainingResearchTime() const = 0; 00244 00248 virtual int getRemainingUpgradeTime() const = 0; 00249 00253 virtual Unit* getBuildUnit() const = 0; 00254 00258 virtual Unit* getTarget() const = 0; 00259 00262 virtual Position getTargetPosition() const = 0; 00263 00264 // TODO: add doc 00265 virtual Order getOrder() const = 0; 00266 virtual Order getSecondaryOrder() const = 0; 00267 00271 virtual Unit* getOrderTarget() const = 0; 00272 00275 virtual Position getOrderTargetPosition() const = 0; 00276 00280 virtual Position getRallyPosition() const = 0; 00281 00285 virtual Unit* getRallyUnit() const = 0; 00286 00288 virtual Unit* getAddon() const = 0; 00289 00292 virtual Unit* getNydusExit() const = 0; 00293 00295 virtual Unit* getPowerUp() const = 0; 00296 00298 virtual Unit* getTransport() const = 0; 00299 00302 virtual std::set<Unit*> getLoadedUnits() const = 0; 00303 00306 virtual Unit* getCarrier() const = 0; 00307 00310 virtual std::set<Unit*> getInterceptors() const = 0; 00311 00314 virtual Unit* getHatchery() const = 0; 00315 00319 virtual std::set<Unit*> getLarva() const = 0; 00320 00322 virtual std::set<Unit*>& getUnitsInRadius(int radius) const = 0; 00323 00325 virtual std::set<Unit*>& getUnitsInWeaponRange(WeaponType weapon) const = 0; 00326 00328 virtual void* getClientInfo() const = 0; 00329 00331 virtual void setClientInfo(void* clientinfo) = 0; 00332 00342 virtual bool exists() const = 0; 00343 00344 /* Returns true if the Nuclear Missile Silo has a nuke */ 00345 virtual bool hasNuke() const = 0; 00346 00348 virtual bool isAccelerating() const = 0; 00349 00350 // TODO: add doc 00351 virtual bool isAttacking() const = 0; 00352 00353 virtual bool isAttackFrame() const = 0; 00354 00360 virtual bool isBeingConstructed() const = 0; 00361 00363 virtual bool isBeingGathered() const = 0; 00364 00366 virtual bool isBeingHealed() const = 0; 00367 00369 virtual bool isBlind() const = 0; 00370 00372 virtual bool isBraking() const = 0; 00373 00376 virtual bool isBurrowed() const = 0; 00377 00380 virtual bool isCarryingGas() const = 0; 00381 00384 virtual bool isCarryingMinerals() const = 0; 00385 00388 virtual bool isCloaked() const = 0; 00389 00391 virtual bool isCompleted() const = 0; 00392 00396 virtual bool isConstructing() const = 0; 00397 00399 virtual bool isDefenseMatrixed() const = 0; 00400 00402 virtual bool isDetected() const = 0; 00403 00405 virtual bool isEnsnared() const = 0; 00406 00409 virtual bool isFollowing() const = 0; 00410 00414 virtual bool isGatheringGas() const = 0; 00415 00419 virtual bool isGatheringMinerals() const = 0; 00420 00424 virtual bool isHallucination() const = 0; 00425 00428 virtual bool isHoldingPosition() const = 0; 00429 00432 virtual bool isIdle() const = 0; 00433 00435 virtual bool isInterruptible() const = 0; 00436 00438 virtual bool isInvincible() const = 0; 00439 00441 virtual bool isInWeaponRange(Unit *target) const = 0; 00442 00445 virtual bool isIrradiated() const = 0; 00446 00449 virtual bool isLifted() const = 0; 00450 00454 virtual bool isLoaded() const = 0; 00455 00458 virtual bool isLockedDown() const = 0; 00459 00462 virtual bool isMaelstrommed() const = 0; 00463 00466 virtual bool isMorphing() const = 0; 00467 00470 virtual bool isMoving() const = 0; 00471 00473 virtual bool isParasited() const = 0; 00474 00477 virtual bool isPatrolling() const = 0; 00478 00481 virtual bool isPlagued() const = 0; 00482 00484 virtual bool isRepairing() const = 0; 00485 00489 virtual bool isResearching() const = 0; 00490 00494 virtual bool isSelected() const = 0; 00495 00498 virtual bool isSieged() const = 0; 00499 00502 virtual bool isStartingAttack() const = 0; 00503 00506 virtual bool isStasised() const = 0; 00507 00510 virtual bool isStimmed() const = 0; 00511 00513 virtual bool isStuck() const = 0; 00514 00517 virtual bool isTraining() const = 0; 00518 00520 virtual bool isUnderAttack() const = 0; 00521 00523 virtual bool isUnderDarkSwarm() const = 0; 00524 00526 virtual bool isUnderDisruptionWeb() const = 0; 00527 00529 virtual bool isUnderStorm() const = 0; 00530 00532 virtual bool isUnpowered() const = 0; 00533 00537 virtual bool isUpgrading() const = 0; 00538 00542 virtual bool isVisible() const = 0; 00543 virtual bool isVisible(Player* player) const = 0; 00544 00546 virtual bool canIssueCommand(UnitCommand command) const = 0; 00547 00549 virtual bool issueCommand(UnitCommand command) = 0; 00550 00552 virtual bool attack(Position target, bool shiftQueueCommand = false) = 0; 00553 00555 virtual bool attack(Unit* target, bool shiftQueueCommand = false) = 0; 00556 00560 virtual bool build(TilePosition target, UnitType type) = 0; 00561 00564 virtual bool buildAddon(UnitType type) = 0; 00565 00570 virtual bool train(UnitType type) = 0; 00571 00574 virtual bool morph(UnitType type) = 0; 00575 00578 virtual bool research(TechType tech) = 0; 00579 00582 virtual bool upgrade(UpgradeType upgrade) = 0; 00583 00586 virtual bool setRallyPoint(Position target) = 0; 00587 00590 virtual bool setRallyPoint(Unit* target) = 0; 00591 00594 virtual bool move(Position target, bool shiftQueueCommand = false) = 0; 00595 00598 virtual bool patrol(Position target, bool shiftQueueCommand = false) = 0; 00599 00601 virtual bool holdPosition(bool shiftQueueCommand = false) = 0; 00602 00604 virtual bool stop(bool shiftQueueCommand = false) = 0; 00605 00608 virtual bool follow(Unit* target, bool shiftQueueCommand = false) = 0; 00609 00612 virtual bool gather(Unit* target, bool shiftQueueCommand = false) = 0; 00613 00617 virtual bool returnCargo(bool shiftQueueCommand = false) = 0; 00618 00622 virtual bool repair(Unit* target, bool shiftQueueCommand = false) = 0; 00623 00627 virtual bool burrow() = 0; 00628 00632 virtual bool unburrow() = 0; 00633 00636 virtual bool cloak() = 0; 00637 00640 virtual bool decloak() = 0; 00641 00644 virtual bool siege() = 0; 00645 00648 virtual bool unsiege() = 0; 00649 00652 virtual bool lift() = 0; 00653 00656 virtual bool land(TilePosition target) = 0; 00657 00660 virtual bool load(Unit* target, bool shiftQueueCommand = false) = 0; 00661 00664 virtual bool unload(Unit* target) = 0; 00665 00668 virtual bool unloadAll(bool shiftQueueCommand = false) = 0; 00669 00674 virtual bool unloadAll(Position target, bool shiftQueueCommand = false) = 0; 00675 00677 virtual bool rightClick(Position target, bool shiftQueueCommand = false) = 0; 00678 00681 virtual bool rightClick(Unit* target, bool shiftQueueCommand = false) = 0; 00682 00686 virtual bool haltConstruction() = 0; 00687 00690 virtual bool cancelConstruction() = 0; 00691 00693 virtual bool cancelAddon() = 0; 00694 00697 virtual bool cancelTrain(int slot = -2) = 0; 00698 00701 virtual bool cancelMorph() = 0; 00702 00705 virtual bool cancelResearch() = 0; 00706 00709 virtual bool cancelUpgrade() = 0; 00710 00713 virtual bool useTech(TechType tech) = 0; 00714 00717 virtual bool useTech(TechType tech, Position target) = 0; 00718 00721 virtual bool useTech(TechType tech, Unit* target) = 0; 00722 00724 virtual bool placeCOP(TilePosition target) = 0; 00725 00726 }; 00727 }