Esempio n. 1
0
        public Heros Combat(Heros heros, Monstre monstre)
        {
            string choix;

            /*            heros.PtsVie = 10; // TODO - Remove, for short combat
             *          heros.PtsMana = 10; // TODO - Remove, for short combat
             */
            while (monstre.PtsVie > 0 && heros.PtsVie > 0)
            {
                Console.Clear();
                Console.WriteLine("*****************************************************");
                Console.WriteLine("                       COMBAT");
                heros.AfficherInfo();
                monstre.AfficherInfo();
                int ptsDegats;

                AfficherMenuCombat();

                choix = Console.ReadLine();
                switch (choix)
                {
                case "1":
                    heros.ModeDefense = false;
                    Console.WriteLine("*****************************************************");
                    Console.WriteLine("             1) Attaquer standard");
                    Console.WriteLine($"             2) Attaque spéciale (Cout: {heros.CoutAttaqueMagique} points de mana)");
                    Console.Write("             Entrez-votre choix: ");
                    choix = Console.ReadLine();

                    switch (choix)
                    {
                    case "1":
                        if (monstre.ModeDefense)
                        {
                            ptsDegats = heros.PtsAttaque - monstre.PtsDefense;
                        }
                        else
                        {
                            ptsDegats = heros.PtsAttaque;
                        }

                        break;

                    case "2":
                        if (heros.PtsMana >= heros.CoutAttaqueMagique)
                        {
                            if (monstre.ModeDefense)
                            {
                                ptsDegats = heros.PtsAttaqueMagique - monstre.PtsDefense;
                            }
                            else
                            {
                                ptsDegats = heros.PtsAttaqueMagique;
                            }
                            heros.AttaqueSpeciale();
                        }
                        else
                        {
                            Console.WriteLine($"{heros.Nom} n'a pas assez de points de mana.");
                            ptsDegats = 0;
                        }
                        break;

                    default:
                        AfficherChoixInvalide();
                        ptsDegats = 0;
                        break;
                    }

                    if (ptsDegats < 0)
                    {
                        ptsDegats = 0;
                    }

                    monstre.SubirDegats(ptsDegats);
                    Console.WriteLine($"\n{heros.Nom} attaque et fait {ptsDegats} de dégats à {monstre.Nom}");
                    break;

                case "2":
                    heros.ModeDefense = true;
                    Console.WriteLine($"\n{heros.Nom} se prépare à se défendre.");
                    break;

                case "3":
                    if (heros.NbrPotion > 0)
                    {
                        Console.WriteLine("1) Regénéger points de vie");
                        Console.WriteLine("2) Regénéger points de mana");

                        Console.Write("\nEntrez-votre choix: ");
                        choix = Console.ReadLine();

                        switch (choix)
                        {
                        case "1":
                            heros.RegenererPtsVie(50);
                            break;

                        case "2":
                            heros.RegenererPtsMana(50);
                            break;

                        default:
                            AfficherChoixInvalide();
                            break;
                        }
                    }
                    else
                    {
                        Console.WriteLine("Vous n'avez plus de potion!");
                    }
                    break;

                default:
                    AfficherChoixInvalide();
                    break;
                }

                Console.ReadKey();
                Console.Clear();
                Console.WriteLine("*****************************************************");
                Console.WriteLine("                       COMBAT");
                heros.AfficherInfo();
                monstre.AfficherInfo();
                Console.WriteLine("Tour du monstre...");

                switch (LancerDes(2, false))
                {
                case 1:
                    monstre.ModeDefense = false;

                    if (heros.ModeDefense)
                    {
                        ptsDegats = monstre.PtsAttaque - heros.PtsDefense;
                    }
                    else
                    {
                        ptsDegats = monstre.PtsAttaque;
                    }

                    if (ptsDegats < 0)
                    {
                        ptsDegats = 0;
                    }

                    heros.SubirDegats(ptsDegats);
                    Console.WriteLine($"\n{monstre.Nom} attaque et fait {ptsDegats} de dégats à {heros.Nom}");

                    break;

                case 2:
                    Console.WriteLine($"\n{monstre.Nom} se prépare à se défendre.");
                    monstre.ModeDefense = true;
                    break;
                }

                Console.ReadKey();
            }

            return(heros);
        }