示例#1
0
        public static AttaqueChoisie TypeAttaquePersonnage(Personnage perso)
        {
            var attType = new ClasseTypeAttaque
            {
                AttaqueArme = 60,
                AttaqueSort = 40,
                Item        = 10
            };


            switch (perso.Race)
            {
            case PersonnageRace.Humain:
                attType = TypeAttSwitchClasse(perso.Classe, attType);
                break;

            case PersonnageRace.Nain:
                attType = TypeAttSwitchClasse(perso.Classe, attType);
                break;

            case PersonnageRace.Elfe:
                attType = TypeAttSwitchClasse(perso.Classe, attType);
                break;
            }

            attType.RandomType();
            return(attType.Choix);
        }
示例#2
0
        private static void Attaque(Personnage attaquant, ref Personnage defenseur)
        {
            bool successoption = false;

            while (true)
            {
                var typeatt = TypeAttaquePersonnage(attaquant);

                switch (typeatt)
                {
                case AttaqueChoisie.AttaqueArme:
                    attaquant.FrapperPersonnage(ref defenseur);
                    successoption = true;
                    break;

                case AttaqueChoisie.AttaqueSort:
                    successoption = attaquant.LancerSortVsPerso(ref defenseur, null);
                    break;

                case AttaqueChoisie.Item:
                    successoption = attaquant.UtiliserItemVsPerso(ref defenseur);
                    break;
                }

                if (!successoption)
                {
                    continue;
                }
                //WaitAfterAtt
                Thread.Sleep(450);

                break;
            }
        }
        private static Personnage CreationPersonnage()
        {
            Player = new Personnage();
            //demander infos
            Player.CharacterCreation();
            foreach (var arme in ListeArmes)
            {
                if (arme.NomObjet == "Mains Nues")
                {
                    Player.Arme = arme;
                    break;
                }
            }

            foreach (var armure in ListeArmures)
            {
                if (armure.NomObjet == "Vetements")
                {
                    Player.Armure = armure;
                    break;
                }
            }

            return(Player);
        }
示例#4
0
        public double DammageCalculatorMagicPerso(Personnage defenseur, Sort sort)
        {
            var rand   = new Random();
            var chance = ((double)rand.Next(-30, 31) / 100);

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

            if (dmg <= 1)
            {
                dmg = rand.Next(2, 7);
            }
            dmg = dmg + (dmg * chance);
            return(dmg);
        }
        public static void Loot(ref Personnage joueur, int lootchances)
        {
            ObjInventaire loot    = null;
            var           rand    = new Random();
            var           chances = rand.Next(0, 101);

            if (chances > lootchances)
            {
                loot = LootTable[rand.Next(0, LootTable.Count)];
            }

            if (loot != null)
            {
                joueur.Inventaire.Add(loot);
            }

            else
            {
                Console.WriteLine("L'ennemi n'avais aucun objet de valeur!");
            }
        }
示例#6
0
        public bool UtiliserItemVsPerso(ref Personnage defenseur)
        {
            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();
                    LancerSortVsPerso(ref defenseur, sort);
                    return(true);
                }
            }

            return(false);
        }
