Example #1
0
        private static void Inventory()
        {
            Console.Clear();
            Console.WriteLine("Objets : ");
            if (Globals.Player.Items != null && Globals.Player.Items.Any())
            {
                foreach (var item in Globals.Player.Items)
                {
                    Console.WriteLine(item.Name);
                }
            }
            Console.WriteLine();
            Console.WriteLine("Armes : ");
            if (Globals.Player.Weapons != null && Globals.Player.Weapons.Any())
            {
                foreach (var weapon in Globals.Player.Weapons)
                {
                    Console.WriteLine(weapon.Name);
                }
            }
            Console.WriteLine();
            Console.WriteLine("Ranger son sac ? (Tape \"Ranger\")");

            string line = string.Empty;

            while (line.ToLowerInvariant() != "ranger")
            {
                line = ZorkRead.ReadLine();
            }
        }
Example #2
0
        public void TurnActionChoice()
        {
            Console.WriteLine("Que veux-tu faire ?");
            Console.WriteLine("1 : Afficher l'inventaire");
            Console.WriteLine("2 : Afficher les caractéristiques");
            Console.WriteLine("3 : Se déplacer");
            var res = ZorkRead.ReadLine();

            switch (res)
            {
            case "1":
                Inventory();
                Console.Clear();
                break;

            case "2":
                Stats();
                Console.Clear();
                break;

            case "3":
                Move();
                Console.Clear();
                break;

            default:
                break;
            }

            TurnActionChoice();
        }
Example #3
0
        private void PlayerTurn()
        {
            bool actionDone = false;

            while (!actionDone)
            {
                Console.WriteLine("Que veux tu faire ?");

                int actionNumber = 0;
                var listArme     = new Dictionary <int, WeaponDto>();
                foreach (var weapon in Globals.Player.Weapons)
                {
                    actionNumber++;
                    listArme.Add(actionNumber, weapon);
                    Console.WriteLine($"{actionNumber}- Attaquer avec {weapon.Name}");
                }

                Console.WriteLine($"{actionNumber += 1}- Utiliser un object de l'inventaire");
                Console.WriteLine($"{actionNumber += 1}- Run");
                var res = ZorkRead.ReadLine();

                int.TryParse(res, out int valueSelected);

                while (valueSelected == 0)
                {
                    Console.WriteLine("Soit plus clair dans ta décision !");
                    res = ZorkRead.ReadLine();
                    int.TryParse(res, out valueSelected);
                }
                if (valueSelected == actionNumber)
                {
                    Run();
                    actionDone = true;
                }
                else if (valueSelected == actionNumber - 1)
                {
                    if (InventoryItem())
                    {
                        actionDone = true;
                    }
                }
                else
                {
                    var weapon = listArme.GetValueOrDefault(valueSelected);
                    if (Attack(weapon ?? listArme.FirstOrDefault().Value, Monster))
                    {
                        Victory();
                    }

                    actionDone = true;
                }
            }
        }
Example #4
0
        private void Move()
        {
            Console.Clear();
            Console.WriteLine("Vers où souhaites-tu t'aventurer ? (Tape Est,Nord,Ouest,Sud)");
            string line = ZorkRead.ReadLine().ToLowerInvariant();

            while (line != "est" && line != "nord" && line != "sud" && line != "ouest")
            {
                Console.WriteLine("Exprime toi plus clairement ! (Tape Est,Nord,Ouest,Sud)");
                line = ZorkRead.ReadLine();
            }

            var     cell     = Globals.Player.Cell;
            CellDto nextCell = null;
            bool    move     = false;

            while (!move)
            {
                switch (line)
                {
                case "est":
                    nextCell = Globals.Player.Map.Cells.FirstOrDefault(c => c.PosX == cell.PosX + 1 && c.PosY == cell.PosY);
                    break;

                case "nord":
                    nextCell = Globals.Player.Map.Cells.FirstOrDefault(c => c.PosX == cell.PosX && c.PosY == cell.PosY + 1);
                    break;

                case "sud":
                    nextCell = Globals.Player.Map.Cells.FirstOrDefault(c => c.PosX == cell.PosX - 1 && c.PosY == cell.PosY);
                    break;

                case "ouest":
                    nextCell = Globals.Player.Map.Cells.FirstOrDefault(c => c.PosX == cell.PosX && c.PosY == cell.PosY - 1);
                    break;
                }

                if (nextCell == null)
                {
                    Console.WriteLine("Les montagnes géantes bloque ton avancée. Tu dois choisir une autre direction !");
                    line = ZorkRead.ReadLine();
                }
                else
                {
                    move = true;
                }
            }

            Globals.Player.Cell = nextCell;
            //PlayerService.Save(Globals.Player);

            MovementRandomMeeting();
        }
