BWAPI
|
00001 #pragma once 00002 00003 #include <BWAPI/UnitCommandType.h> 00004 #include <BWAPI/Position.h> 00005 #include <BWAPI/TilePosition.h> 00006 #include <BWAPI/TechType.h> 00007 #include <BWAPI/UpgradeType.h> 00008 #include <BWAPI/UnitType.h> 00009 00010 namespace BWAPI 00011 { 00012 class Unit; 00013 class UnitCommand 00014 { 00015 public: 00016 UnitCommand(); 00017 UnitCommand(Unit* _unit, UnitCommandType _type, Unit* _target, int _x, int _y, int _extra); 00018 00019 static UnitCommand attack(Unit* unit, Position target, bool shiftQueueCommand = false); 00020 static UnitCommand attack(Unit* unit, Unit* target, bool shiftQueueCommand = false); 00021 static UnitCommand build(Unit* unit, TilePosition target, UnitType type); 00022 static UnitCommand buildAddon(Unit* unit, UnitType type); 00023 static UnitCommand train(Unit* unit, UnitType type); 00024 static UnitCommand morph(Unit* unit, UnitType type); 00025 static UnitCommand research(Unit* unit, TechType tech); 00026 static UnitCommand upgrade(Unit* unit, UpgradeType upgrade); 00027 static UnitCommand setRallyPoint(Unit* unit, Position target); 00028 static UnitCommand setRallyPoint(Unit* unit, Unit* target); 00029 static UnitCommand move(Unit* unit, Position target, bool shiftQueueCommand = false); 00030 static UnitCommand patrol(Unit* unit, Position target, bool shiftQueueCommand = false); 00031 static UnitCommand holdPosition(Unit* unit, bool shiftQueueCommand = false); 00032 static UnitCommand stop(Unit* unit, bool shiftQueueCommand = false); 00033 static UnitCommand follow(Unit* unit, Unit* target, bool shiftQueueCommand = false); 00034 static UnitCommand gather(Unit* unit, Unit* target, bool shiftQueueCommand = false); 00035 static UnitCommand returnCargo(Unit* unit, bool shiftQueueCommand = false); 00036 static UnitCommand repair(Unit* unit, Unit* target, bool shiftQueueCommand = false); 00037 static UnitCommand burrow(Unit* unit); 00038 static UnitCommand unburrow(Unit* unit); 00039 static UnitCommand cloak(Unit* unit); 00040 static UnitCommand decloak(Unit* unit); 00041 static UnitCommand siege(Unit* unit); 00042 static UnitCommand unsiege(Unit* unit); 00043 static UnitCommand lift(Unit* unit); 00044 static UnitCommand land(Unit* unit, TilePosition target); 00045 static UnitCommand load(Unit* unit, Unit* target, bool shiftQueueCommand = false); 00046 static UnitCommand unload(Unit* unit, Unit* target); 00047 static UnitCommand unloadAll(Unit* unit, bool shiftQueueCommand = false); 00048 static UnitCommand unloadAll(Unit* unit, Position target, bool shiftQueueCommand = false); 00049 static UnitCommand rightClick(Unit* unit, Position target, bool shiftQueueCommand = false); 00050 static UnitCommand rightClick(Unit* unit, Unit* target, bool shiftQueueCommand = false); 00051 static UnitCommand haltConstruction(Unit* unit); 00052 static UnitCommand cancelConstruction(Unit* unit); 00053 static UnitCommand cancelAddon(Unit* unit); 00054 static UnitCommand cancelTrain(Unit* unit, int slot = -2); 00055 static UnitCommand cancelMorph(Unit* unit); 00056 static UnitCommand cancelResearch(Unit* unit); 00057 static UnitCommand cancelUpgrade(Unit* unit); 00058 static UnitCommand useTech(Unit* unit,TechType tech); 00059 static UnitCommand useTech(Unit* unit,TechType tech, Position target); 00060 static UnitCommand useTech(Unit* unit,TechType tech, Unit* target); 00061 static UnitCommand placeCOP(Unit* unit, TilePosition target); 00062 00063 UnitCommandType getType() const; 00064 Unit* getUnit() const; 00065 Unit* getTarget() const; 00066 Position getTargetPosition() const; 00067 TilePosition getTargetTilePosition() const; 00068 UnitType getUnitType() const; 00069 TechType getTechType() const; 00070 UpgradeType getUpgradeType() const; 00071 int getSlot() const; 00072 bool isQueued() const; 00073 bool operator==(const UnitCommand& other) const; 00074 bool operator!=(const UnitCommand& other) const; 00075 bool operator<(const UnitCommand& other) const; 00076 bool operator>(const UnitCommand& other) const; 00077 00078 Unit* unit; 00079 UnitCommandType type; 00080 Unit* target; 00081 int x; 00082 int y; 00083 int extra; 00084 }; 00085 }