//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); } } }
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; } }