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);
        }
Exemplo n.º 2
0
        //Fonction passe d'arme, on génère des attaques jusqu'a obtenir un gagnant
        public Entity Trade(Entity entity)
        {
            Entity    winner     = null;
            Gladiator ennemy     = (Gladiator)entity;
            bool      firstRound = true; //Si premier tour, utilisation des filets

            while (winner == null)
            {
                if (firstRound)
                {
                    this.UseNet(ennemy);
                }
                if (this.Attack(ennemy) == ennemy)
                {
                    if (firstRound)
                    {
                        ennemy.UseNet(this);
                    }
                    if (ennemy.Attack(this) == ennemy)
                    {
                        winner = ennemy;
                    }
                }
                else
                {
                    winner = this;
                }
                firstRound = false;
            }
            return(winner);
        }
Exemplo n.º 3
0
        //Execution du match avec détermination du premier tour en fonction de l'initiative des armes
        public override Entity PlayMatch()
        {
            Gladiator g1 = (Gladiator)this._Part1;
            Gladiator g2 = (Gladiator)this._Part2;

            //Si g1 à une arme plus haute en initiative, il commence
            if (Stuff.Initiative[g1.Weapons[0]] > Stuff.Initiative[g2.Weapons[0]])
            {
                return(Winner(g1.Trade(g2)));
                //Sinon c'est g2
            }
            else if (Stuff.Initiative[g1.Weapons[0]] < Stuff.Initiative[g2.Weapons[0]])
            {
                return(Winner(g2.Trade(g1)));
            }
            else
            {
                //Si les deux gladiateurs ont la même armes, tirage au sort équitable pour le premier tour
                Console.WriteLine(g1.Name + " and " + g2.Name + " both have a " + g1.Weapons[0]);
                Console.WriteLine("->Random choice for first");
                if (Stuff.getPercentage() > 50)
                {
                    Console.WriteLine(g1.Name + " first:\n");
                    return(Winner(g1.Trade(g2)));
                }
                else
                {
                    Console.WriteLine(g2.Name + " first:\n");
                    return(Winner(g2.Trade(g1)));
                }
            }
        }
Exemplo n.º 4
0
 //Fonction d'utilisation du filet
 private void UseNet(Gladiator ennemy)
 {
     if (this._Weapons.Contains("Net"))
     {
         Console.WriteLine(this.Name + " uses Net ! \n" + ennemy.Name + " gets 50% hite rate malus.");
         ennemy._HitRate = 0.5;
     }
 }
Exemplo n.º 5
0
 //Fonction d'ajout de gladiateurs pour gérer le nombre de gladiateurs et d'armes qu'ils possèdes
 public void AddGlad(Gladiator glad)
 {
     if (this.Gladiators.Count < 3)
     {
         while (glad.Weapons.Count == 0 || (glad.Weapons.Count == 1 && glad.Weapons[0] == "Net"))
         {
             ErrorMessage(": " + glad.Name + " must have a least one weapon (he can't either fight with only a net)");
         }
         glad.SortWeaponByIni();
         this.Gladiators.Add(glad);
     }
     else
     {
         ErrorMessage(": You can't have more than 3 gladiators per team !");
     }
 }
Exemplo n.º 6
0
 //Fonction d'ajout de gladiateurs pour gérer le nombre de gladiateurs et d'armes qu'ils possèdes
 public void AddGlad(Gladiator glad)
 {
     if (this.Gladiators.Count < 3)
     {
         while (glad.Weapons.Count == 0 || (glad.Weapons.Count == 1 && glad.Weapons[0] == "Net"))
         {
             ErrorMessage(": " + glad.Name + " must have a least one weapon (he can't either fight with only a net)");
         }
         glad.SortWeaponByIni();
         this.Gladiators.Add(glad);
     }
     else
     {
         ErrorMessage(": You can't have more than 3 gladiators per team !");
     }
 }
