예제 #1
0
 //Loohy
 public void Afficher(MoteurGraphique loohy_)
 {
     foreach (Armee item in listeDesJoueurs)
     {
         item.Afficher(loohy_, this);
     }
 }
예제 #2
0
 //Loohy & Coldman
 public Partie(int map_width, int map_height)
 {
     gameplay = new SystemeDeJeu();
     earthPenguin = new MoteurGraphique(32, 32);
     time = 0;
     lastUpdatesTime = 0;
 }
예제 #3
0
 //Loohy
 public void CheckPV(MoteurGraphique moteurgraphique_, HUD hud_)
 {
     foreach (Armee item in listeDesJoueurs)
     {
         item.checkPV(moteurgraphique_, this);
     }
     CheckVictoire(hud_);
 }
예제 #4
0
 public static void ClearPresence(MoteurGraphique g)
 {
     for (int i = 0; i < g.map.GetLength(0); i++)
     {
         for (int j = 0; j < g.map.GetLength(1); j++)
         {
             g.map[i, j].presence = false;
         }
     }
 }
예제 #5
0
 public void Update(MoteurGraphique ground_)
 {
     if (Mouse.GetState().LeftButton == ButtonState.Pressed)
     {
         foreach (Tile item in ground_.map)
         {
             if (item.estEnSurbrillance)
             {
                 switch (type)
                 {
                     case e_pinceau.Plaine:
                         item.E_Sol = e_Typedesol.herbe;
                         break;
                     case e_pinceau.Neige:
                         item.E_Sol = e_Typedesol.neige;
                         break;
                     case e_pinceau.Banquise:
                         item.E_Sol = e_Typedesol.banquise;
                         break;
                     case e_pinceau.Sable:
                         item.E_Sol = e_Typedesol.sable;
                         break;
                     case e_pinceau.Eau:
                         item.E_Sol = e_Typedesol.mer;
                         break;
                     case e_pinceau.Route:
                         break;
                     case e_pinceau.Riviere:
                         break;
                     case e_pinceau.Bunker:
                         break;
                     case e_pinceau.Foret:
                         break;
                     case e_pinceau.Ruine:
                         break;
                     case e_pinceau.Cratere:
                         break;
                     case e_pinceau.Village:
                         break;
                     case e_pinceau.Montagne:
                         break;
                     case e_pinceau.Vallee:
                         break;
                     case e_pinceau.Lissage:
                         break;
                     case e_pinceau.Rien:
                         break;
                     default:
                         break;
                 }
             }
         }
     }
 }
예제 #6
0
 public EditeurCarte()
     : base()
 {
     boutons.Add(new BoutonDeroulant(new Rectangle(0, 0, 180, 50), 49));
     boutons.Add(new BoutonDeroulant(new Rectangle(181, 0, 150, 50), 50));
     boutons.Add(new BoutonLien(50, 800, new Rectangle(0, 0, 800, 300), null, 5));
     titanAE = new MoteurGraphique(32, 32);
     //titanAE.viderVue();
     writer = new WriteBox(new Rectangle(600, Divers.Y - 220, 450, 75));
     titanAE.centrerSur(16, 16);
     titanAE.NEW(32, 32);
 }
예제 #7
0
 public void ActiverAura(Unite moi_, MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, int coef_)
 {
     for (int porteeAura = 1; porteeAura < moi_.getStat[4] / 4; porteeAura++)
     {
         for (int k = 0; k < porteeAura; k++)
         {
             if (moi_.i + k >= 0 && moi_.i + k < moteurgraphique_.map.GetLength(0)
                 && moi_.j + (porteeAura - k) >= 0 && moi_.j + (porteeAura - k) < moteurgraphique_.map.GetLength(1))
             {
                 if (moteurgraphique_.map[moi_.i + k, moi_.j + (porteeAura - k)].presence)
                 {
                     auraAt(gameplay_.listeDesJoueurs[moteurgraphique_.map[moi_.i + k, moi_.j + (porteeAura - k)].pointeurArmee].
                         bataillon[moteurgraphique_.map[moi_.i + k, moi_.j + (porteeAura - k)].pointeurUnite], coef_,
                         moi_.numeroArmee);
                 }
             }
             if (moi_.i - k >= 0 && moi_.i - k < moteurgraphique_.map.GetLength(0)
                  && moi_.j - (porteeAura - k) >= 0 && moi_.j - (porteeAura - k) < moteurgraphique_.map.GetLength(1))
             {
                 if (moteurgraphique_.map[moi_.i - k, moi_.j - (porteeAura - k)].presence)
                 {
                     auraAt(gameplay_.listeDesJoueurs[moteurgraphique_.map[moi_.i - k, moi_.j - (porteeAura - k)].pointeurArmee].
                         bataillon[moteurgraphique_.map[moi_.i - k, moi_.j - (porteeAura - k)].pointeurUnite], coef_,
                         moi_.numeroArmee);
                 }
             }
             if (moi_.i + (porteeAura - k) >= 0 && moi_.i + (porteeAura - k) < moteurgraphique_.map.GetLength(0)
                  && moi_.j - k >= 0 && moi_.j - k < moteurgraphique_.map.GetLength(1))
             {
                 if (moteurgraphique_.map[moi_.i + (porteeAura - k), moi_.j - k].presence)
                 {
                     auraAt(gameplay_.listeDesJoueurs[moteurgraphique_.map[moi_.i + (porteeAura - k), moi_.j - k].pointeurArmee].
                         bataillon[moteurgraphique_.map[moi_.i + (porteeAura - k), moi_.j - k].pointeurUnite], coef_,
                         moi_.numeroArmee);
                 }
             }
             if (moi_.i - (porteeAura - k) >= 0 && moi_.i - (porteeAura - k) < moteurgraphique_.map.GetLength(0)
                  && moi_.j + k >= 0 && moi_.j + k < moteurgraphique_.map.GetLength(1))
             {
                 if (moteurgraphique_.map[moi_.i - (porteeAura - k), moi_.j + k].presence)
                 {
                     auraAt(gameplay_.listeDesJoueurs[moteurgraphique_.map[moi_.i - (porteeAura - k), moi_.j + k].pointeurArmee].
                         bataillon[moteurgraphique_.map[moi_.i - (porteeAura - k), moi_.j + k].pointeurUnite], coef_,
                         moi_.numeroArmee);
                 }
             }
         }
     }
 }
