1 #pragma once 2 3 #include "../interfaces/IMapFeature.h" 4 #include "../interfaces/IUnit.h" 5 #include "../interfaces/IGame.h" 6 7 class CSpringUnit : public IUnit { 8 public: 9 CSpringUnit(springai::OOAICallback* callback, springai::Unit* u, IGame* game); 10 virtual ~CSpringUnit(); 11 12 virtual int ID(); 13 virtual int Team(); 14 virtual std::string Name(); 15 16 virtual void SetDead(bool dead=true); 17 virtual bool IsAlive(); 18 virtual bool IsAlly(int allyTeamId); 19 20 virtual bool IsCloaked(); 21 22 virtual void Forget(); // makes the interface forget about this unit and cleanup 23 virtual bool Forgotten(); // for interface/debugging use 24 25 virtual IUnitType* Type(); 26 27 virtual bool CanMove(); 28 virtual bool CanDeploy(); 29 virtual bool CanBuild(); 30 31 virtual bool CanAssistBuilding(IUnit* unit); 32 33 virtual bool CanMoveWhenDeployed(); 34 virtual bool CanFireWhenDeployed(); 35 virtual bool CanBuildWhenDeployed(); 36 virtual bool CanBuildWhenNotDeployed(); 37 38 virtual void Wait(int timeout); 39 40 virtual void Stop(); 41 virtual void Move(Position p); 42 virtual void MoveAndFire(Position p); 43 44 virtual bool Build(IUnitType* t); 45 virtual bool Build(std::string typeName); 46 virtual bool Build(std::string typeName, Position p); 47 virtual bool Build(IUnitType* t, Position p); 48 49 virtual bool Build(std::string typeName, Position p, int facing); 50 virtual bool Build(IUnitType* t, Position p, int facing); 51 52 virtual bool AreaReclaim(Position p, double radius); 53 virtual bool Reclaim(IMapFeature* mapFeature); 54 virtual bool Reclaim(IUnit* unit); 55 virtual bool Attack(IUnit* unit); 56 virtual bool Repair(IUnit* unit); 57 58 59 virtual bool MorphInto(IUnitType* t); 60 61 62 virtual Position GetPosition(); 63 64 virtual float GetHealth(); 65 virtual float GetMaxHealth(); 66 67 virtual int WeaponCount(); 68 69 virtual float MaxWeaponsRange(); 70 71 virtual bool CanBuild(IUnitType* t); 72 virtual bool IsBeingBuilt(); 73 74 virtual SResourceTransfer GetResourceUsage(int idx); 75 76 virtual void ExecuteCustomCommand(int cmdId, std::vector<float> params_list, short options, int timeOut); 77 78 protected: 79 80 springai::OOAICallback* callback; 81 springai::Unit* unit; 82 bool dead; 83 IGame* game; 84 springai::UnitDef* def; 85 std::vector<springai::UnitDef*> buildoptions; 86 }; 87