Exemplo n.º 7
0
 //Fonction blocage, retourne TRUE si l'attaque est bloquée, sinon FALSE
 public bool Block(Gladiator ennemy)
 {
     if (this._Armors.Count == 0)
     {
         return(false);
     }
     else
     {
         foreach (string armor in this._Armors)
         {
             //Console.WriteLine ("BlockRate: " + Stuff.BlockRate [armor] + "%");
             if (Stuff.getPercentage() <= Stuff.BlockRate[armor])
             {
                 Console.WriteLine(this.Name + " uses " + armor + " !");
                 return(true);
             }
         }
     }
     return(false);
 }
Exemplo n.º 8
0
        public Test()
        {
            //Instanciation des joueurs avec des matchs pour le winRate
            Player Max = new Player("FLORILE", "Maxime", "Zywo");
            Player Cam = new Player("ALLES", "Camille", "Kaoumlya");
            Player Ben = new Player("DESMET", "Benjamin", "Yela");
            Player Kwi = new Player("QUERON", "Quentin", "Kwintyn");
            Max.Victories = 5;
            Max.Defeats = 3;
            Cam.Victories = 2;
            Cam.Defeats = 1;
            Ben.Victories = 3;
            Ben.Defeats = 0;
            Kwi.Victories = 5;
            Kwi.Defeats = 3;

            //Instanciation des teams avec des matchs pour le winRate et le matchMaking
            Team ZyT1 = new Team("Team Zywo", "La team de Zywo alias Maxime");
            Team KaT1 = new Team("Team Kamoulya", "La team de Kamoulya alias Camille");
            Team YeT1 = new Team("Team Yela", "La team de Yela alias Benjamin");
            Team KwT1 = new Team("Team Kwintyn", "La team de Kwintyn alias Quentin");
            ZyT1.Victories = 2;
            ZyT1.Defeats = 1;
            KaT1.Victories = 2;
            KaT1.Defeats = 3;
            YeT1.Victories = 5;
            YeT1.Defeats = 1;
            KwT1.Victories = 0;
            KwT1.Defeats = 3;

            //Instanciation des gladiateurs
            Gladiator ZyGla1 = new Gladiator("Zywo_Glad_1", 1);
            Gladiator ZyGla2 = new Gladiator("Zywo_Glad_2", 2);
            Gladiator ZyGla3 = new Gladiator("Zywo_Glad_3", 3);
            Gladiator KaGla1 = new Gladiator("Kamoulya_Glad_1", 1);
            Gladiator KaGla2 = new Gladiator("Kamoulya_Glad_2", 2);
            Gladiator KaGla3 = new Gladiator("Kamoulya_Glad_3", 3);
            Gladiator YeGla1 = new Gladiator("Yela_Glad_1", 1);
            Gladiator YeGla2 = new Gladiator("Yela_Glad_2", 2);
            Gladiator YeGla3 = new Gladiator("Yela_Glad_3", 3);
            Gladiator KwGla1 = new Gladiator("Kwintyn_Glad_1", 1);
            Gladiator KwGla2 = new Gladiator("Kwintyn_Glad_2", 2);
            Gladiator KwGla3 = new Gladiator("Kwintyn_Glad_3", 3);

            //Equipement gladiateurs Zywo
            ZyGla1.AddItem("Dagger");
            ZyGla1.AddItem("Sword");
            ZyGla1.AddItem("Net");
            ZyGla2.AddItem("Big shield");
            ZyGla2.AddItem("Dagger");
            ZyGla3.AddItem("Dagger");
            ZyGla3.AddItem("Helmet");
            //Equipement gladiateurs Kamoulya
            KaGla1.AddItem("Helmet");
            KaGla1.AddItem("Lance");
            KaGla2.AddItem("Helmet");
            KaGla2.AddItem("Lance");
            KaGla3.AddItem("Trident");
            KaGla3.AddItem("Dagger");
            //Equipement gladiateurs Yela
            YeGla1.AddItem("Sword");
            YeGla1.AddItem("Net");
            YeGla2.AddItem("Sword");
            YeGla2.AddItem("Dagger");
            YeGla2.AddItem("Helmet");
            YeGla3.AddItem("Lance");
            YeGla3.AddItem("Helmet");
            //Equipement gladiateurs Kwintyn
            KwGla1.AddItem("Helmet");
            KwGla1.AddItem("Lance");
            KwGla2.AddItem("Helmet");
            KwGla2.AddItem("Lance");
            KwGla3.AddItem("Trident");
            KwGla3.AddItem("Dagger");

            //Ajout des gladiateurs aux équipes
            ZyT1.AddGlad(ZyGla1);
            ZyT1.AddGlad(ZyGla2);
            ZyT1.AddGlad(ZyGla3);
            KaT1.AddGlad(KaGla1);
            KaT1.AddGlad(KaGla2);
            KaT1.AddGlad(KaGla3);
            YeT1.AddGlad(YeGla1);
            YeT1.AddGlad(YeGla2);
            YeT1.AddGlad(YeGla3);
            KwT1.AddGlad(KwGla1);
            KwT1.AddGlad(KwGla2);
            KwT1.AddGlad(KwGla3);

            //Ajout des équipes aux joueurs
            Max.Teams.Add(ZyT1);
            Cam.Teams.Add(KaT1);
            Ben.Teams.Add(YeT1);
            Kwi.Teams.Add(KwT1);

            //Formation du tournois
            List<Team> Teams = new List<Team>();
            Teams.Add(Max.Teams[0]);
            Teams.Add(Cam.Teams[0]);
            Teams.Add(Kwi.Teams[0]);
            Teams.Add(Ben.Teams[0]);
            Tournament match = new Tournament(Teams);

            match.StartTournament();

            Console.Read();
        }