예제 #8
0
 public void AttaqueSud(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_)
 {
     if (j + 1 < moteurgraphique_.largeur && moteurgraphique_.map[i, j + 1].presence)
     {
         mouvOrNot = false;
         Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i, j + 1].
             pointeurArmee].bataillon[moteurgraphique_.map[i, j + 1].pointeurUnite], 1,
             moteurgraphique_, gameplay_, ref mood_, hud_);
         sousrect.X = 128;
     }
 }
예제 #9
0
 public void AttaqueOuest(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_)
 {
     mouvOrNot = false;
     Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i - 1, j].
         pointeurArmee].bataillon[moteurgraphique_.map[i - 1, j].pointeurUnite], 1,
         moteurgraphique_, gameplay_, ref mood_, hud_);
     sousrect.X = 256;
 }
예제 #10
0
 public int Agonie(MoteurGraphique moteurgraphique_)
 {
     moteurgraphique_.map[i, j].pointeurUnite = 0;
     moteurgraphique_.map[i, j].pointeurArmee = 0;
     moteurgraphique_.map[i, j].presence = false;
     moteurgraphique_.map[i, j].dessinTomb = true;
     moteurgraphique_.map[i, j].estAccessible = true;
     attaqOrNot = false;
     jDepart = 0;
     iDepart = 0;
     porteTresor = false;
     alive = false;
     return points;
 }
예제 #11
0
 public void afficherPortee(MoteurGraphique moteurgraphique_, int portee_)
 {
     for (int k = 0; k < portee_; k++)
     {
         if (i + k >= 0 && i + k < moteurgraphique_.longueur
             && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i + k, j + (portee_ - k)].surbrillancePortee = portee[portee_];
             moteurgraphique_.map[i + k, j + (portee_ - k)].sousRectportee.X = 64 * 9 + 64 * portee[portee_];
         }
         if (i - k >= 0 && i - k < moteurgraphique_.longueur
              && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i - k, j - (portee_ - k)].surbrillancePortee = portee[portee_];
             moteurgraphique_.map[i - k, j - (portee_ - k)].sousRectportee.X = 64 * 9 + 64 * portee[portee_];
         }
         if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur
              && j - k >= 0 && j - k < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i + (portee_ - k), j - k].surbrillancePortee = portee[portee_];
             moteurgraphique_.map[i + (portee_ - k), j - k].sousRectportee.X = 64 * 9 + 64 * portee[portee_];
         }
         if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur
              && j + k >= 0 && j + k < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i - (portee_ - k), j + k].surbrillancePortee = portee[portee_];
             moteurgraphique_.map[i - (portee_ - k), j + k].sousRectportee.X = 64 * 9 + 64 * portee[portee_];
         }
     }
 }
예제 #12
0
 private void lookAtChemins(MoteurGraphique moteurgraphique_,
     int poidsDesCasesParcourues, int i_, int j_)
 {
     //moteurgraphique_.map[i_, j_]
     if (moteurgraphique_.map[i_, j_].estAccessible &&
         poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement <= mouvement)
     {
         moteurgraphique_.map[i_, j_].cheminValid = true;
         if (moteurgraphique_.map[i_, j_].poidsAcces > poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement)
         {
             moteurgraphique_.map[i_, j_].poidsAcces = poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement;
         }
         #region chemin possibles
         if (i_ > 0)
         {
             lookAtChemins(moteurgraphique_,
                 poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement, i_ - 1, j_);
         }
         if (j_ > 0)
         {
             lookAtChemins(moteurgraphique_,
                 poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement, i_, j_ - 1);
         }
         if (i_ + 1 < moteurgraphique_.longueur)
         {
             lookAtChemins(moteurgraphique_,
                 poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement, i_ + 1, j_);
         }
         if (j_ + 1 < moteurgraphique_.largeur)
         {
             lookAtChemins(moteurgraphique_,
                 poidsDesCasesParcourues + moteurgraphique_.map[i_, j_].coutEnMouvement, i_, j_ + 1);
         }
         #endregion
     }
 }