Example #5
0
        private void Run()
        {
            var res = new Random().Next(5);

            if (res == 3)
            {
                Console.WriteLine("Vous avez réussi à vous échapper ! (Appuye sur Entrer pour continuer)");
                ZorkRead.ReadLine();
                EndFight = true;
            }
            else
            {
                Console.WriteLine("L'évasion a échouée");
            }
        }
Example #6
0
        public void CreateGame()
        {
            Console.Clear();
            Console.WriteLine("Quel est ton nom jeune aventurier ?");
            var name = ZorkRead.ReadLine();

            while (string.IsNullOrWhiteSpace(name))
            {
                Console.WriteLine("Tu dois me donner ton nom !");
                name = ZorkRead.ReadLine();
            }

            Globals.Player = PlayerService.CreatePlayer(name);
            TurnActionView = Globals.Services.GetService <TurnAction>();
            Console.Clear();
            TurnActionView.TurnActionChoice();
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        /// <returns>False si exit choose </returns>
        private bool InventoryItem()
        {
            Console.WriteLine("Quel objet veux-tu utiliser ?");
            int actionNumber = 0;
            var listItem     = new Dictionary <int, ItemDto>();

            foreach (var item in Globals.Player.Items)
            {
                actionNumber++;
                listItem.Add(actionNumber, item);
                Console.WriteLine($"{actionNumber}- Utiliser {item.Name}");
            }
            Console.WriteLine($"{actionNumber += 1}- Annuler");
            var res = ZorkRead.ReadLine();

            int.TryParse(res, out int valueSelected);

            while (valueSelected == 0)
            {
                Console.WriteLine("Soit plus clair dans ta décision !");
                res = ZorkRead.ReadLine();
                int.TryParse(res, out valueSelected);
            }

            //exit
            if (valueSelected == actionNumber)
            {
                return(false);
            }

            var itemUse = listItem.GetValueOrDefault(valueSelected);


            Globals.Player.Defense += itemUse.DefenseBoost ?? 0;
            Globals.Player.Power   += itemUse.AttackBoost ?? 0;
            Globals.Player.HP      += itemUse.HpRestoreValue ?? 0;
            if (Globals.Player.MaxHP < Globals.Player.HP)
            {
                Globals.Player.HP = Globals.Player.MaxHP;
            }
            Globals.Player.Items.Remove(itemUse);

            Console.WriteLine($"Vous avez utilisé {itemUse.Name} et regagnez {itemUse.HpRestoreValue ?? 0} ainsi que  {itemUse.AttackBoost ?? 0} d'attaque et {itemUse.DefenseBoost ?? 0} de défense définitivement !");
            return(true);
        }
Example #8
0
        public static void AboutView()
        {
            Console.Clear();
            Console.WriteLine("Edité par LEBLANC Antoine");
            Console.WriteLine();
            Console.WriteLine("1 : Retourner au menu principal");

            var res = ZorkRead.ReadLine();

            switch (res)
            {
            case "1":
                BackToMenu.Invoke(null, null);
                break;

            default:
                AboutView();
                break;
            }
        }
Example #9
0
        private static void Stats()
        {
            Console.Clear();
            Console.WriteLine("Caractéristiques : ");
            Console.WriteLine($"Vie actuelle : {Globals.Player.HP} PV");
            Console.WriteLine($"Vie maximum : {Globals.Player.MaxHP} PV");
            Console.WriteLine($"Niveau : {Globals.Player.Level}");
            Console.WriteLine($"Expérience : {Globals.Player.XP} XP");
            Console.WriteLine($"Expérience requise pour le niveau suivant : {Globals.Player.NextLevelXpRequired} XP");
            Console.WriteLine($"Puissance : {Globals.Player.Power}");
            Console.WriteLine($"Défense: {Globals.Player.Defense}");
            Console.WriteLine();

            Console.WriteLine("Reprendre ses esprits ? (Tape \"Reveil\")");

            string line = string.Empty;

            while (line.ToLowerInvariant() != "reveil")
            {
                line = ZorkRead.ReadLine();
            }
        }
Example #10
0
        private void RandomLoot()
        {
            var items  = ItemService.GetAll();
            var random = new Random().Next(items.Count);

            var item = items[random];

            Console.WriteLine($"Woaw ! Tu as découvre cette {item.Name}. Souhaites tu l'ajouter à ton inventaire ? (Y/N)");

            var res = ZorkRead.ReadLine().ToLowerInvariant();

            while (!(res == "y" || res == "n"))
            {
                Console.WriteLine("Soit plus clair dans ta réponse ! (Y/N)");
                res = ZorkRead.ReadLine().ToLowerInvariant();
            }

            if (res == "y")
            {
                Globals.Player.Items.Add(item);
            }
        }
Example #11
0
        public void Start()
        {
            Console.Clear();
            Console.WriteLine("################################");
            Console.WriteLine("##      VALHALLA'S QUEST      ##");
            Console.WriteLine("################################");
            Console.WriteLine("MAIN MENU :");
            Console.WriteLine("1 : Create New Game");
            Console.WriteLine("2 : Load Saved Game");
            Console.WriteLine("3 : About Game");
            Console.WriteLine("4 : Exit");
            var res = ZorkRead.ReadLine();


            switch (res)
            {
                case "1":
                    NewGameView = Globals.Services.GetService<NewGame>();
                    NewGameView.CreateGame();
                    break;
                case "2":
                    //TODO: A changer une fois la BDD implémenté
                    NewGameView = Globals.Services.GetService<NewGame>();
                    NewGameView.CreateGame();
                    break;
                case "3":
                    About.BackToMenu += (o, e) => Start();
                    About.AboutView();
                    break;
                case "4":
                    Globals.Exit.Invoke(this, null);
                    break;
                default:
                    Start();
                    break;
            }
        }
Example #12
0
        private void Victory()
        {
            var xp = new Random().Next(100, 800);

            Globals.Player.XP += xp;
            Console.WriteLine($"Victoire tu as vaincu la créature et tu as gagné {xp} XP!");

            if (Globals.Player.XP > Globals.Player.NextLevelXpRequired)
            {
                Globals.Player.Level++;
                Globals.Player.XP -= Globals.Player.NextLevelXpRequired;

                Globals.Player.MaxHP += 10;
                Globals.Player.HP     = Globals.Player.MaxHP;
                Console.WriteLine($"Tu es passé niveau {Globals.Player.Level} ! Tu as gagné 10HP et es maintenant en pleine forme !");
            }

            if (new Random().Next(3) == 2)
            {
                var weapons = WeaponsService.GetRandom();
                Console.WriteLine($"Woaw ! Tu as découvre cette arme : {weapons.Name}. Souhaites tu l'ajouter à ton inventaire ? (Y/N)");

                var res = ZorkRead.ReadLine().ToLowerInvariant();
                while (!(res == "y" || res == "n"))
                {
                    Console.WriteLine("Soit plus clair dans ta réponse ! (Y/N)");
                    res = ZorkRead.ReadLine().ToLowerInvariant();
                }

                if (res == "y")
                {
                    Globals.Player.Weapons.Add(weapons);
                }
            }
            Console.WriteLine("Appuye sur Entrer pour continuer");
            ZorkRead.ReadLine();
        }