File: CombatManager.h

package info (click to toggle)
spring 103.0%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 43,720 kB
  • ctags: 63,685
  • sloc: cpp: 368,283; ansic: 33,988; python: 12,417; java: 12,203; awk: 5,879; sh: 1,846; xml: 655; perl: 405; php: 211; objc: 194; makefile: 77; sed: 2
file content (42 lines) | stat: -rw-r--r-- 1,366 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// _____________________________________________________
//
// RAI - Skirmish AI for Spring
// Author: Reth / Michael Vadovszki
// _____________________________________________________

#ifndef RAI_COMBAT_MANAGER_H
#define RAI_COMBAT_MANAGER_H

class cCombatManager;

#include "RAI.h"
//#include "LogFile.h"
//#include "ExternalAI/IAICallback.h"

class cCombatManager
{
public:
	cCombatManager(IAICallback* callback, cRAI* Global);
	~cCombatManager();

	void UnitIdle(const int& unit, UnitInfo *U);
	void UnitDamaged(const int& unitID, UnitInfo* U, const int& attackerID, EnemyInfo* A, float3& dir);
	bool CommandDGun(const int& unitID, UnitInfo* U);
	bool CommandCapture(const int& unitID, UnitInfo* U, const float& EDis);
//	bool CommandTrap(const int& unitID, UnitInfo* U, const float& EDis);
	bool CommandManeuver(const int& unitID, UnitInfo* U, const float& EDis);
	void CommandRun(const int& unitID, UnitInfo* U, float3& EPos);
	int GetClosestEnemy(float3 Pos, UnitInfo* U);
	float3 GetEnemyPosition(const int& enemyID, EnemyInfo* E);
	float GetNextUpdate(const float& Distance, UnitInfo* U);
	sWeaponEfficiency* CanAttack(UnitInfo* U, EnemyInfo* E, const float3& EPos);
	bool ValidateEnemy(const int& unitID, UnitInfo* U, bool IdleIfInvalid=true);

private:
	int GetClosestThreat(float3 Pos, UnitInfo* U);
	cLogFile *l;
	IAICallback* cb;
	cRAI* G;
};

#endif