Exemplo n.º 1
0
 public void Riposte(Unite ennemi_, int porteeDeFrappe_, MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_,
     string txt_, int dgts_,//--
     Color clr_, e_race e_race_, HUD hud_)
 {
     string txt1, txt2;
     int dgts1, dgts2;
     Color clr1, clr2;
     e_race e_race1, e_race2;
     if (pvactuel > 0)
     {
         #region frapper
         if (typedAttaque[porteeDeFrappe_])
         {
             //type dattaque : physique si typedAttaque[porteedeFrappe]= vrai
             #region Physique
             if ((precision + bonusprecision) * portee[porteeDeFrappe_] / 10 - ennemi_.esquive >= (r.Next(1000) % 100))
             {
                 if (r.Next(1000) % 100 < (coupcritique + bonusCoupcritique))
                 {
                     if (ennemi_.armure < (attaque + bonusAttaque) * 2)
                     {
                         ennemi_.pvactuel -= ((attaque + bonusAttaque) * 2 - ennemi_.armure);
                         txt2 = "Coup Critique !!";
                         dgts2 = ((attaque + bonusAttaque) * 2 - ennemi_.armure);
                     }
                     else
                     {
                         txt2 = "  Inefficace !  ";
                         dgts2 = 0;
                     }
                 }
                 else
                 {
                     if (ennemi_.armure < (attaque + bonusAttaque))
                     {
                         ennemi_.pvactuel -= ((attaque + bonusAttaque) - ennemi_.armure);
                         txt2 = "    Attaque !   ";
                         dgts2 = ((attaque + bonusAttaque) - ennemi_.armure);
                     }
                     else
                     {
                         txt2 = "  Inefficace !  ";
                         dgts2 = 0;
                     }
                 }
             }
             else
             {
                 xp += 1;
                 if (portee[porteeDeFrappe_] == 0)
                 {
                     txt2 = "   Trop loin !  ";
                     dgts2 = 0;
                 }
                 else
                 {
                     txt2 = "      Rate !    ";
                     dgts2 = 0;
                 }
             }
             #endregion
         }
         else
         {
             #region Magique
             if ((precision + bonusprecision) * portee[porteeDeFrappe_] / 10 - ennemi_.esquive >= (r.Next(1000) % 100))
             {
                 if (r.Next(1000) % 100 < (coupcritique + bonusCoupcritique))
                 {
                     if (ennemi_.resistance < (puissance + bonuspuissance) * 2)
                     {
                         ennemi_.pvactuel -= ((puissance + bonuspuissance) * 2 - ennemi_.resistance);
                         txt2 = "Coup Critique !!";
                         dgts2 = ((puissance + bonuspuissance) * 2 - ennemi_.armure);
                     }
                     else
                     {
                         txt2 = "  Inefficace !  ";
                         dgts2 = 0;
                     }
                 }
                 else
                 {
                     if (ennemi_.resistance < (puissance + bonuspuissance))
                     {
                         ennemi_.pvactuel -= ((puissance + bonuspuissance) - ennemi_.resistance);
                         txt2 = "    Attaque !   ";
                         dgts2 = ((puissance + bonuspuissance) - ennemi_.armure);
                     }
                     else
                     {
                         txt2 = "  Inefficace !  ";
                         dgts2 = 0;
                     }
                 }
             }
             else
             {
                 xp += 1;
                 if (portee[porteeDeFrappe_] == 0)
                 {
                     txt2 = "   Trop loin !  ";
                     dgts2 = 0;
                 }
                 else
                 {
                     txt2 = "      Rate !    ";
                     dgts2 = 0;
                 }
             }
             #endregion
         }
         #endregion
     }
     else
     {
         txt2 = "  Deja morte !  ";
         dgts2 = 0;
     }
     txt1 = txt_;
     dgts1 = dgts_;
     clr1 = clr_;
     e_race1 = e_race_;
     clr2 = gameplay_.listeDesJoueurs[numeroArmee].couleur;
     e_race2 = gameplay_.listeDesJoueurs[numeroArmee].espece;
     hud_.fight(ennemi_, this, txt1, dgts1, clr1, txt2, dgts2, clr2, e_race1, e_race2);
     gameplay_.CheckPV(moteurgraphique_, hud_);
 }