/* Procédure permettant de répliquer à une attaque d'un personnage bagarreur * En entrée : adversaire est le personnage à attaquer, coup est un entier représentant l'attaque choisie par le joueur pour répliquer * Cette procédure est utilisée dans la méthode Défier de la classe Bagarreur. */ internal void Defier(Personnage adversaire, int coup) { if (coup == 1) // si le joueur a choisi de répliquer par un coup de pied { // implémentation d'un facteur chance : le coup peut être esquivé par l'adversaire int chance = alea.Next(1, 4); if (chance == 2) { Console.WriteLine(adversaire._nom + " a esquivé l'attaque ! Vous ne lui infligez aucun dégât."); } else { adversaire._ptVie -= this._ptForce / 4; Console.Write("Vous attaquez " + adversaire._nom + " qui perd " + this._ptForce / 4 + " points de vie. "); if (adversaire._ptVie <= 0) { Console.WriteLine("Il ne lui reste aucun point de vie."); } else { Console.WriteLine("Il lui reste " + adversaire._ptVie + " points de vie."); } } } if (coup == 2) // si le joueur a choisi de répliquer par un coup de poing { // implémentation d'un facteur chance : le coup peut être esquivé, rarement, par l'adversaire int chance = alea.Next(1, 11); if (chance == 3) { Console.WriteLine(adversaire._nom + " a esquivé l'attaque ! Vous ne lui infligez aucun dégât."); } else { adversaire._ptVie -= this._ptForce / 6; Console.Write("Vous attaquez " + adversaire._nom + " qui perd " + this._ptForce / 6 + " points de vie. "); if (adversaire._ptVie <= 0) { Console.WriteLine("Il ne lui reste aucun point de vie."); } else { Console.WriteLine("Il lui reste " + adversaire._ptVie + " points de vie."); } } } }
public void Defier(Personnage p) { p.Defier(this); }
public abstract void Defier(Personnage p);
public override void Defier(Personnage p) { p._ptVie -= _ptForce }