예제 #13
0
        public void UpdatePouvoir(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_)
        {
            if (Mouse.GetState().RightButton == ButtonState.Pressed && attaqOrNot)
            {
                foreach (int portee_ in SHORYUKEN.porteePouvoir)
                {
                    if (SHORYUKEN.vertical)
                    {
                        int k = 0;
                        #region 1
                        if (i + k >= 0 && i + k < moteurgraphique_.longueur
                                                && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur)
                        {
                            if (moteurgraphique_.map[i + k, j + (portee_ - k)].presence &&
                                   moteurgraphique_.map[i + k, j + (portee_ - k)].estEnSurbrillance &&
                                   moteurgraphique_.map[i + k, j + (portee_ - k)].visible &&
                                   attaqOrNot)
                            {
                                mouvOrNot = false;
                                SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + k, j + (portee_ - k), ref mood_, hud_);
                                gameplay_.CheckPV(moteurgraphique_, hud_);
                            }
                        }
                        #endregion
                        #region 2
                        if (i - k >= 0 && i - k < moteurgraphique_.longueur
                                                 && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur)
                        {
                            if (moteurgraphique_.map[i - k, j - (portee_ - k)].presence &&
                                   moteurgraphique_.map[i - k, j - (portee_ - k)].estEnSurbrillance &&
                                   moteurgraphique_.map[i - k, j - (portee_ - k)].visible &&
                                   attaqOrNot)
                            {
                                mouvOrNot = false;
                                SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - k, j - (portee_ - k), ref mood_, hud_);
                                gameplay_.CheckPV(moteurgraphique_, hud_);
                            }
                        }
                        #endregion
                        #region 3
                        if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur
                                                 && j - k >= 0 && j - k < moteurgraphique_.largeur)
                        {
                            if (moteurgraphique_.map[i + (portee_ - k), j - k].presence &&
                                   moteurgraphique_.map[i + (portee_ - k), j - k].estEnSurbrillance &&
                                   moteurgraphique_.map[i + (portee_ - k), j - k].visible &&
                                   attaqOrNot)
                            {
                                mouvOrNot = false;
                                SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + (portee_ - k), j - k, ref mood_, hud_);
                                gameplay_.CheckPV(moteurgraphique_, hud_);
                            }
                        }
                        #endregion
                        #region 4
                        if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur
                                                 && j + k >= 0 && j + k < moteurgraphique_.largeur)
                        {
                            if (moteurgraphique_.map[i - (portee_ - k), j + k].presence &&
                                   moteurgraphique_.map[i - (portee_ - k), j + k].estEnSurbrillance &&
                                   moteurgraphique_.map[i - (portee_ - k), j + k].visible &&
                                   attaqOrNot)
                            {
                                mouvOrNot = false;
                                SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - (portee_ - k), j + k, ref mood_, hud_);
                                gameplay_.CheckPV(moteurgraphique_, hud_);
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        for (int k = 0; k <= portee_; k++)
                        {
                            #region 1
                            if (i + k >= 0 && i + k < moteurgraphique_.longueur
                                                    && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i + k, j + (portee_ - k)].presence &&
                                       moteurgraphique_.map[i + k, j + (portee_ - k)].estEnSurbrillance &&
                                       moteurgraphique_.map[i + k, j + (portee_ - k)].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + k, j + (portee_ - k),
                                        ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            #endregion
                            #region 2
                            if (i - k >= 0 && i - k < moteurgraphique_.longueur
                                                     && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i - k, j - (portee_ - k)].presence &&
                                       moteurgraphique_.map[i - k, j - (portee_ - k)].estEnSurbrillance &&
                                       moteurgraphique_.map[i - k, j - (portee_ - k)].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - k, j - (portee_ - k), ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            #endregion
                            #region 3
                            if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur
                                                     && j - k >= 0 && j - k < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i + (portee_ - k), j - k].presence &&
                                       moteurgraphique_.map[i + (portee_ - k), j - k].estEnSurbrillance &&
                                       moteurgraphique_.map[i + (portee_ - k), j - k].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + (portee_ - k), j - k, ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            #endregion
                            #region 4
                            if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur
                                                     && j + k >= 0 && j + k < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i - (portee_ - k), j + k].presence &&
                                       moteurgraphique_.map[i - (portee_ - k), j + k].estEnSurbrillance &&
                                       moteurgraphique_.map[i - (portee_ - k), j + k].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - (portee_ - k), j + k, ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            #endregion
                        }
                    }
                }

            }
        }
예제 #14
0
 public void Initiative(Unite ennemi_, int porteDeFrappe_, MoteurGraphique moteurgraphique_,
     SystemeDeJeu gameplay_, ref e_modeAction mood, HUD hud_)
 {
     if (!ennemi_.estInvisible)
     {
         estInvisible = false;
         assassin = ennemi_.numeroArmee;
         ennemi_.assassin = numeroArmee;
         if ((initiative + bonusInitiative) >= ennemi_.initiative)
         {
             Frappe(ennemi_, porteDeFrappe_, moteurgraphique_, gameplay_, hud_);
         }
         else
         {
             ennemi_.Frappe(this, porteDeFrappe_, moteurgraphique_, gameplay_, hud_);
         }
         mood = e_modeAction.Mouvement;
         attaqOrNot = false;
     }
 }
