// Header des sorts

#ifndef	_HEADER_SORTS_
#define	_HEADER_SORTS_


void LoadSorts();

//Classe génrale pour tous les sorts
class CSort
{
	protected:
		
		
	public:
		CSort();
		~CSort();
		
		virtual bool DessineSort(bool Pause);
		
		
};

extern vector<CSort*> Sorts;


//Classe dérivée de CSort pour le sort Boule de Feu
class CSortBouleFeu : public CSort
{
	private:
		int PosDepartX, PosDepartY, PosX;
		
		Uint32 LastCalc, DebutVie;
		
		bool VersLaDroite;
		
		CPerso* Maitre;
		
		
	public:
		CSortBouleFeu(bool Droite, int px, int py, CPerso* maitre);
		~CSortBouleFeu();
		
		bool DessineSort(bool Pause);
		
};

#define		COUT_BOULE_FEU		15

//Classe dérivé de CSort pour le sort Soin1
class CSortSoin1 : public CSort
{
	private:
		Uint32 LastCalc, Duree;
		
		CPerso* Maitre;
		
		
	public:
		CSortSoin1(CPerso* maitre);
		~CSortSoin1();
		
		bool DessineSort(bool Pause);
		
};

//Constante pour le sort Soin1 (l'idéal est que 1000 divisé par ce chiffredonne un nombre entier .... sinon pas de respect du chifre exact)
#define		SOIN1_RECUPVIE		50
#define		COUT_SOIN1		20


//Classe dérivé de CSort pour le sort Soin2
class CSortSoin2 : public CSort
{
	private:
		Uint32 LastCalc, Duree;
		
		CPerso* Maitre;
		
		
	public:
		CSortSoin2(CPerso* maitre);
		~CSortSoin2();
		
		bool DessineSort(bool Pause);
		
};

//Constante pour le sort Soin2 (l'idéal est que 1000 divisé par ce chiffredonne un nombre entier .... sinon pas de respect du chifre exact)
#define		SOIN2_RECUPVIE		50
#define		COUT_SOIN2		20


//Classe dérivé de CSort pour le sort Soin3
class CSortSoin3 : public CSort
{
	private:
		Uint32 LastCalc, Duree;
		
		CPerso* Maitre;
		
		
	public:
		CSortSoin3(CPerso* maitre);
		~CSortSoin3();
		
		bool DessineSort(bool Pause);
		
};

//Constante pour le sort Soin3 (l'idéal est que 1000 divisé par ce chiffredonne un nombre entier .... sinon pas de respect du chifre exact)
#define		SOIN3_RECUPVIE		50
#define		COUT_SOIN3		20




#endif	//	_HEADER_SORTS_