示例#7
0
        public static void AttaqueEnnemi(ref Personnage persJ, ref Ennemi baddie)
        {
            bool win  = false;
            var  cond = persJ.Vitesse > baddie.Vitesse ? AttaqueCondition.Attaque : AttaqueCondition.Defense;
            int  x    = 0;

            while (!win)
            {
                if (cond == AttaqueCondition.Attaque)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    if (x == 0)
                    {
                        Console.WriteLine($"\n{persJ.Nom} Attaque !");
                        ++x;
                    }
                    Console.ForegroundColor = ConsoleColor.White;
                    bool successoption = true;
                    var  typeatt       = TypeAttaquePersonnage(persJ);


                    switch (typeatt)
                    {
                    case AttaqueChoisie.AttaqueArme:
                        persJ.FrapperEnnemi(ref baddie);
                        break;

                    case AttaqueChoisie.AttaqueSort:
                        successoption = persJ.LancerSortVsEnnemi(ref baddie, null);
                        break;

                    case AttaqueChoisie.Item:
                        successoption = persJ.UtiliserItemVsEnnemi(ref baddie);
                        break;
                    }



                    if (!successoption)
                    {
                        continue;
                    }
                    //WaitAfterAtt
                    Thread.Sleep(450);
                }



                if (cond == AttaqueCondition.Defense)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    if (x == 0)
                    {
                        Console.WriteLine($"\n{baddie.Name} Attaque !");
                        ++x;
                    }
                    Console.ForegroundColor = ConsoleColor.White;
                    var typeatt = TypeAttaqueEnnemi(baddie);


                    switch (typeatt)
                    {
                    case AttaqueChoisie.AttaqueArme:
                        persJ.RecevoirFrappeDeEnnemi(baddie);
                        break;
                    }
                    //WaitAfterAtt
                    Thread.Sleep(450);
                }


                cond = cond == AttaqueCondition.Attaque ? AttaqueCondition.Defense : AttaqueCondition.Attaque;
                x    = 0;
                if (!(persJ.PvActuels <= 0 | baddie.Pv <= 0))
                {
                    continue;
                }
                if (persJ.PvActuels <= 0)
                {
                    GameOver();
                }
                else
                {
                    win = true;
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine($"\n\n            ~~~~~~~~~~~~~~~VICTOIRE!!!~~~~~~~~~~~~~~~" +
                                      $"\n                 {persJ.Nom} a Vaincu {baddie.Name} !!!!!\n" +
                                      $"                        Vous avez Gagne !");
                    Console.WriteLine("            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n" +
                                      "\n        ---> Appuyez sur une touche pour continuer....! <---");
                    Console.ReadLine();
                    Console.Clear();
                }
            }

            Console.ForegroundColor = ConsoleColor.Gray;
            persJ.AddXpEnnemi(baddie);
            persJ.CheckLevelPlayer();
            baddie.Loot(ref persJ);
            Console.ReadLine();
        }
示例#8
0
        public static void CombatPersonnage(ref Personnage persJoueur, ref Personnage persEnnemi)
        {
            bool win = false;

            var cond = persJoueur.Vitesse > persEnnemi.Vitesse ? AttaqueCondition.Attaque : AttaqueCondition.Defense;
            int x    = 0;

            while (!win)
            {
                switch (cond)
                {
                case AttaqueCondition.Attaque:
                    Console.ForegroundColor = ConsoleColor.Green;

                    if (x == 0)
                    {
                        Console.WriteLine($"\n{persJoueur.Nom} Attaque !");
                        ++x;
                    }
                    Console.ForegroundColor = ConsoleColor.White;
                    Attaque(persJoueur, ref persEnnemi);
                    break;

                case AttaqueCondition.Defense:
                    Console.ForegroundColor = ConsoleColor.Red;
                    if (x == 0)
                    {
                        Console.WriteLine($"\n{persEnnemi.Nom} Attaque !");
                        ++x;
                    }
                    Console.ForegroundColor = ConsoleColor.White;
                    Attaque(persEnnemi, ref persJoueur);
                    break;
                }


                cond = cond == AttaqueCondition.Attaque ? AttaqueCondition.Defense : AttaqueCondition.Attaque;
                x    = 0;


                if (!(persJoueur.PvActuels <= 0 | persEnnemi.PvActuels <= 0))
                {
                    continue;
                }
                if (persJoueur.PvActuels <= 0)
                {
                    GameOver();
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine($"\n\n            ~~~~~~~~~~~~~~~VICTOIRE!!!~~~~~~~~~~~~~~~" +
                                      $"\n                 {persJoueur.Nom} a Vaincu {persEnnemi.Nom} !!!!!\n" +
                                      $"                        Vous avez Gagne !");
                    Console.WriteLine("            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n" +
                                      "\n        ---> Appuyez sur une touche pour continuer....! <---");
                    Console.ReadLine();
                    Console.Clear();
                    win = true;
                }
            }

            Console.ForegroundColor = ConsoleColor.Gray;
            persJoueur.AddXpPersonnage(persEnnemi);
            persJoueur.CheckLevelPlayer();
            persEnnemi.Loot(ref persJoueur);
        }