예제 #15
0
        public bool goSud(MoteurGraphique moteurgraphique_, Armee armee_, SystemeDeJeu gameplay_)
        {
            if (j + 1 < moteurgraphique_.largeur && moteurgraphique_.map[i, j + 1].estAccessible && mouvement >= moteurgraphique_.map[i, j + 1].coutEnMouvement)
            {
                mouvOrNot = false;
                debug = 0;
                if (aura != null)
                {
                    aura.ActiverAura(this, moteurgraphique_, gameplay_, -1);
                }

                moteurgraphique_.map[i, j].pointeurUnite = 0;
                moteurgraphique_.map[i, j].pointeurArmee = 0;
                moteurgraphique_.map[i, j].presence = false;
                moteurgraphique_.map[i, j].estAccessible = true;
                jDepart = 0;
                iDepart = 0;

                j++;

                if (aura != null)
                {
                    aura.ActiverAura(this, moteurgraphique_, gameplay_, 1);
                }
                mouvement -= moteurgraphique_.map[i, j].coutEnMouvement;
                sousrect.X = 128;
                tourner();
                state = e_EtatAnim.mouvement1;
                sousrect.Y = 256;
                vitesseAnim = 0.2f;
                jDepart = -1;
                iDepart = 1;
                moteurgraphique_.viderChemin();
                lookAtCheminsInitialize(moteurgraphique_);
                armee_.soeurAnne(moteurgraphique_, gameplay_);
                armee_.auras(moteurgraphique_, gameplay_);
                return true;
            }
            else
            {
                mouvOrNot = false;
                return false;
            }
        }
예제 #16
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_);
 }
예제 #17
0
 public void soeurAnne(MoteurGraphique moteurgraphique_, ref bool[,] casesVisitees_, SystemeDeJeu gameplay_)
 {
     if (IA.difficulte == 0 && alive)
     {
         if (i >= 0 && i < moteurgraphique_.longueur && j >= 0 && j < moteurgraphique_.largeur)
         {
             casesVisitees_[i, j] = true;
             moteurgraphique_.map[i, j].apercue = true;
             moteurgraphique_.map[i, j].visible = true;
             #region detecter les invisibles proches
             for (int p = -1; p < 2; p++)
             {
                 for (int q = -1; q < 2; q++)
                 {
                     if (i + p >= 0 && i + p < moteurgraphique_.longueur &&
                         j + q >= 0 && j + q < moteurgraphique_.largeur
                         && (p != 0 || q != 0) && moteurgraphique_.map[i + p, j + q].visible
                         && moteurgraphique_.map[i + p, j + q].presence)
                     {
                         if (gameplay_.listeDesJoueurs[moteurgraphique_.map[i + p, j + q].pointeurArmee].
                         bataillon[moteurgraphique_.map[i + p, j + q].pointeurUnite].numeroArmee != numeroArmee)
                         {
                             gameplay_.listeDesJoueurs[moteurgraphique_.map[i + p, j + q].pointeurArmee].
                             bataillon[moteurgraphique_.map[i + p, j + q].pointeurUnite].estInvisible = false;
                         }
                     }
                 }
             }
             #endregion
             #region Annes
             if (i != 0)
             {
                 anneOuest(moteurgraphique_, ref casesVisitees_, i - 1, j, moteurgraphique_.map[i - 1, j].altitude, 7, true);
                 if (j != 0)
                 {
                     anneOuestNord(moteurgraphique_, ref casesVisitees_, i - 1, j - 1, moteurgraphique_.map[i - 1, j - 1].altitude,
                         7, true);
                 }
                 if (j != moteurgraphique_.largeur - 1)
                 {
                     anneSudOuest(moteurgraphique_, ref casesVisitees_, i - 1, j + 1, moteurgraphique_.map[i - 1, j + 1].altitude,
                         7, true);
                 }
             }
             if (i != moteurgraphique_.longueur - 1)
             {
                 anneEst(moteurgraphique_, ref casesVisitees_, i + 1, j, moteurgraphique_.map[i + 1, j].altitude, 7, true);
                 if (j != 0)
                 {
                     anneNordEst(moteurgraphique_, ref casesVisitees_, i + 1, j - 1, moteurgraphique_.map[i + 1, j - 1].altitude,
                         7, true);
                 }
                 if (j != moteurgraphique_.largeur - 1)
                 {
                     anneEstSud(moteurgraphique_, ref casesVisitees_, i + 1, j + 1, moteurgraphique_.map[i + 1, j + 1].altitude,
                         7, true);
                 }
             }
             if (j != 0)
             {
                 anneNord(moteurgraphique_, ref casesVisitees_, i, j - 1, moteurgraphique_.map[i, j - 1].altitude, 7, true);
             }
             if (j != moteurgraphique_.largeur - 1)
             {
                 anneSud(moteurgraphique_, ref casesVisitees_, i, j + 1, moteurgraphique_.map[i, j + 1].altitude, 7, true);
             }
             #endregion
         }
     }
 }
