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

Ajout au controleur d'une fonction permettant de lancer une attaque et d'appliquer ses effet.

parent 66f0ac48
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -836,6 +836,53 @@ char * joueurVictorieux(){
return getNomJoueur(getCurrentJoueur(getListJoueur(partieGlobale)));
}
/*!
* \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)
*
* \param des entiers vers les personnages départs et cible (définit par la SDL)
* \return 1 si l'attaque a été correctement lancée, 0 sinon.
*/
int lancerAttaque(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 lancerSort(getCarte(partieGlobale),dep,cible,indiceAttaque);
}
// Je met ici mes tests réalisés dans le main pour éviter de les réécrire si jamais il y a un problème.
// Si vous voulez tester aussi, à recopier dans le main avant l'appel à initJeu().
void testControlleurConsole(){
......
......@@ -60,6 +60,8 @@ int finDuTour();
void personnageSuivant();
char * joueurVictorieux();
int lancerAttaque(int numDepart, int numCible, char * nomAttaque);
void testControlleurConsole();
#endif // CONTROLEUR_H
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