/*!
* \file controleur.h
* \brief Fichier contenant la definition des fonctions du controleur.
*/

#include "structures.h"
#include "affichage.h"

#ifndef CONTROLEUR_H
#define CONTROLEUR_H

void initJeu();

void ajouterUnJoueur(char * nomDuJoueur, EtatsJeu * etat);

int y_case_cliquee(int x_pixel, int y_pixel);
int x_case_cliquee(int x_pixel, int y_pixel);

int nbClasses();
char ** obtenirNomsClasses();
char ** obtenirSkinsClasses();
void freeClasses(char ** tab);

int nbCartes();
char ** obtenirNomsCartes();
char ** obtenirDescriptionCarte();
void freeCartes(char **);

Case * trouverCase(Carte_Jeu * c, int x, int y);

int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur);

int selectionnerCarte(char * nomCarte);
void initPositions();

char * ObtenirRessourceTerrain(int x, int y);

int personnagePresent(int x, int y);
char * obtenirRessourcePersonnage(int x, int y);
char * obtenirRessourcePersonnageNum(int numero);
void obtenirPositionPersonnage(int numero, int * x, int * y);

Personnage * trouverPersonnage(Case * c);

void deplacement_personnage(int numPerso,int x,int y);
boolean case_accessible(int numPerso, int x_pixel, int y_pixel);

char * obtenirNomJoueurCourant();
char * obtenirNomClassePersonnage(int numero);
int obtenirPVPersonnage(int numero);
int obtenirPVMaxPersonnage(int numero);
int obtenirManaPersonnage(int numero);
int obtenirManaMaxPersonnage(int numero);
int obtenirPDPersonnage(int numero);
int obtenirPDMaxPersonnage(int numero);
char ** obtenirNomsAttaquesPersonnage(int numero);

void debutDuTour();
int finDuTour();
void personnageSuivant();
char * joueurVictorieux();

void testControlleurConsole();
#endif // CONTROLEUR_H