//Retourne l'index du monstre de la liste de monstres actif d'un joueur donné public int trouver_monstre_equipe(Monstre monstre) { int loop = 0; Monstre[] liste = equipe; foreach (Monstre x in liste) { if (x != null && Monstre.estIdentique(x, monstre)) { return(loop); } loop++; } return(loop); }
//Utilisation d'une attaque private void attaquer(Monstre attaquant, Monstre cible, Habilete spell_use) { Habilete spell = spell_use; if (attaquant.actuel[1] < spell.cout) { System.Windows.MessageBox.Show("Ce pokemon n'a pas assez de mana pour effectuer l'attaque: Mana" + attaquant.actuel[1] + " Cout " + spell.cout); } else { int damageBrute = spell.magnitude + attaquant.actuel[3]; //Si l'attaquant est de type eau, l'electricite diminu de moitier le spell et le feu encaisse le double if (attaquant.typeMonstre == TypeElement.Eau) { if (cible.typeMonstre == TypeElement.Electricite) { damageBrute = damageBrute / 2; } if (cible.typeMonstre == TypeElement.Feu) { damageBrute = damageBrute * 2; } } //Si l'attaquant est de type Electricite, l'eau encaisse le double et la vegetation resiste de moititer if (attaquant.typeMonstre == TypeElement.Electricite) { if (cible.typeMonstre == TypeElement.Vegetation) { damageBrute = damageBrute / 2; } if (cible.typeMonstre == TypeElement.Eau) { damageBrute = damageBrute * 2; } } //Si l'attaquant est de type Feu, l'eau encaisse la moitier et vegetation le double if (attaquant.typeMonstre == TypeElement.Feu) { if (cible.typeMonstre == TypeElement.Eau) { damageBrute = damageBrute / 2; } if (cible.typeMonstre == TypeElement.Vegetation) { damageBrute = damageBrute * 2; } } //Si l'attaquant est de type Vegetation, l'electricite encaisse le double et le feu la moitie if (attaquant.typeMonstre == TypeElement.Vegetation) { if (cible.typeMonstre == TypeElement.Feu) { damageBrute = damageBrute / 2; } if (cible.typeMonstre == TypeElement.Electricite) { damageBrute = damageBrute * 2; } } //Calcul de l'attaque int damageNet = damageBrute - cible.actuel[4]; cible.actuel[0] = cible.actuel[0] - damageNet; attaquant.actuel[1] = attaquant.actuel[1] - spell.cout; if (Monstre.estIdentique(cible, selectionne)) // Si la cible est le pokemon du joueur { selectionne.actuel[0] = cible.actuel[0]; // La vie du pokemon du joueur est = a la vie de la cible adversaire.actuel[1] = attaquant.actuel[1]; // La mana du pokemon adverse est = a la mana de l'attaquant } else // Sinon, la cible est le pokemon de l'adversaire { adversaire.actuel[0] = cible.actuel[0]; selectionne.actuel[1] = attaquant.actuel[1]; } MAJ_barre(); textBox_Console.AppendText("\n-------------------------------------------------\n" + attaquant.nomMonstre + " utilise " + spell.nom + " !\n" + cible.nomMonstre + " encaisse " + damageBrute + " de damage !"); } }