BWAPI
trunk/bwapi/include/BWAPI/UnitCommand.h
Go to the documentation of this file.
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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines