Exemple #1
0
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;
					}
				}
			}
		}
	}
}
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();
	}
}