/*****************************/
/* Inside The Machine - MKS  */
/*****************************/

//Includes
#ifndef _ENTITIES_H
#define _ENTITIES_H

//Includes
#include "../Engine.h"
#include <string>

//Entités
#include "eHeroCat.h"
#include "eGenerator.h"
#include "eWater.h"
#include "eEnnemyChuck.h"
#include "eJaunty.h"
#include "eBoss1.h"
#include "eCamScroller.h"
#include "eJumper.h"
#include "eFish.h"
#include "eLife.h"
#include "eBlocker.h"
#include "eWaypoint.h"
#include "eVSlime.h"
#include "eBoss2.h"
#include "eBoss3.h"
#include "eBall.h"
#include "eEnd.h"

//Predefs
class eHeroCat;
class eGenerator;
class eWater;

//Defines
	//Types d'entités
#define ENT_TYPE_HERO            0    //Définit l'entité du personnage jouable
#define ENT_TYPE_ENNEMY          1    //Définit les entités ennemies au heros
#define ENT_TYPE_BOSS            2    //Définit les entités des boss du jeu
#define ENT_TYPE_EVENT           3    //Définit des entités virtuelles definissant un evenement
#define ENT_TYPE_LOGIC           4    //Définit des entités virtuelles définissant une variable
#define ENT_TYPE_STATIC          5    //Définit des entités statiques comme des décors

	//Entités HERO 0
#define ENT_HERO_CAT             0    //Entité héros principale (le chat)
#define ENT_HERO_FIREBALL        1    //Entité fireball du héros

	//Entités ENNEMY 1
#define ENT_ENNEMY_CHUCK         0    //1er Ennemi : Chuck
#define ENT_ENNEMY_FISH          1    //2ème Ennemi : (Filet'o')Fish
#define ENT_ENNEMY_VSLIME        2    //3ème Ennemi : VSlime
#define ENT_ENNEMY_BALL          3    //4ème Ennemi : EndBall

	//Entités BOSS 2
#define ENT_BOSS_ONE             0    //1er Boss : Larva
#define ENT_BOSS_TWO             1    //2ème Boss : Newbee
#define ENT_BOSS_THREE           3    //3ème Boss : Wormee

	//Entités LOGIC 4
#define ENT_LOGIC_STARTPOS       0    //Entité définissant le point de départ du héros
#define ENT_LOGIC_ENDPOS         1    //Entité définissant le point d'arrivée du héros
#define ENT_LOGIC_CAMERA         2    //Entité définissant un point de camera (type 0: fix, type 1: unfix)
#define ENT_LOGIC_CAMSCROLLER    3    //Entité définnissant un scroller de camera quand on rejoitn le point (note : le héros le bouge pas pendant un camscroll)
#define ENT_LOGIC_WAYPOINT       4    //Point de retour (waypoint)
#define ENT_LOGIC_JUMPER         5    //Entité augmentant la puissance de saut du héros
#define ENT_LOGIC_LIFE           6    //Entité qui ajoute de la vie
#define ENT_LOGIC_BLOCKER        7    //Entité qui bloque une zone une fois qu'un event a été déclenché

	//Entités STATIC 5
#define ENT_STATIC_WATER         0    //Entité définissant un plan d'eau
#define ENT_STATIC_GENERATOR     2    //Un générateur de particules
#define ENT_STATIC_JAUNTY        3    //Un informateur

#endif
