1 #pragma once 2 3 #include "API/interfaces/api.h" 4 5 6 extern "C" { 7 #include "lua.h" 8 #include "lualib.h" 9 #include "lauxlib.h" 10 } 11 #include "API/swig.h" 12 13 class CTestAI : public IAI { 14 public: 15 16 CTestAI(IGame* game); 17 virtual ~CTestAI(); 18 19 virtual void Init(); 20 virtual void Update(); 21 virtual void GameEnd(); 22 virtual void GameMessage(const char* text); 23 24 virtual void UnitCreated(IUnit* unit); 25 virtual void UnitBuilt(IUnit* unit); 26 virtual void UnitDead(IUnit* unit); 27 virtual void UnitIdle(IUnit* unit); 28 virtual void UnitMoveFailed(IUnit* unit); 29 30 virtual void UnitGiven(IUnit* unit); 31 32 virtual void UnitDamaged(IUnit* unit, IUnit* attacker); 33 34 lua_State *L; 35 36 void PushIUnit(IUnit* unit); 37 38 static IAI* ai; GetGame()39 IGame* GetGame() const { return game; } 40 protected: 41 42 swig_type_info* unittype; 43 bool LoadLuaFile(std::string filename); 44 45 IGame* game; 46 }; 47