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