예제 #18
0
 public void lireLaFile(MoteurGraphique moteurgraphique_, Armee armee_, SystemeDeJeu gameplay_)
 {
     if (fileDeMouvements.Count > 0)
     {
         if (IA.difficulte != 0 ||state == e_EtatAnim.repos1 || state == e_EtatAnim.repos2)
         {
             switch (fileDeMouvements[0])
             {
                 case mouv.Sud:
                     goSud(moteurgraphique_, armee_, gameplay_);
                     break;
                 case mouv.Nord:
                     goNord(moteurgraphique_, armee_, gameplay_);
                     break;
                 case mouv.Est:
                     goEst(moteurgraphique_, armee_, gameplay_);
                     break;
                 case mouv.Ouest:
                     goOuest(moteurgraphique_, armee_, gameplay_);
                     break;
                 default:
                     break;
             }
             //depiler
             fileDeMouvements.RemoveAt(0);
         }
     }
 }
예제 #19
0
 public void utiliserIA(MoteurGraphique moteurgraphique_, Armee armee_, SystemeDeJeu gameplay_, HUD hud_)
 {
     if (fileDeMouvements.Count == 0)
     {
         IA.Play(this, moteurgraphique_, armee_, gameplay_, hud_);
     }
 }
예제 #20
0
 public void lookAtCheminsInitialize(MoteurGraphique moteurgraphique_)
 {
     {
         moteurgraphique_.viderChemin();
         moteurgraphique_.map[i, j].poidsAcces = 0;
         #region chemin possibles
         if (i > 0)
         {
             lookAtChemins(moteurgraphique_, 0, i - 1, j);
         }
         if (j > 0)
         {
             lookAtChemins(moteurgraphique_, 0, i, j - 1);
         }
         if (i + 1 < moteurgraphique_.longueur)
         {
             lookAtChemins(moteurgraphique_, 0, i + 1, j);
         }
         if (j + 1 < moteurgraphique_.largeur)
         {
             lookAtChemins(moteurgraphique_, 0, i, j + 1);
         }
         #endregion
         poidsPathFindingLoohy(moteurgraphique_);
     }
 }
예제 #21
0
        // Pathfinding nico
        private void NicoSearch(MoteurGraphique moteurgraphique_, int ox_, int oy_)
        {
            int ghostX, ghostY;

            ghostX = i;
            ghostY = j;

            while (een && (ghostX != ox_ || ghostY != oy_))
            {
                Console.WriteLine("Chemin : ");

                if (i < moteurgraphique_.longueur - 1 && moteurgraphique_.map[ghostX + 1, ghostY].estAccessible)
                {
                    ghostX++;
                }
                else if (i > 1 && moteurgraphique_.map[ghostX - 1, ghostY].estAccessible)
                {
                    ghostX--;
                }
                else if (j < moteurgraphique_.largeur - 1 && moteurgraphique_.map[ghostX, ghostY + 1].estAccessible)
                {
                    ghostY++;
                }
                else if (j > 1 && moteurgraphique_.map[ghostX, ghostY - 1].estAccessible)
                {
                    ghostY--;
                }
            }
            Console.WriteLine();
        }
예제 #22
0
 public void lookAtPortee(MoteurGraphique moteurgraphique_)
 {
     for (int portee_ = 1; portee_ < 7; portee_++)
     {
         afficherPortee(moteurgraphique_, portee_);
     }
 }
예제 #23
0
 public void afficherPorteePouvoirVertical(MoteurGraphique moteurgraphique_, int portee_)
 {
     int k = 0;
     if (i + k >= 0 && i + k < moteurgraphique_.longueur
         && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur)
     {
         moteurgraphique_.map[i + k, j + (portee_ - k)].surbrillancePortee = 10;
         moteurgraphique_.map[i + k, j + (portee_ - k)].sousRectportee.X = 64 * 19;
     }
     if (i - k >= 0 && i - k < moteurgraphique_.longueur
          && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur)
     {
         moteurgraphique_.map[i - k, j - (portee_ - k)].surbrillancePortee = 10;
         moteurgraphique_.map[i - k, j - (portee_ - k)].sousRectportee.X = 64 * 19;
     }
     if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur
          && j - k >= 0 && j - k < moteurgraphique_.largeur)
     {
         moteurgraphique_.map[i + (portee_ - k), j - k].surbrillancePortee = 10;
         moteurgraphique_.map[i + (portee_ - k), j - k].sousRectportee.X = 64 * 19;
     }
     if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur
          && j + k >= 0 && j + k < moteurgraphique_.largeur)
     {
         moteurgraphique_.map[i - (portee_ - k), j + k].surbrillancePortee = 10;
         moteurgraphique_.map[i - (portee_ - k), j + k].sousRectportee.X = 64 * 19;
     }
 }
예제 #24
0
 public void lookAtPorteePouvoir(MoteurGraphique moteurgraphique_)
 {
     if (SHORYUKEN != null)
     {
         foreach (int portee_ in SHORYUKEN.porteePouvoir)
         {
             if (SHORYUKEN.vertical)
             {
                 afficherPorteePouvoirVertical(moteurgraphique_, portee_);
             }
             else
             {
                 afficherPorteePouvoir(moteurgraphique_, portee_);
             }
         }
     }
 }
