Пример #1
0
        //Choix de la commande d'action par le joueur
        public static void queFaire(Perso_principal perso)
        {
            string action = Console.ReadLine();

            do
            {
                if (action == "aide")
                {
                    Console.WriteLine("Pour réaliser les actions ci-dessous, taper la lettre associée");
                    Console.WriteLine("e : explorer - permet d’obtenir une description de votre environnement");
                    Console.WriteLine("i : inventaire - permet d’accéder à votre inventaire à tout moment");
                    Console.WriteLine("f : faire - permet d’interagir avec une personne ou un objet");
                    Console.WriteLine("o : objectifs - permet de connaître les objectifs de la quête principale et des quêtes secondaires en cours");
                    Console.WriteLine("d : déplacer - permet de vous déplacer dans une autre salle ou aile");
                    Console.WriteLine("q : QUITTER LE JEU\n");
                    action = Console.ReadLine();
                }
                if (action != "aide" && action != "e" && action != "i" && action != "f" && action != "o" && action != "d" && action != "q")
                {
                    Console.WriteLine("Commande non valide. Taper \"aide\" pour accéder aux commandes disponibles");
                    action = Console.ReadLine();
                }
            } while (action != "e" && action != "i" && action != "f" && action != "o" && action != "d" && action != "q");
            if (action == "e")
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine(" # Explorer");
                Console.ForegroundColor = ConsoleColor.White;
                decrireEnvironnement(perso.Position);
                queFaire(perso);
            }
            if (action == "i")
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine(" # Inventaire");
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine(perso.monStuff);
                if (perso.monStuff.voirInventaire().Count == 0)
                {
                    Console.WriteLine("L'inventaire est vide.\n");
                }
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Santé : {0}", perso.Sante);
                Console.WriteLine("Force : {0}", perso.Force);
                Console.WriteLine("Persuasion : {0}", perso.Persuasion);
                Console.WriteLine("Sex-appeal : {0}\n", perso.Sex_appeal);
                Console.ForegroundColor = ConsoleColor.White;
                queFaire(perso);
            }
            if (action == "f")
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("# Avec quel objet ou quelle personne interagir ?\n");
                Console.ForegroundColor = ConsoleColor.White;
                int numObj = 1;
                foreach (Objet objet in perso.Position.GetListeObjets())
                {
                    Console.WriteLine("{0} : {1}", numObj, objet);
                    numObj++;
                }

                /*
                 * int numPNJ = 1;
                 * foreach (PNJ pnj in perso.Position.GetListePNJ())
                 * {
                 *  Console.WriteLine("{0} : {1}", numObj + numPNJ, pnj);
                 *  numPNJ++;
                 * }*/
                Console.WriteLine("0 : annuler");
                int reponse = int.Parse(Console.ReadLine());
                if (reponse == 0)
                {
                    Console.WriteLine("Que faire ?");
                    queFaire(perso);
                }
                if (reponse < 0 || reponse > (perso.Position.GetListeObjets().Count)) //+ perso.Position.GetListePNJ().Count)
                {
                    Console.WriteLine("Commande non valide. Choisir le numéro d'un objet ou personnage proposé.");
                }
                else
                {
                    if (reponse <= perso.Position.GetListeObjets().Count)
                    {
                        Objet_Environnement obj = perso.Position.GetListeObjets()[reponse - 1] as Objet_Environnement;
                        if (obj != null)
                        {
                            obj.interagir(perso, perso.GetStuff());
                        }
                        else
                        {
                            Objet_Inventaire objInv = perso.Position.GetListeObjets()[reponse - 1] as Objet_Inventaire;
                            objInv.prendre(perso.GetStuff());
                        }
                    }

                    /*else
                     * {
                     *  PNJ personnage = perso.Position.GetListePNJ()[reponse - numObj - 1]
                     *  personnage.interagir();
                     * }*/
                }
                queFaire(perso);
            }
            if (action == "o")
            {
            }
            if (action == "d")
            {
                seDeplacer(perso);
            }
            if (action == "q")
            {
                Console.Clear();
                Console.WriteLine("Etes-vous sûr de vouloir quitter le jeu ? (o/n)");
                string reponse = Console.ReadLine();
                while (reponse != "o" && reponse != "n")
                {
                    Console.WriteLine("Commande non valide. Taper \'o\' pour quitter, ou \'n\' pour annuler");
                    reponse = Console.ReadLine();
                }
                if (reponse == "o")
                {
                    Environment.Exit(0);
                }
                if (reponse == "n")
                {
                    Console.Clear();
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("# Reprise de la partie\n");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine(" --- " + perso.Position.GetAile() + ", " + perso.Position);
                    Console.WriteLine("Que faire ?");
                    queFaire(perso);
                }
            }
        }
Пример #2
0
 public void ouvrirSalle(Perso_principal perso)
 {
     if (ouverte == false)
     {
         Stuff inventaire        = perso.GetStuff();
         int   numObj            = 0;
         bool  ouverturePossible = false;
         while ((numObj < inventaire.voirInventaire().Count) && (ouverturePossible == false))
         {
             if ((inventaire.voirInventaire()[numObj] as Clef) != null)
             {
                 ouverturePossible = true;
             }
             if ((inventaire.voirInventaire()[numObj] as Cintre) != null)
             {
                 ouverturePossible = true;
             }
             numObj++;
         }
         if (ouverturePossible == true)
         {
             Console.ForegroundColor = ConsoleColor.Cyan;
             Console.WriteLine("J'ai un objet qui me permet d'ouvrir la porte de cette salle.");
             Console.ForegroundColor = ConsoleColor.White;
             Console.WriteLine("L'utiliser ? (o/n)");
             string reponse = Console.ReadLine();
             while (reponse != "o" && reponse != "n")
             {
                 Console.WriteLine("Commande invalide. Saisir 'o' pour valider l'action, ou 'n' pour refuser.");
                 reponse = Console.ReadLine();
             }
             Console.WriteLine("Quel objet prendre ?");
             Console.WriteLine(perso.monStuff);
             int objet_choisi = int.Parse(Console.ReadLine());
             if ((inventaire.voirInventaire()[objet_choisi] as Clef != null) || (inventaire.voirInventaire()[objet_choisi] as Cintre != null))
             {
                 perso.monStuff.supprimerItem(objet_choisi);
                 ouverte = true;
                 Console.ForegroundColor = ConsoleColor.Yellow;
                 Console.WriteLine("Porte déverouillée.");
                 Console.ForegroundColor = ConsoleColor.Cyan;
                 Console.WriteLine("\nVoyons voir ce qui se cache derrière cette porte.\n");
                 Console.ForegroundColor = ConsoleColor.White;
             }
             else
             {
                 ouvrirSalle(perso);
             }
         }
         else
         {
             Console.ForegroundColor = ConsoleColor.Cyan;
             Console.WriteLine("Oh non, cette porte est fermée ! Je n'ai aucun objet me permettant d'ouvrir cette porte.\n");
             Console.ForegroundColor = ConsoleColor.White;
         }
     }
     else
     {
         Console.ForegroundColor = ConsoleColor.Cyan;
         Console.WriteLine("Voyons voir ce qui se cache derrière cette porte.");
         Console.ForegroundColor = ConsoleColor.White;
     }
 }