示例#1
0
        //############################################ DAMAGE CALCULATORS ##########################################################//
        //############################################ DAMAGE CALCULATORS ##########################################################//
        //############################################ DAMAGE CALCULATORS ##########################################################//


        public double DammageCalculatorEnnemi(Ennemi ennemi, AttaqueCondition condition)
        {
            var    rand = new Random();
            double dmg;
            var    chance = ((double)rand.Next(-30, 31) / 100);

            switch (condition)
            {
            case AttaqueCondition.Attaque:

                var mulDmgAtt = MethodeCombat.Dommage(Arme.TypeElement, ennemi.TypeElement);
                dmg = ((Puissance + Arme.Puissance) - ennemi.Defense) * mulDmgAtt;
                if (dmg <= 1)
                {
                    dmg = rand.Next(2, 7);
                }
                dmg = dmg + (dmg * chance);
                return(dmg);

            case AttaqueCondition.Defense:
                var mulDmgDef = MethodeCombat.Dommage(ennemi.TypeElement, Arme.TypeElement);
                dmg = (ennemi.Puissance - (Defense + Armure.Defense)) * mulDmgDef;
                if (dmg <= 1)
                {
                    dmg = rand.Next(2, 7);
                }
                dmg = dmg + (dmg * chance);
                return(dmg);
            }

            return(0);
        }
示例#2
0
 public void AddXpEnnemi(Ennemi ennemi)
 {
     ExperienceTotale       += ennemi.ValeurExp;
     Experience             += ennemi.ValeurExp;
     Console.ForegroundColor = ConsoleColor.Yellow;
     Console.WriteLine($"{Nom} Gagne {ennemi.ValeurExp} Experience !");
     Console.ForegroundColor = ConsoleColor.Gray;
 }
示例#3
0
        public void RecevoirFrappeDeEnnemi(Ennemi baddie)
        {
            Console.WriteLine($"\n{baddie.Name} frappe {Nom} le {Race}");

            //Calc
            double dmg = DammageCalculatorEnnemi(baddie, AttaqueCondition.Defense);

            //Calc

            Console.WriteLine($"{Nom} prends {dmg} de dommage dans la geule!\n");
            PvActuels -= (int)dmg;
        }
示例#4
0
        //############################################ FRAPPE PHYSIQUE ##########################################################//
        //############################################ FRAPPE PHYSIQUE ##########################################################//
        //############################################ FRAPPE PHYSIQUE ##########################################################//


        public void FrapperEnnemi(ref Ennemi baddie)
        {
            Console.WriteLine($"\n{Nom} frappe avec {Arme.NomObjet}  {baddie.Name} le {baddie.TypeEnnemi}");

            //Calc
            double dmg = DammageCalculatorEnnemi(baddie, AttaqueCondition.Attaque);

            //Calc

            Console.WriteLine($"{baddie.Name} prends {(int) dmg} de dommage dans la geule!\n");
            baddie.Pv -= (int)dmg;
        }
示例#5
0
        public double DammageCalculatorMagicEnnemi(Ennemi baddie, Sort sort)
        {
            var rand   = new Random();
            var chance = (double)rand.Next(-30, 31) / 100;

            var mulDmgAtt = MethodeCombat.Dommage(sort.TypeElement, baddie.TypeElement);
            var dmg       = ((PuissanceMagique * sort.Puissance) - (baddie.Defense)) * mulDmgAtt;

            if (dmg <= 1)
            {
                dmg = rand.Next(2, 7);
            }
            dmg = dmg + (dmg * chance);
            return(dmg);
        }
示例#6
0
        public bool UtiliserItemVsEnnemi(ref Ennemi baddie)
        {
            if (Inventaire.Count != 0)
            {
                var rand    = new Random();
                var newList = new List <ObjConsumable>();
                foreach (var i in Inventaire.ToList())
                {
                    if (i.ObjetCons != null)
                    {
                        newList.Add(i.ObjetCons);
                        Inventaire.Remove(i);
                    }
                }

                if (newList.Count != 0)
                {
                    var item = newList[rand.Next(0, newList.Count)];
                    newList.Remove(item);

                    if (newList.Count != 0)
                    {
                        foreach (var objConsumable in newList)
                        {
                            Inventaire.Add(new ObjInventaire(objConsumable));
                        }
                    }

                    var sort = item.ItemToSpell();
                    LancerSortVsEnnemi(ref baddie, sort);
                    return(true);
                }
            }

            return(false);
        }
示例#7
0
        public bool LancerSortVsEnnemi(ref Ennemi baddie, Sort itemSort)
        {
            Sort sort;

            if (itemSort == null)
            {
                sort = ChoixSort();
            }
            else
            {
                sort = itemSort;
            }


            if (sort != null)
            {
                if (MpActuel >= sort.CoutMp)
                {
                    if (sort.TypeElement != TypeElement.Lumiere)
                    {
                        MpActuel -= sort.CoutMp;
                        if (sort.CoutMp == 0)
                        {
                            Console.WriteLine($"\n{Nom} utilise {sort.NomSort} sur {baddie.Name} le {baddie.TypeEnnemi}");
                        }
                        else
                        {
                            Console.WriteLine($"\n{Nom} lance le sort {sort.NomSort} a {baddie.Name} le {baddie.TypeEnnemi}");
                        }

                        double dmg = DammageCalculatorMagicEnnemi(baddie, sort);

                        Console.WriteLine($"{baddie.Name} prends {dmg} de dommage dans la geule!\n");
                        baddie.Pv -= (int)dmg;
                        return(true);
                    }
                    else // ElementType.Lumiere
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        MpActuel -= sort.CoutMp;
                        if (sort.CoutMp == 0)
                        {
                            Console.WriteLine($"\n{Nom} utilise {sort.NomSort} !");
                        }

                        else
                        {
                            Console.WriteLine($"\n{Nom} lance le sort {sort.NomSort} !");
                        }

                        int heal = (int)PuissanceMagique * sort.Puissance;
                        PvActuels += heal;
                        if (PvActuels > PvMax)
                        {
                            PvActuels = PvMax;
                        }

                        Console.WriteLine($"{Nom} se soigne de {heal} Points de vie !\n\n");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        return(true);
                    }
                }
                else
                {
                    Console.WriteLine(
                        $"\n{Nom} pas lancer le sort {sort.NomSort} il coute {sort.CoutMp} MP et il n'a que {MpActuel} MP\n");
                    return(false);
                }
            }

            return(false);
        }