예제 #25
0
 public void anneSudOuest(MoteurGraphique moteurgraphique_, ref bool[,] casesVisitees_, int i_, int j_,
     int altitudeDepart_, int distance_, bool bonneVue_)
 {
     //i,j+1
     if (j_ < moteurgraphique_.largeur - 1 &&
         (
         (altitudeDepart_ < moteurgraphique_.map[i_, j_].altitude
         && altitudeDepart_ + 32 > moteurgraphique_.map[i_, j_].altitude
         && moteurgraphique_.map[i_, j_].altitude < moteurgraphique_.map[i_, j_ + 1].altitude)
         ||
         (altitudeDepart_ >= moteurgraphique_.map[i_, j_].altitude)
         ))
     {
         casesVisitees_[i_, j_] = true;
         if (bonneVue_)
         {
             moteurgraphique_.map[i_, j_].visible = true;
         }
         if (distance_ > 0)
         {
             anneSudOuest(moteurgraphique_, ref casesVisitees_, i_, j_ + 1, altitudeDepart_, distance_ - 1,
                 moteurgraphique_.map[i_, j_].E_DecorArriere == e_Decorarriere.vide);
         }
     }
     //i-1,j
     if (i_ > 0 &&
         (
         (altitudeDepart_ < moteurgraphique_.map[i_, j_].altitude
         && altitudeDepart_ + 32 > moteurgraphique_.map[i_, j_].altitude
         && moteurgraphique_.map[i_, j_].altitude < moteurgraphique_.map[i_ - 1, j_].altitude)
         ||
         (altitudeDepart_ >= moteurgraphique_.map[i_, j_].altitude)
         ))
     {
         casesVisitees_[i_, j_] = true;
         if (bonneVue_)
         {
             moteurgraphique_.map[i_, j_].visible = true;
         }
         if (distance_ > 0)
         {
             anneSudOuest(moteurgraphique_, ref casesVisitees_, i_ - 1, j_, altitudeDepart_, distance_ - 1,
                 moteurgraphique_.map[i_, j_].E_DecorArriere == e_Decorarriere.vide);
         }
     }
 }
