示例#1
0
 /// <summary>
 /// Permet d'ajouter un aventurier au groupe
 /// </summary>
 /// <param name="Hero">Le héro à ajouter</param>
 /// <returns>L'état du succès de l'ajout</returns>
 public bool AjouterAventurier(Hero Hero)
 {
     if (_aventuriers.Count < 3)
     {
         _aventuriers.Add(Hero);
         return true;
     }
     else
     {
         return false;
     }
 }
示例#2
0
 /// <summary>
 /// Utilise l'objet sur un héro
 /// </summary>
 /// <param name="Hero">Le héro qui reçoit l'effet de l'objet</param>
 public void Utiliser(Hero Hero)
 {
     Program.Histoire(Nom + " est utilisé(e) sur " + Hero.Nom + "!", false);
     OnUtiliser(Hero);
 }
示例#3
0
        private void AfficherTourAventurier(Hero hero)
        {
            #region Patois des classes

            if (hero.Classe is Guerrier)
            { Program.Dialogue(hero.Nom, "Par la force de Magni et la rage de Týr, préparez-vous à périr!", false, false); }
            else if (hero.Classe is Archer)
            { Program.Dialogue(hero.Nom, "Celui-là vient de pousser son dernier souffle!", false, false); }
            else if (hero.Classe is Mage)
            { Program.Dialogue(hero.Nom, "Les éléments n'auront aucune pitié pour ces êtres immondes!", false, false); }
            else if (hero.Classe is Voleur)
            { Program.Dialogue(hero.Nom, "Shhht... Le silence par ma dague sera ta sentence.", false, false); }

            #endregion

            int choix = Program.Choix("Tour de " + hero.Nom + " | " + hero.Classe.Nom + " | " + hero.PointsDeVie + "/" + hero.PointsDeVieDeBase + " PV",
                          new string[] { "Attaquer", "Utiliser un objet" });
            switch (choix)
            {
                case 1:
                    #region Attaquer

                    if (Ennemis.Count(e => e.Etat != Etat.Mort) > 1)
                    {
                        //Choisir un ennemi
                        List<string> choix_ennemis = new List<string>();
                        foreach (Ennemi e in Ennemis.Where(e => e.Etat != Etat.Mort)) { choix_ennemis.Add(e.Nom + " (" + e.PointsDeVie + "/" + e.Attributs.PointsDeVieBase + " PV)"); }
                        choix_ennemis.Add("Annuler");
                        int choix_e = Program.Choix("Ennemis", choix_ennemis.ToArray());
                        if (choix_e == choix_ennemis.Count)
                            AfficherTourAventurier(hero);
                        else
                            Attaquer(hero, Ennemis.Where(e => e.Etat != Etat.Mort).ToArray()[choix_e - 1]);
                    }
                    else
                    {
                        Ennemi ennemi = Ennemis.Find(e => e.Etat != Etat.Mort);
                        Attaquer(hero, ennemi);
                    }

                    #endregion
                    break;
                case 2:
                    #region Utiliser un objet

                    Consommable AUtiliser = Program.Groupe.ChoisirConsommable();

                    if (AUtiliser == null)
                        AfficherTourAventurier(hero);
                    else
                    {
                        Hero heroSelectionne = Program.Groupe.ChoisirHero();
                        if (heroSelectionne == null)
                            AfficherTourAventurier(hero);
                        else
                        {
                            AUtiliser.Utiliser(heroSelectionne);
                            Program.Groupe.Inventaire.Remove(AUtiliser);
                        }

                    }

                    #endregion
                    break;
            }
        }
示例#4
0
 /// <summary>
 /// Permet de retirer un aventurier du groupe
 /// </summary>
 /// <param name="Hero">Le héro à retirer</param>
 /// <returns>L'état du succès du retrait</returns>
 public bool RetirerAventurier(Hero Hero)
 {
     if (_aventuriers.Count <= 3)
     {
         return _aventuriers.Remove(Hero);
     }
     else
     {
         return false;
     }
 }
示例#5
0
        /// <summary>
        /// Création des joueurs et mise en place du jeu
        /// </summary>
        public static void DebuterJeu(bool SauterIntro = false)
        {
            if (!SauterIntro)
            {
                Introduction();
            }
            else
            {
                // Associer le premier aventurier au héro du joueur
                Self = Groupe.Aventuriers.ElementAt(0);
            }

            // Affichage du village
            do
            {
                Console.Clear();
                Thread.Sleep(500);
                Histoire("Vous vous situez présentement au coeur du village.", false);
                int endroit = Choix("Village", new string[] { NomAuberge, NomMarche, NomTaverne, "Partir à l'aventure", "Retour au menu principal" },
                    new string[] { "Sauvegarde, Chargement et gestion du groupe", "Achat d'objets vendus par les marchands des alentours", "Libération et recrutement de nouveaux aventuriers", "Sélection d'aventures qui permettent à votre groupe de progresser", "Quitter la partie sans sauvegarder" });

                switch (endroit)
                {
                    case 1: // L'Auberge de l'Ours Ronfleur
                        AfficherAuberge();
                        break;
                    case 2: // Le Marché du Mithril de Fou
                        AfficherMarche();
                        break;
                    case 3: // La Taverne du Pied Dansant
                        AfficherTaverne();
                        break;
                    case 4: // Partir à l'aventure
                        Aventure AventureADemarrer = ChoisirAventures();
                        if (AventureADemarrer == null)
                            break;
                        else
                            AventureADemarrer.Demarrer();
                        break;
                    case 5:
                        Console.Clear();
                        Thread.Sleep(500);
                        MenuPrincipal();
                        break;
                    default:
                        break;
                }
            } while (true);
        }
