| 55 | } |
| 56 | |
| 57 | class UnitWrap |
| 58 | { |
| 59 | public: |
| 60 | UnitWrap(); |
| 61 | UnitWrap(BWAPI::Unit unit); |
| 62 | |
| 63 | UnitWrap &operator =(BWAPI::Unit unit); |
| 64 | BWAPI::Unit operator->() const; |
| 65 | operator BWAPI::Unit () const; |
| 66 | |
| 67 | // GetInfo |
| 68 | int GetOrderTimer() const; |
| 69 | int GetOrderState() const; |
| 70 | Orders::Enum::Enum GetUnitOrder() const; |
| 71 | BWAPI::Position GetOrderTargetPosition() const; |
| 72 | Orders::Enum::Enum GetQueuedOrder() const; |
| 73 | Unit GetAttackTarget() const; |
| 74 | ControlTypes::Enum GetControlType() const; |
| 75 | CaptainTypes::Enum GetCaptainType() const; |
| 76 | BWAPI::Position GetGuardReturnPosition() const; |
| 77 | int GetTargetFlags() const; |
| 78 | int GetWorkerTask() const; |
| 79 | |
| 80 | // SetInfo |
| 81 | void SetOrderState(int state); |
| 82 | void SetOrderTimer(int time); |
| 83 | void SetVirtualUnitOrder(BWAPI::Orders::Enum::Enum order, BWAPI::Position position = BWAPI::Positions::Origin); |
| 84 | void SetQueuedOrder(BWAPI::Orders::Enum::Enum order); |
| 85 | void SetAttackTarget(BWAPI::Unit pTarget); |
| 86 | void SetControlType(int type); |
| 87 | void SetCaptainType(int type); |
| 88 | void SetGuardReturnPosition(BWAPI::Position pos); |
| 89 | void SetTargetFlags(int flags); |
| 90 | void SetWorkerTask(int type); |
| 91 | |
| 92 | // Procedures |
| 93 | void UpdateOrderTimers(); |
| 94 | void EmulateOrder(); |
| 95 | BWAPI::Unit FindNewAttackTarget() const; |
| 96 | bool IsMilitaryCaptain() const; |
| 97 | bool HasNoCaptain() const; |
| 98 | void AssignComputerIdleOrder(); |
| 99 | bool CanUseTech(TechType tech) const; |
| 100 | bool UseTech(BWAPI::TechType tech, Unit pTarget, int targBit = 1); |
| 101 | bool UseTechOnClosest(BWAPI::TechType tech, int range, const BWAPI::UnitFilter &pred, int targBit = 1); |
| 102 | |
| 103 | // AI Control |
| 104 | void PerformSpecializedUnitControl(); |
| 105 | bool HasEnemyTarget(); |
| 106 | void DecloakCheck(); |
| 107 | bool DoUnitBehaviour(); |
| 108 | |
| 109 | // Military |
| 110 | bool TaskBunkerDefender(); |
| 111 | bool TaskSpellcaster(bool isAggressive); |
| 112 | bool TaskAggression(); |
| 113 | void RunMilitaryController(); |
| 114 | |