示例#9
0
        public bool LancerSortVsPerso(ref Personnage defenseur, 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} a {defenseur.Nom} le {defenseur.Race}");
                        }
                        else
                        {
                            Console.WriteLine($"\n{Nom} lance le sort {sort.NomSort} a {defenseur.Nom} le {defenseur.Race}");
                        }


                        double dmg = DammageCalculatorMagicPerso(defenseur, sort);

                        Console.WriteLine($"{defenseur.Nom} prends {dmg} de dommage dans la geule!\n");
                        defenseur.PvActuels -= (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");
                        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);
        }
        public void Init()
        {
            LoadAllContent();
            Table = new ClasseLootTable(ListeArmes, ListeArmures, ListeConsumables);



            Player = new Personnage(PersonnageRace.Humain, PersonnageClasse.Magicien, "Alex", 100, 100, 19, 5, 5,
                                    5)
            {
                Arme            = new ObjArme("yeaaa", TypeElement.Air, 3),
                Armure          = new ObjArmure("PasUneArmure", TypeElement.Air, 2),
                SeuilExperience = 200,
                ListeSorts      = ListeSorts
            };
            Player.Inventaire.Add(new ObjInventaire(new ObjConsumable("pete", TypeConsumable.Potion, TypeElement.Lumiere, 7)));
            Player.Inventaire.Add(new ObjInventaire(new ObjConsumable("pete", TypeConsumable.Potion, TypeElement.Lumiere, 7)));
            Player.Inventaire.Add(new ObjInventaire(ListeConsumables[0]));

            foreach (var listeArme in ListeArmes)
            {
                Player.Inventaire.Add(new ObjInventaire(listeArme));
            }

            foreach (var listeArme in ListeArmures)
            {
                Player.Inventaire.Add(new ObjInventaire(listeArme));
            }

            var suif = new Ennemi("Vache Enrage", TypeEnnemi.PerchaudeEnchantee, 30, TypeElement.Eau, 10, 10, 10, 3000,
                                  90);

            suif.LootTable = Table;

            var Client = new AffichageManager.AffichageManagerTest();

            Client.Init();
            Affichage = new Thread(Client.SendLoop);
            Affichage.Start();
            Thread.Sleep(300);


            Player2             = new Personnage(PersonnageRace.Humain, PersonnageClasse.Magicien, "Pablo", 100, 5, 5, 5, 5, 5);
            Player2.Arme        = new ObjArme("PabStick", TypeElement.Air, 2);
            Player2.ValeurExp   = 3000;
            Player2.Armure      = new ObjArmure("Pab String", TypeElement.Air, 2);
            Player2.LootTable   = Table;
            Player2.LootChances = 90;
            Console.WriteLine("Nom " + Player.Nom);
            Console.WriteLine(Player.Classe);
            Console.WriteLine(Player.Race);
            Console.WriteLine(Player.Arme.NomObjet);
            Console.WriteLine(Player.Armure.NomObjet);
            Console.WriteLine("Niv " + Player.Niveau);
            Console.WriteLine("MP " + Player.MpActuel);
            Console.WriteLine("MPMax " + Player.MpMax);
            Console.WriteLine("Att " + Player.Puissance);
            Console.WriteLine("Def " + Player.Defense);
            Console.WriteLine("EXP " + Player.Experience);
            Console.WriteLine("HP " + Player.PvActuels);
            Console.WriteLine("Vit " + Player.Vitesse);
            Console.WriteLine("PM " + Player.PuissanceMagique);
            Console.WriteLine(Player.SeuilExperience);
            Console.WriteLine(Player.ValeurExp);
            Console.ReadLine();
            Console.Clear();


            Player.MenuInventaire();


            MethodeCombat.CombatPersonnage(ref Player, ref Player2);
            Console.ReadLine();
            MethodeCombat.AttaqueEnnemi(ref Player, ref suif);



            Onrouledesnoeuds("Taxi");

            Affichage.Abort();
            //Histoire modules
            //SWITCH Decision /Hotel/Arena/Rencontre/Aventure#Quetes
            // |
            // V
            //Combat module


            //loop
        }