Ejemplo n.º 1
0
        /// <summary>
        /// Fonction qui exécute l'attaque entre deux Pokémons.
        /// </summary>
        /// <param name="attaquant">Le Pokémon qui attaque</param>
        /// <param name="opposant">Le Pokémon qui se fait attaquer</param>
        /// <param name="attaqueChoisie">L'attaque qui a été choisie</param>
        void EffectuerAttaque(Pokemon attaquant, Pokemon opposant, Attaque attaqueChoisie)
        {
            int nombreAléatoire = Générateur.Next(0, 101);

            if (nombreAléatoire <= attaqueChoisie.Accuracy)//attaque!
            {
                //on va faire une attaque classique, ensuite on applique pardessus l'effet plus complexe peu importe l'attaque
                if (attaqueChoisie.EstUneAttaqueSpéciale() && attaqueChoisie.EstUneAttaqueAvecBasePowerValide())
                {
                    opposant.Défendre(CalculPointsDamageSpécial(attaquant, opposant, attaqueChoisie));
                }

                else if (attaqueChoisie.EstUneAttaquePhysique() && attaqueChoisie.EstUneAttaqueAvecBasePowerValide())
                {
                    opposant.Défendre(CalculPointsDamagePhysique(attaquant, opposant, attaqueChoisie));
                }

                Attaque.AppliquerEffetAttaque(attaquant, opposant, attaqueChoisie);
            }
            else
            {
                AfficheurTexte message = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, "It missed!", IntervalMAJ);
                Game.Components.Add(message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Calcul des points de damage si l'attaque utilise des facultés "Spéciales".
        /// </summary>
        /// <param name="attaquant">Le Pokémon qui attaque</param>
        /// <param name="opposant">Le Pokémon qui se fait attaquer</param>
        /// <param name="attaqueChoisie">L'attaque qui a été choisie</param>
        /// <returns>Les points de damage</returns>
        int CalculPointsDamageSpécial(Pokemon attaquant, Pokemon opposant, Attaque attaqueChoisie)
        {
            float damage;

            float multiplicateurType = attaqueChoisie.GetTypeMultiplier(opposant.Type1, opposant.Type2);

            AfficherMessageMultiplicateur(multiplicateurType);

            damage = ((2 * attaquant.Level / 5 + 2) * attaqueChoisie.Power * (attaquant.SpecialAttack / (float)opposant.SpecialDefense) / 50) * multiplicateurType;

            return(CalculerDamageMinimal(damage));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Calcul des points de damage si l'attaque utilise des facultés "Physiques".
        /// </summary>
        /// <param name="attaquant">Le Pokémon qui attaque</param>
        /// <param name="opposant">Le Pokémon qui se fait attaquer</param>
        /// <param name="attaqueChoisie">L'attaque qui a été choisie</param>
        /// <returns>Les points de damage</returns>
        int CalculPointsDamagePhysique(Pokemon attaquant, Pokemon opposant, Attaque attaqueChoisie)// s'il y a un base power
        {
            float damage;

            float multiplicateurType = attaqueChoisie.GetTypeMultiplier(opposant.Type1, opposant.Type2);

            AfficherMessageMultiplicateur(multiplicateurType);

            damage = ((2 * attaquant.Level / 5f + 2) * attaqueChoisie.Power * (attaquant.Attack / (float)opposant.Defense) / 50f) * multiplicateurType;

            return(CalculerDamageMinimal(damage));
        }
Ejemplo n.º 4
0
 void VérifierSiNouvelleAttaqueApprise()
 {
     if (Level == 10)
     {
         Attaque nouvelleAttaque = new Attaque(Game, int.Parse(LearnsetEnString[4]));
         AttaquesList.Add(nouvelleAttaque);
         //AttribuerAttaquesParDéfaut();
         Game.Components.Add(new AfficheurTexte(Game, Jeu.PositionBoxMessage, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, Nom + " learned " + nouvelleAttaque.Name + "!", Jeu.INTERVALLE_MAJ_STANDARD));
     }
     else if (Level == 25)
     {
         Attaque nouvelleAttaque = new Attaque(Game, int.Parse(LearnsetEnString[5]));
         AttaquesList.Add(nouvelleAttaque);
         //AttribuerAttaquesParDéfaut();
         Game.Components.Add(new AfficheurTexte(Game, Jeu.PositionBoxMessage, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, Nom + " learned " + nouvelleAttaque.Name + "!", Jeu.INTERVALLE_MAJ_STANDARD));
     }
 }
Ejemplo n.º 5
0
 public static void AppliquerEffetAttaque(Pokemon attaquant, Pokemon opponent, Attaque attaqueChoisie)
 {
 }