1 #pragma once
2 
3 class CSpringUnitType;
4 
5 #include "../interfaces/IUnitType.h"
6 #include <vector>
7 #include "SpringGame.h"
8 
9 class CSpringUnitType : public IUnitType {
10 public:
11 	CSpringUnitType(CSpringGame* game, springai::OOAICallback* callback, springai::UnitDef* unitDef);
12 	virtual ~CSpringUnitType();
13 
14 	virtual std::string Name();
15 
16 	virtual float ReclaimSpeed();
17 	virtual bool Extractor();
18 
19 	virtual float ResourceCost(int idx);
20 
21 	virtual float GetMaxHealth();
22 
23 	virtual int WeaponCount();
24 	virtual float MaxWeaponDamage();
25 
26 	springai::UnitDef* GetUnitDef();
27 
28 	virtual std::vector<IUnitType*> BuildOptions();
29 
30 protected:
31 	std::vector<springai::UnitDef*> boptions;
32 	CSpringGame* game;
33 	springai::OOAICallback* callback;
34 	springai::UnitDef* unitDef;
35 	std::vector<springai::Resource*> resources;
36 	std::vector<springai::WeaponMount*> weaponMounts;
37 };
38