Exemplo n.º 9
0
        public Test()
        {
            //Instanciation des joueurs avec des matchs pour le winRate
            Player Max = new Player("FLORILE", "Maxime", "Zywo");
            Player Cam = new Player("ALLES", "Camille", "Kaoumlya");
            Player Ben = new Player("DESMET", "Benjamin", "Yela");
            Player Kwi = new Player("QUERON", "Quentin", "Kwintyn");

            Max.Victories = 5;
            Max.Defeats   = 3;
            Cam.Victories = 2;
            Cam.Defeats   = 1;
            Ben.Victories = 3;
            Ben.Defeats   = 0;
            Kwi.Victories = 5;
            Kwi.Defeats   = 3;

            //Instanciation des teams avec des matchs pour le winRate et le matchMaking
            Team ZyT1 = new Team("Team Zywo", "La team de Zywo alias Maxime");
            Team KaT1 = new Team("Team Kamoulya", "La team de Kamoulya alias Camille");
            Team YeT1 = new Team("Team Yela", "La team de Yela alias Benjamin");
            Team KwT1 = new Team("Team Kwintyn", "La team de Kwintyn alias Quentin");

            ZyT1.Victories = 2;
            ZyT1.Defeats   = 1;
            KaT1.Victories = 2;
            KaT1.Defeats   = 3;
            YeT1.Victories = 5;
            YeT1.Defeats   = 1;
            KwT1.Victories = 0;
            KwT1.Defeats   = 3;

            //Instanciation des gladiateurs
            Gladiator ZyGla1 = new Gladiator("Zywo_Glad_1", 1);
            Gladiator ZyGla2 = new Gladiator("Zywo_Glad_2", 2);
            Gladiator ZyGla3 = new Gladiator("Zywo_Glad_3", 3);
            Gladiator KaGla1 = new Gladiator("Kamoulya_Glad_1", 1);
            Gladiator KaGla2 = new Gladiator("Kamoulya_Glad_2", 2);
            Gladiator KaGla3 = new Gladiator("Kamoulya_Glad_3", 3);
            Gladiator YeGla1 = new Gladiator("Yela_Glad_1", 1);
            Gladiator YeGla2 = new Gladiator("Yela_Glad_2", 2);
            Gladiator YeGla3 = new Gladiator("Yela_Glad_3", 3);
            Gladiator KwGla1 = new Gladiator("Kwintyn_Glad_1", 1);
            Gladiator KwGla2 = new Gladiator("Kwintyn_Glad_2", 2);
            Gladiator KwGla3 = new Gladiator("Kwintyn_Glad_3", 3);

            //Equipement gladiateurs Zywo
            ZyGla1.AddItem("Dagger");
            ZyGla1.AddItem("Sword");
            ZyGla1.AddItem("Net");
            ZyGla2.AddItem("Big shield");
            ZyGla2.AddItem("Dagger");
            ZyGla3.AddItem("Dagger");
            ZyGla3.AddItem("Helmet");
            //Equipement gladiateurs Kamoulya
            KaGla1.AddItem("Helmet");
            KaGla1.AddItem("Lance");
            KaGla2.AddItem("Helmet");
            KaGla2.AddItem("Lance");
            KaGla3.AddItem("Trident");
            KaGla3.AddItem("Dagger");
            //Equipement gladiateurs Yela
            YeGla1.AddItem("Sword");
            YeGla1.AddItem("Net");
            YeGla2.AddItem("Sword");
            YeGla2.AddItem("Dagger");
            YeGla2.AddItem("Helmet");
            YeGla3.AddItem("Lance");
            YeGla3.AddItem("Helmet");
            //Equipement gladiateurs Kwintyn
            KwGla1.AddItem("Helmet");
            KwGla1.AddItem("Lance");
            KwGla2.AddItem("Helmet");
            KwGla2.AddItem("Lance");
            KwGla3.AddItem("Trident");
            KwGla3.AddItem("Dagger");

            //Ajout des gladiateurs aux équipes
            ZyT1.AddGlad(ZyGla1);
            ZyT1.AddGlad(ZyGla2);
            ZyT1.AddGlad(ZyGla3);
            KaT1.AddGlad(KaGla1);
            KaT1.AddGlad(KaGla2);
            KaT1.AddGlad(KaGla3);
            YeT1.AddGlad(YeGla1);
            YeT1.AddGlad(YeGla2);
            YeT1.AddGlad(YeGla3);
            KwT1.AddGlad(KwGla1);
            KwT1.AddGlad(KwGla2);
            KwT1.AddGlad(KwGla3);

            //Ajout des équipes aux joueurs
            Max.Teams.Add(ZyT1);
            Cam.Teams.Add(KaT1);
            Ben.Teams.Add(YeT1);
            Kwi.Teams.Add(KwT1);

            //Formation du tournois
            List <Team> Teams = new List <Team>();

            Teams.Add(Max.Teams[0]);
            Teams.Add(Cam.Teams[0]);
            Teams.Add(Kwi.Teams[0]);
            Teams.Add(Ben.Teams[0]);
            Tournament match = new Tournament(Teams);

            match.StartTournament();

            Console.Read();
        }
Exemplo n.º 10
0
 public GvG(Gladiator g1, Gladiator g2)
     : base(g1, g2)
 {
 }
Exemplo n.º 11
0
 //Fonction d'utilisation du filet
 private void UseNet(Gladiator ennemy)
 {
     if (this._Weapons.Contains("Net"))
     {
         Console.WriteLine(this.Name + " uses Net ! \n" + ennemy.Name + " gets 50% hite rate malus.");
         ennemy._HitRate = 0.5;
     }
 }
Exemplo n.º 12
0
 //Fonction blocage, retourne TRUE si l'attaque est bloquée, sinon FALSE
 public bool Block(Gladiator ennemy)
 {
     if (this._Armors.Count == 0)
     {
         return false;
     }
     else
     {
         foreach (string armor in this._Armors)
         {
             //Console.WriteLine ("BlockRate: " + Stuff.BlockRate [armor] + "%");
             if (Stuff.getPercentage() <= Stuff.BlockRate[armor])
             {
                 Console.WriteLine(this.Name + " uses " + armor + " !");
                 return true;
             }
         }
     }
     return false;
 }
Exemplo n.º 13
0
 public GvG(Gladiator g1, Gladiator g2)
     : base(g1, g2)
 {
 }