#ifndef BOT_ENT_H
#define BOT_ENT_H

class CBotEnt: public CBaseEntity
{
	short m_sBotClass; // The class the bot should be
	byte m_bTeam; // Team for this bot(1=good,2=evil,3=new bot team?)
	int m_iStartPL; // Start PL when the bot spawns
	int m_iMaxHealth; // Max health of this bot
	int m_iMaxSpeed; // Max speed of this bot
	char m_szPersoFileName[128]; // The personality file that this bot should use
	int m_iLives; // How much this bot can die
	int m_iExtraPLGain; // How much extra PL the killer of this bot gains
	bool m_bBotChat; // Should this bot chat?
	char m_szBotChatFileName[128]; // File to use for chatting
	char m_szBotName[32];
	byte m_bBotSkill;
	char m_szDeathTrigger[32];
	float m_fSpawnTime;
	bool m_bBotInGame;

	enum
	{
		FORM_NORMAL,
		FORM_LEVEL1,
		FORM_LEVEL2,
		FORM_LEVEL3,
		FORM_LEVEL4
	} m_eStartingForm; // The starting form(ssj, ssj2 etc) of this bot

public:
	void Spawn(void);
	void KeyValue( KeyValueData *pkvd );
	void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
	void Think(void);
};

class CInfoPlayerSP: public CBaseEntity
{
	short m_sPlayerClass; // Every player starts with this player class
	int m_iStartPL; // How much pl this player starts with
	short m_sStartHealth; // How much health this player starts with

public:
	void KeyValue( KeyValueData *pkvd );
	void SelectClass(CBasePlayer *pPlayer);
	void GivePlayerStats(CBasePlayer *pPlayer);
	void Spawn(void);
};

class CInfoBotTeacher: public CBaseEntity
{
	EBotTeacherType m_eBotTeacherType;
	char m_szScriptFile[256];
	char m_szEndTrigger[32]; // Trigger to call when teacher is finished with the script
	float m_fSpawnTime;

public:
	void KeyValue(KeyValueData *pkvd);
	void Spawn(void);
	void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
	void Think(void);
};

#endif