void testMortJoueur() { Partie partie("Partie 1", 2, 2); Joueur *j1 = NULL, *j2 = NULL; Plateau *pl = NULL; Action *action = new Action(); Sort *sort = NULL; vector<string> listeSort; listeSort.push_back("Boule de Feu"); listeSort.push_back("Sceau de Controle"); partie.initialiser(); j1 = partie.ajouterJoueur("Tarte", "pika", listeSort); j2 = partie.ajouterJoueur("Platon", "Sala", listeSort); partie.demarrerPartie(); pl = partie.getPlateau(); sort = UsineSort::fabriqueSort("Boule de Feu"); sort->setProprietaire(j2); action->setOrigine(NULL); action->setSort(sort); action->ajouterCible(pl->getCase(0,0)); j2->diminuerMana(j2->getManaActuel()); assert(j2->getManaActuel() == 0); partie.effectuerAction(action, j2); assert(j2->estMort() == true); assert(j2->getManaMaximum() == 0); assert(pl->getCase(0,0)->getDefenseActuelle() == pl->getCase(0,0)->getDefenseInitiale()); delete action; delete sort; }
void ReceptionClient::traitementInfoSort() { char* argument[6] = {NULL}; Sort* sort = NULL; Case* caseCible = NULL; Joueur* proprietaire = NULL; int x = -1, y = -1, duree = -1; unsigned int id = 0; for(int i = 0; i < 6; i++) { argument[i] = strtok (NULL, SEPARATEUR_ELEMENT); } for(int i = 0; i < 6; i++) { if(argument[i] == NULL) { //Info fausse return; } } x = atoi(argument[4]); y = atoi(argument[5]); duree = atoi(argument[3]); id = atoi(argument[1]); sort = this->partie->getSort(Position::fabriquePosition(x, y), id); //Sort inexistant sur la case if(sort == NULL) { sort = UsineSort::fabriqueSort(argument[0]); //Pas de sort de ce nom if(sort == NULL) { return; } proprietaire = this->partie->getJoueur((argument[2])); //Pas de joueur de ce nom if(proprietaire == NULL) { return; } sort->setProprietaire(proprietaire); sort->setId(id); caseCible = this->partie->getCase(Position::fabriquePosition(x, y)); //Pas de case à cette position if(caseCible != NULL) { caseCible->ajouterSort(sort, duree); } } }