示例#6
0
        /// <summary>
        /// Affichage de l'introduction du jeu
        /// </summary>
        public static void Introduction()
        {
            Histoire("Vous entrez dans la taverne et vous dirigez vers le propriétaire");
            interlocuteur = "Propriétaire de la taverne";
            Dialogue(interlocuteur, "Bonjour et bienvenue, cher aventurier, à " + NomTaverne + "! Seriez-vous le dénommé ", false, false, false);
            NomDuHero = Read(3, 16, "Votre nom...", Couleurs.Action);
            Dialogue(interlocuteur, "? Formidable! Vous êtes attendu à cette table, là-bas!", true);
            Histoire(NomDuHero + " se dirige alors vers la table en question.");
            Histoire("Vous êtes à mi-chemin quand soudain, un inconnu assis à la table vous fait signe de la main");
            interlocuteur = "Un inconnu";
            Dialogue(interlocuteur, "Voilà enfin ", false, false, false);
            Write(NomDuHero, Couleurs.NomDeHéro);
            Dialogue(interlocuteur, "! Allez, viens! Je vais te présenter! ", true);
            Dialogue(interlocuteur, "Alors, voiçi ", true, false, false);
            Write(NomDuHero, Couleurs.NomDeHéro);
            Dialogue(interlocuteur, "! Il sera notre nouveau...", true, false);

            int noclasse = Choix("Choisissez votre classe", new string[] { "Guerrier", "Archer", "Mage", "Voleur" });
            Classe Classe;

            switch (noclasse)
            {
                case 1:
                    Classe = new Guerrier();
                    break;
                case 2:
                    Classe = new Archer();
                    break;
                case 3:
                    Classe = new Mage();
                    break;
                case 4:
                    Classe = new Voleur();
                    break;
                default:
                    Classe = new Guerrier();
                    break;
            }
            Self = new Hero(NomDuHero, Classe);
            Groupe.AjouterAventurier(Self);
            Histoire("Une femme inconnue vous accueille chaleureusement");
            Dialogue(interlocuteur, "Je te présente tout d'abord la plus habile de toutes les archères, ", false, false, false);
            NomDuHero = Read(3, 16, "Nom de l'archer...", Couleurs.Action);
            Dialogue(interlocuteur, "!", true, false);
            Hero Archer = new Hero(NomDuHero, new Archer());
            Groupe.AjouterAventurier(Archer);
            Dialogue(Archer.Nom, "Ha! mais cesse de me vanter comme ça!");
            Histoire("L'inconnu se met à rire de bon coeur");
            Dialogue(interlocuteur, "Et je suis d'ailleurs moi-même le plus grand des mages, ", false, false, false);
            NomDuHero = Read(3, 16, "Nom du mage...", Couleurs.Action);
            Dialogue(interlocuteur, ". Ravis de te rencontrer!", true);
            Hero Mage = new Hero(NomDuHero, new Mage());
            Groupe.AjouterAventurier(Mage);
            Dialogue(Mage.Nom, "Alors, vous êtes tous prêt pour l'aventure?");
            Dialogue(Archer.Nom, "Certainement, sortons d'ici. De toute façon, un groupe de trois aventuriers sera largement suffisant!");
            Histoire("Votre groupe se dirige alors vers la sortie de la taverne");
            Histoire("Si jamais vous avez besoin d'un nouvel aventurier, " + NomTaverne + " regorge d'aventuriers; N'hésitez pas à y revenir.");

        }
示例#7
0
 /// <summary>
 /// Permet au Hero d'augmenter ses attributs en fonction de sa classe de personnage
 /// </summary>
 /// <param name="Hero">Le héro qui monte de niveau</param>
 public static void AugmenterStats(Hero Hero)
 {
     Attributs attr = Hero.Classe.AttributsDeBase;
     Hero.Attributs.PointsDeVieBase += attr.PointsDeVieBase / 2;
     Hero.Attributs.Force += attr.Force / 2;
     Hero.Attributs.Defense += attr.Defense / 2;
     Hero.Attributs.Esquive += attr.Esquive / 2;
     Hero.Attributs.Precision += attr.Precision / 2;
     Hero.Attributs.Courage += attr.Courage / 2;
 }