예제 #26
0
        public void Mouvement(MoteurGraphique moteurgraphique_, Armee armee_, SystemeDeJeu gameplay_)
        {
            #region Touches
            if ((i + 1 < moteurgraphique_.longueur)
                       && ((Keyboard.GetState().IsKeyDown(Keys.S)
                       || (moteurgraphique_.map[i + 1, j].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                       && mouvOrNot))
            {
                goEst(moteurgraphique_, armee_, gameplay_);
                lookAtCheminsInitialize(moteurgraphique_);
            }
            if ((j > 0)
                && ((Keyboard.GetState().IsKeyDown(Keys.W)
                || (moteurgraphique_.map[i, j - 1].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && mouvOrNot))
            {
                goNord(moteurgraphique_, armee_, gameplay_);
                lookAtCheminsInitialize(moteurgraphique_);
            }
            if ((i > 0)
                && ((Keyboard.GetState().IsKeyDown(Keys.Q)
                || (moteurgraphique_.map[i - 1, j].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && mouvOrNot))
            {
                goOuest(moteurgraphique_, armee_, gameplay_);
                lookAtCheminsInitialize(moteurgraphique_);
            }
            if ((j + 1 < moteurgraphique_.largeur)
                && ((Keyboard.GetState().IsKeyDown(Keys.A)
                || (moteurgraphique_.map[i, j + 1].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && mouvOrNot))
            {
                goSud(moteurgraphique_, armee_, gameplay_);
                lookAtCheminsInitialize(moteurgraphique_);
            }
            #endregion

            if (Keyboard.GetState().IsKeyUp(Keys.S) &&
                Keyboard.GetState().IsKeyUp(Keys.A) &&
                Keyboard.GetState().IsKeyUp(Keys.W) &&
                Keyboard.GetState().IsKeyUp(Keys.Q) &&
                Mouse.GetState().LeftButton == ButtonState.Released &&
                state == e_EtatAnim.repos1)
            {
                mouvOrNot = true;
            }

            if (Mouse.GetState().RightButton == ButtonState.Pressed && mouvOrNot && fileDeMouvements.Count == 0)
            {
                for (int c = 0; c < moteurgraphique_.longueur; c++)
                {
                    for (int d = 0; d < moteurgraphique_.largeur; d++)
                    {
                        if (mouvOrNot && moteurgraphique_.map[c, d].estAccessible && moteurgraphique_.map[c, d].estEnSurbrillance
                            && moteurgraphique_.map[c, d].cheminValid)
                        {
                            PathFindingLoohy(moteurgraphique_, c, d);
                        }
                    }
                }
            }
        }
예제 #27
0
        public void Attaquer(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_)
        {
            if ((i + 1 < moteurgraphique_.longueur && moteurgraphique_.map[i + 1, j].presence)
                && ((Keyboard.GetState().IsKeyDown(Keys.F)
                || (moteurgraphique_.map[i + 1, j].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && attaqOrNot))
            {
                AttaqueEst(moteurgraphique_, gameplay_, ref mood_, hud_);
            }
            if ((j > 0 && moteurgraphique_.map[i, j - 1].presence)
                && ((Keyboard.GetState().IsKeyDown(Keys.R)
                || (moteurgraphique_.map[i, j - 1].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && attaqOrNot))
            {
                AttaqueNord(moteurgraphique_, gameplay_, ref mood_, hud_);
            }
            if ((i > 0 && moteurgraphique_.map[i - 1, j].presence)
                && ((Keyboard.GetState().IsKeyDown(Keys.E)
                || (moteurgraphique_.map[i - 1, j].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && attaqOrNot))
            {
                AttaqueOuest(moteurgraphique_, gameplay_, ref mood_, hud_);
            }
            if ((j + 1 < moteurgraphique_.largeur && moteurgraphique_.map[i, j + 1].presence)
                && ((Keyboard.GetState().IsKeyDown(Keys.D)
                || (moteurgraphique_.map[i, j + 1].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed))
                && attaqOrNot))
            {
                AttaqueSud(moteurgraphique_, gameplay_, ref mood_, hud_);
            }

            #region attaque a distance
            if (Mouse.GetState().RightButton == ButtonState.Pressed && attaqOrNot)
            {
                for (int portee_ = 1; portee_ < 7; portee_++)
                {
                    if (portee[portee_] != 0)
                    {
                        for (int k = 0; k < portee_; k++)
                        {
                            if (i + k >= 0 && i + k < moteurgraphique_.longueur
                                && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i + k, j + (portee_ - k)].presence &&
                                       moteurgraphique_.map[i + k, j + (portee_ - k)].estEnSurbrillance &&
                                       moteurgraphique_.map[i + k, j + (portee_ - k)].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i + k, j + (portee_ - k)].
                                         pointeurArmee].bataillon[moteurgraphique_.map[i + k, j + (portee_ - k)].pointeurUnite],
                                         portee_, moteurgraphique_, gameplay_, ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            if (i - k >= 0 && i - k < moteurgraphique_.longueur
                                 && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i - k, j - (portee_ - k)].presence &&
                                       moteurgraphique_.map[i - k, j - (portee_ - k)].estEnSurbrillance &&
                                       moteurgraphique_.map[i - k, j - (portee_ - k)].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i - k, j - (portee_ - k)].
                                        pointeurArmee].bataillon[moteurgraphique_.map[i - k, j - (portee_ - k)].pointeurUnite],
                                        portee_, moteurgraphique_, gameplay_, ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur
                                 && j - k >= 0 && j - k < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i + (portee_ - k), j - k].presence &&
                                       moteurgraphique_.map[i + (portee_ - k), j - k].estEnSurbrillance &&
                                       moteurgraphique_.map[i + (portee_ - k), j - k].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i + (portee_ - k), j - k].
                                        pointeurArmee].bataillon[moteurgraphique_.map[i + (portee_ - k), j - k].pointeurUnite],
                                        portee_, moteurgraphique_, gameplay_, ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                            if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur
                                 && j + k >= 0 && j + k < moteurgraphique_.largeur)
                            {
                                if (moteurgraphique_.map[i - (portee_ - k), j + k].presence &&
                                       moteurgraphique_.map[i - (portee_ - k), j + k].estEnSurbrillance &&
                                       moteurgraphique_.map[i - (portee_ - k), j + k].visible &&
                                       attaqOrNot)
                                {
                                    mouvOrNot = false;
                                    Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i - (portee_ - k), j + k].
                                        pointeurArmee].bataillon[moteurgraphique_.map[i - (portee_ - k), j + k].pointeurUnite],
                                        portee_, moteurgraphique_, gameplay_, ref mood_, hud_);
                                    gameplay_.CheckPV(moteurgraphique_, hud_);
                                }
                            }
                        }
                    }
                }
            }
            #endregion
        }
예제 #28
0
 public void PathFindingLoohy(MoteurGraphique moteurgraphique_, int iArrivee_, int jArrivee_)
 {
     if (debug < 1000)
     {
         debug++;
         if (iArrivee_ != ivirtuel || jArrivee_ != jvirtuel)
         {
             #region Arriver sur la case la plus legere a cote
             if (iArrivee_ != 0 && moteurgraphique_.map[iArrivee_ - 1, jArrivee_].poidsAcces < moteurgraphique_.map[iArrivee_ + 1, jArrivee_].poidsAcces)//SNE
             {
                 if (jArrivee_ != 0 && moteurgraphique_.map[iArrivee_ - 1, jArrivee_].poidsAcces < moteurgraphique_.map[iArrivee_, jArrivee_ - 1].poidsAcces)//SE
                 {
                     if (moteurgraphique_.map[iArrivee_ - 1, jArrivee_].poidsAcces < moteurgraphique_.map[iArrivee_, jArrivee_ + 1].poidsAcces)//E
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_ - 1, jArrivee_);
                     }
                     else//S
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_, jArrivee_ + 1);
                     }
                 }
                 else//SN
                 {
                     if (jArrivee_ != 0 && moteurgraphique_.map[iArrivee_, jArrivee_ - 1].poidsAcces < moteurgraphique_.map[iArrivee_, jArrivee_ + 1].poidsAcces)//N
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_, jArrivee_ - 1);
                     }
                     else//S
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_, jArrivee_ + 1);
                     }
                 }
             }
             else//SNO
             {
                 if (jArrivee_ != 0 && moteurgraphique_.map[iArrivee_ + 1, jArrivee_].poidsAcces < moteurgraphique_.map[iArrivee_, jArrivee_ - 1].poidsAcces)//SO
                 {
                     if (moteurgraphique_.map[iArrivee_ + 1, jArrivee_].poidsAcces < moteurgraphique_.map[iArrivee_, jArrivee_ + 1].poidsAcces)//O
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_ + 1, jArrivee_);
                     }
                     else//S
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_, jArrivee_ + 1);
                     }
                 }
                 else//SN
                 {
                     if (jArrivee_ != 0 && moteurgraphique_.map[iArrivee_, jArrivee_ - 1].poidsAcces < moteurgraphique_.map[iArrivee_, jArrivee_ + 1].poidsAcces)//N
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_, jArrivee_ - 1);
                     }
                     else//S
                     {
                         PathFindingLoohy(moteurgraphique_, iArrivee_, jArrivee_ + 1);
                     }
                 }
             }
             #endregion
             #region Puis Mouv
             if (iArrivee_ == ivirtuel - 1 && jArrivee_ == jvirtuel)
             {
                 AddOuest();
             }
             else
             {
                 if (iArrivee_ == ivirtuel + 1 && jArrivee_ == jvirtuel)
                 {
                     AddEst();
                 }
                 else
                 {
                     if (jArrivee_ == jvirtuel - 1 && iArrivee_ == ivirtuel)
                     {
                         AddNord();
                     }
                     else
                     {
                         if (jArrivee_ == jvirtuel + 1 && iArrivee_ == ivirtuel)
                         {
                             AddSud();
                         }
                     }
                 }
             }
             #endregion
         }
     }
 }
