예제 #1
0
 private static Heros FaireCombat(Heros heros, Monstre monstre)
 {
     return(heros);
 }
예제 #2
0
        private static void FaireUnePartie()
        {
            Jeu        jeu        = new Jeu();
            Equipement equipement = new Equipement();
            Monstre    monstre    = new Monstre();

            int error;

            string[]      personnage = new string[2];
            string[]      salle      = new string[2];
            string        nomHeros   = "";
            int           ptsVieHeros;
            int           ptsAttaqueHeros;
            int           ptsDefenseHeros;
            string        classeHeros = "";
            int           nbrPotionHeros;
            int           ptsManaHeros;
            int           lanceDe;
            int           evenement;
            carte         carteActuelle;
            List <string> equipementTrouve = new List <string>();

            if (!jeu.ChargerFichier(FICHIER_CARTES))
            {
                Console.WriteLine("Le fichier carte est manquant");
                Console.Write("Appuyez une touche pour continuer...");
                Console.ReadKey();
            }
            if (!monstre.ChargerFichier(FICHIER_MONSTRES))
            {
                Console.WriteLine("Le fichier monstre est manquant");
                Console.Write("Appuyez une touche pour continuer...");
                Console.ReadKey();
            }

            if (!equipement.ChargerFichier(FICHIER_EQUIPEMENTS))
            {
                Console.WriteLine("Le fichier equipement est manquant");
                Console.Write("Appuyez une touche pour continuer...");
                Console.ReadKey();
            }

            personnage     = jeu.CreerPersonnage();
            classeHeros    = personnage[0];
            nomHeros       = personnage[1];
            nbrPotionHeros = 2;

            if (classeHeros == "Guerrier")
            {
                ptsVieHeros     = 200;
                ptsManaHeros    = 100;
                ptsAttaqueHeros = 5;
                ptsDefenseHeros = 4;
            }
            else if (classeHeros == "Magicien")
            {
                ptsVieHeros     = 100;
                ptsManaHeros    = 200;
                ptsAttaqueHeros = 3;
                ptsDefenseHeros = 6;
            }
            else
            {
                Console.WriteLine("Erreure lors de la création du personnage.");
                Console.Write("Appuyez une touche pour continuer...");
                Console.ReadKey();
                return;
            }

            Heros heros = new Heros(nomHeros, ptsVieHeros, ptsAttaqueHeros, ptsDefenseHeros, classeHeros, ptsManaHeros, nbrPotionHeros);

            while (!jeu.gameOver)
            {
                Console.Clear();
                heros.AfficherInfo();

                jeu.AfficherMenuJeu(); // TODO: Fonction vide pour l'instant
                lanceDe = jeu.LancerDes(NBR_DE_FACES_SUR_DE, true);
                salle   = jeu.Avancer(lanceDe);
                carteActuelle.typeCase = salle[0];
                carteActuelle.id       = int.Parse(salle[1]);
                Console.WriteLine("*****************************************************");
                Console.WriteLine($"\nVous vous aventurez dans la salle #{jeu.caseActuelle}");
                Console.WriteLine("Découvrons ce qu'elle contient...");
                Console.ReadKey();
                switch (carteActuelle.typeCase)
                {
                case "vide":
                    Console.WriteLine("*****************************************************");
                    Console.Write("Soulagement, la pièce vide...");
                    Console.ReadKey();
                    break;

                case "coffre":
                    Console.WriteLine("*****************************************************");
                    Console.Write("Que de chance! Un coffre... Ouvrez le...");
                    Console.ReadKey();
                    equipementTrouve = equipement.OuvrirCoffre(carteActuelle.id);
                    heros.Equiper(equipementTrouve);
                    Console.ReadKey();
                    break;

                case "monstre":
                    Console.WriteLine("*****************************************************");
                    Console.WriteLine("Oh non! Un monstre!");     // TODO: Améliorer texte
                    Console.Write("Préparez-vous au combat...");
                    Console.ReadKey();
                    monstre.CreerMonstre(carteActuelle.id);
                    heros = jeu.Combat(heros, monstre);
                    if (heros.PtsVie <= 0)
                    {
                        Console.WriteLine("Vous etes mort!");     // TODO: Améliorer texte
                        Console.ReadKey();
                        jeu.gameOver = true;
                    }
                    Console.ReadKey();
                    break;

                case "sortie":
                    Console.Write("Sortie!");
                    Console.ReadKey();
                    jeu.gameOver = true;
                    break;

                default:
                    break;
                }
            }
        }
예제 #3
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);
        }