Example #1
0
        private void CaculateDefense(Personnages attacker, Personnages opponent)
        {
            double randomDouble   = Utils.randomDouble();
            double attackerDamage = attacker.Damage;

            System.Console.WriteLine(opponent.Name + " se prépare à défendre ....");
            if (opponent.CoefDef > randomDouble)
            {
                System.Console.WriteLine(opponent.Name + " c'est défendu !!!");
                double reduceDamage = attackerDamage * opponent.CoefDef;
                attackerDamage = attackerDamage - Math.Round(reduceDamage);
                System.Console.WriteLine("L'attaque a été réduite à " + attackerDamage);
            }
            else
            {
                System.Console.WriteLine(opponent.Name + " n'a pas réussi à ce défendre !!");
            }
            Utils.WriteLine("*");
            Console.WriteLine("Attention, nos personnages on des specs, voyont s'ils arrivent à les utiliser");
            // On applique les specs
            // personnage.calculateSpecs(attackerDamage, isAttacker = Boolean)
            attackerDamage = attacker.CalculateSpecs(attackerDamage);
            attackerDamage = opponent.CalculateSpecs(attackerDamage);
            Utils.WriteLine("*");
            opponent.ReceiveDamage(attackerDamage);
        }
Example #2
0
        internal double CalculateDamage(double attackerDamage, Personnages personnage)
        {
            double specValue = (attackerDamage * personnage.Specs.Value) / 100;

            switch (personnage.Specs.Process)
            {
            case Process.Add:
                attackerDamage += specValue;
                break;

            case Process.Substract:
                attackerDamage -= specValue;
                break;

            case Process.Multiplicate:
                specValue       = attackerDamage * personnage.Specs.Value;
                attackerDamage += specValue;
                break;

            case Process.Divise:
                attackerDamage /= personnage.Specs.Value;
                break;

            default:
                break;
            }
            return(attackerDamage);
        }
Example #3
0
        public PersonnagesBuilder setType(PersonnagesType type)
        {
            switch (type)
            {
            case PersonnagesType.Humain:
                personnage = new Humain();
                break;

            case PersonnagesType.Nain:
                personnage = new Nain();
                break;

            case PersonnagesType.Elf:
                personnage = new Elf();
                break;

            case PersonnagesType.Orque:
                personnage = new Orque();
                break;

            default:
                personnage = new Humain();
                break;
            }
            return(this);
        }
Example #4
0
        private Personnages returnOppenent(Personnages currentPersonnage)
        {
            int         randomInt = Utils.randomInt(0, personnages.Count);
            Personnages opponent  = personnages[randomInt];

            if (currentPersonnage.GetHashCode() == opponent.GetHashCode())
            {
                return(returnOppenent(currentPersonnage));
            }
            return(opponent);
        }
Example #5
0
 public void start()
 {
     System.Console.WriteLine("\n");
     foreach (Personnages attacker in personnages.ToList())
     {
         System.Console.WriteLine("---------------------------------------------");
         Personnages opponent = returnOppenent(attacker);
         fight(attacker, opponent);
     }
     if (personnages.Count > 1)
     {
         start();
     }
     else
     {
         personnages.ForEach(p =>
         {
             System.Console.WriteLine("Le gagnant est : " + p.Name);
         });
     }
 }
Example #6
0
        private void fight(Personnages attacker, Personnages opponent)
        {
            double randomCoef = Utils.randomDouble();

            Console.WriteLine("Un combat se prépare ....");
            Console.WriteLine(attacker.Name + " va affronter " + opponent.Name);

            if (attacker.CoefAtk > randomCoef)
            {
                System.Console.WriteLine(attacker.Name + " a réussi son attaque. C'est au tour de " + opponent.Name + " de se défendre");
                CaculateDefense(attacker, opponent);
                System.Console.WriteLine("Suite à l'attaque, " + opponent.Name + " lui reste que " + opponent.Life + " de vie");
                if (opponent.Life <= 0)
                {
                    personnages.Remove(opponent);
                }
            }
            else
            {
                System.Console.WriteLine("Ho Ho Ho " + attacker.Name + " n'a pas pu attaquer son adversaire.");
            }
        }