예제 #29
0
        public void Frappe(Unite ennemi_, int porteeDeFrappe_, MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, HUD hud_)
        {
            string txt1;
            int dgts1;
            Color clr1;
            e_race race1;
            #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);
                            txt1 = "Coup Critique !!";
                            dgts1 = ((attaque + bonusAttaque) * 2 - ennemi_.armure);
                        }
                        else
                        {
                            txt1 = "  Inefficace !  ";
                            dgts1 = 0;
                        }
                    }
                    else
                    {
                        if (ennemi_.armure < (attaque + bonusAttaque))
                        {
                            ennemi_.pvactuel -= ((attaque + bonusAttaque) - ennemi_.armure);
                            txt1 = "    Attaque !   ";
                            dgts1 = ((attaque + bonusAttaque) - ennemi_.armure);
                        }
                        else
                        {
                            txt1 = "  Inefficace !  ";
                            dgts1 = 0;
                        }
                    }

                    xp += 3;
                    ennemi_.xp += 1;
                }
                else
                {
                    xp += 1;
                    if (portee[porteeDeFrappe_] == 0)
                    {
                        txt1 = "   Trop loin !  ";
                        dgts1 = 0;
                    }
                    else
                    {
                        txt1 = "      Rate !    ";
                        dgts1 = 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);
                            txt1 = "Coup Critique !!";
                            dgts1 = ((puissance + bonuspuissance) * 2 - ennemi_.armure);
                        }
                        else
                        {
                            txt1 = "  Inefficace !  ";
                            dgts1 = 0;
                        }
                    }
                    else
                    {
                        if (ennemi_.resistance < (puissance + bonuspuissance))
                        {
                            ennemi_.pvactuel -= ((puissance + bonuspuissance) - ennemi_.resistance);
                            txt1 = "    Attaque !   ";
                            dgts1 = ((puissance + bonuspuissance) - ennemi_.armure);
                        }
                        else
                        {
                            txt1 = "  Inefficace !  ";
                            dgts1 = 0;
                        }
                    }

                    xp += 3;
                    ennemi_.xp += 1;
                }
                else
                {
                    xp += 1;
                    if (portee[porteeDeFrappe_] == 0)
                    {
                        txt1 = "   Trop loin !  ";
                        dgts1 = 0;
                    }
                    else
                    {
                        txt1 = "      Rate !    ";
                        dgts1 = 0;
                    }
                }
                #endregion
            }
            #endregion
            clr1 = gameplay_.listeDesJoueurs[numeroArmee].couleur;
            race1 = gameplay_.listeDesJoueurs[numeroArmee].espece;
            ennemi_.Riposte(this, porteeDeFrappe_, moteurgraphique_, gameplay_, txt1, dgts1, clr1, race1, hud_);
        }
예제 #30
0
 // Pathfinding Loohy
 public void poidsPathFindingLoohy(MoteurGraphique moteurgraphique_)
 {
     for (int k = 0; k < mouvement; k++)
     {
         if (i + k >= 0 && i + k < moteurgraphique_.longueur
             && j + (mouvement - k) >= 0 && j + (mouvement - k) < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i + k, j + (mouvement - k)].plusPetitPoidsAlentour(moteurgraphique_);
         }
         if (i - k >= 0 && i - k < moteurgraphique_.longueur
              && j - (mouvement - k) >= 0 && j - (mouvement - k) < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i - k, j - (mouvement - k)].plusPetitPoidsAlentour(moteurgraphique_);
         }
         if (i + (mouvement - k) >= 0 && i + (mouvement - k) < moteurgraphique_.longueur
              && j - k >= 0 && j - k < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i + (mouvement - k), j - k].plusPetitPoidsAlentour(moteurgraphique_);
         }
         if (i - (mouvement - k) >= 0 && i - (mouvement - k) < moteurgraphique_.longueur
              && j + k >= 0 && j + k < moteurgraphique_.largeur)
         {
             moteurgraphique_.map[i - (mouvement - k), j + k].plusPetitPoidsAlentour(moteurgraphique_);
         }
     }
 }