Exemplo n.º 1
0
        //Fonction attaque, le gladiateur attaquant attaque le défenseur avec chacune de son/ses arme(s)
        public Entity Attack(Entity entity)
        {
            Gladiator ennemy = (Gladiator)entity;

            /*
             * On boucle sur les armes de l'attaquant
             * Si l'attaquant à un filet, on l'ignore, le filet étant géré dans la passe d'arme (une seule utilisation par passe d'arme)
             * On déclenche la capacité de blocage ici
             */
            for (int i = (this.Weapons.Contains("Net") ? 1 : 0); i < this.Weapons.Count; i++)
            {
                Console.WriteLine(this._Name + " attack " + ennemy.Name + " with " + this.Weapons[i] + "!");
                //Console.WriteLine ("Hit rate: " + Stuff.HitRate [this.Weapons[i]] * this._DamageRate + "%");
                if (Stuff.getPercentage() <= Stuff.HitRate[this.Weapons[i]] * this._HitRate)
                {
                    if (ennemy.Block(this))
                    {
                        Console.WriteLine(ennemy.Name + " blocked the attack !");
                    }
                    else
                    {
                        Console.WriteLine("It's super effective !  " + ennemy.Name + " dies..\n");
                        //Retourne le gladiateur courant (attaquant) s'il tue l'ennemi
                        return(this);
                    }
                }
                else
                {
                    Console.WriteLine(this._Name + " missed his attack..\n");
                }
            }
            //Retourne l'ennemi si l'attaquant n'est pas parvenu à le tuer
            return(ennemy);
        }