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/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 }