void UniteUtilitaire::convertir(Unite* ennemi , Player* joueur, Player* joueurEnnemi) { if (outil == Outil::convertisseur) { int index = -1; for (int i = 0; i < joueurEnnemi->getNombreUnite(); i++) { if (joueurEnnemi->getUnite(i)->getCoordX() == ennemi->getCoordX() && joueurEnnemi->getUnite(i)->getCoordY() == ennemi->getCoordY()) { index = i; break; } } if (joueurEnnemi->getUnite(index)->isUtilitaire()) { UniteUtilitaire* u = (UniteUtilitaire*)joueurEnnemi->getUnite(index); if (u->estPlein()) { Unite* temp = u->getUnite(); for (int i = 0; i < joueurEnnemi->getNombreUnite(); i++) { if (joueurEnnemi->getUnite(i)->getCoordX() == temp->getCoordX() && joueurEnnemi->getUnite(i)->getCoordY() == temp->getCoordY()) { joueurEnnemi->detruireUnite(i); } } } } joueur->creerUnite(ennemi, ennemi->getResistance()); joueurEnnemi->detruireUnite(index); outilRestant--; setAAgi(); } }
void Player::decouvre() { for (unsigned int i = 0; i < listUnite.size(); i++) { Unite* unite = listUnite[i]; for (int j = unite->getCoordY() - unite->getChampVision(); j < unite->getCoordY() + unite->getChampVision(); j++) { if (j >= 0 && j < MAP_HEIGTH) { for (int k = 1 + unite->getCoordX() - (unite->getChampVision() - abs(j - unite->getCoordY())); k < unite->getCoordX() + (unite->getChampVision() - abs(j - unite->getCoordY()));k++) { if (k >= 0 && k < MAP_WIDTH) { caseDecouverte[k][j] = true; } } } } } }