Skip to content
Snippets Groups Projects
Commit d4ad42b0 authored by ColinDrieu's avatar ColinDrieu
Browse files

Ajout d'une fonction au controleur permettant de savoir si un Personnage est a porte d'attaque.

parent 4522b2e5
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -836,6 +836,55 @@ char * joueurVictorieux(){
return getNomJoueur(getCurrentJoueur(getListJoueur(partieGlobale)));
}
/*!
* \fn int APorteeAttaque(int numDepart, int numCible, char * nomAttaque)
* \brief La fonction teste si l'attaque en parrametre à une portée suffisante pour entre lancée
* du Personnage numDepart vers le Personnage numCible (entier définis dans la SDL)
* Cette fonction doit permettre d'afficher les personnages à portée de l'attaque
*
* \param des entiers vers les personnages départs et cible (définit par la SDL), une chaine de char vers le nom de l'attaque à lancer.
* \return 1 si l'attaque a une portée suffisante, 0 sinon.
*/
int APorteeAttaque(int numDepart, int numCible, char * nomAttaque){
int indiceAttaque,i;
Personnage * dep=NULL;
Personnage * cible = NULL;
Joueur * actuel = getCurrentJoueur(getListJoueur(partieGlobale));
i=-1;
if((numDepart<=3)&&(numDepart>0)){
setOnFirstJoueur(getListJoueur(partieGlobale));
dep=getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numDepart-1);
}
if((numDepart<=6)&&(numDepart>3)){
setOnFirstJoueur(getListJoueur(partieGlobale));
nextJoueur(getListJoueur(partieGlobale));
dep=getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numDepart-4);
}
for(i=0;i<NB_ATTAQUES_MAX;i++){
if((strncmp(getNomAttaques(getClasse(dep),i),nomAttaque,TAILLE_NOMS))==0){
indiceAttaque=i;
}
}
if(indiceAttaque==-1){
return 0;
}
if((numCible<=3)&&(numCible>0)){
setOnFirstJoueur(getListJoueur(partieGlobale));
dep=getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numCible-1);
}
if((numCible<=6)&&(numCible>3)){
setOnFirstJoueur(getListJoueur(partieGlobale));
nextJoueur(getListJoueur(partieGlobale));
dep=getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),numCible-4);
}
setOnJoueur(getListJoueur(partieGlobale),actuel);
return APortee(getCarte(partieGlobale),dep,cible,getPortee(getClasse(dep),indiceAttaque));
}
/*!
* \fn int lancerAttaque(int numDepart, int numCible)
* \brief La fonction lance un sort du Personnage numDepart vers le Personnage numCible (entier définis dans la SDL)
......
......@@ -60,6 +60,7 @@ int finDuTour();
void personnageSuivant();
char * joueurVictorieux();
int APorteeAttaque(int numDepart, int numCible, char * nomAttaque);
int lancerAttaque(int numDepart, int numCible, char * nomAttaque);
void testControlleurConsole();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment