//Constructeur public Combat(int idPlayer, Cell cell) { PlayerM = new PlayerManager(idPlayer); MonsterM = new MonsterManager(PlayerM.Player, cell); MonsterAttackRate = MonsterM.Monster.AttackRate; PlayerAttackRate = 0; PlayerBonusAttaque = 0; PlayerBonusDefense = 0; MonsterBonusAttaque = 0; MonsterBonusDefense = 0; }
//Générateur d'item, crée l'itemType si besoin, sinon il le charge, puis redirige vers les autres méthodes /* Types d'items : * 0 - Health Potion * 1 - Attack Potion * 2 - Defense Potion */ public ItemManager(int level, PlayerManager playerM, int type =-1) { var rand = Program.Random; PlayerM = playerM; Level = level; if (type == -1) { type = rand.Next(3); } switch (type) { case 0: GenerateHealthPotion(level); break; case 1: GenerateAttackPotion(level); break; case 2: GenerateDefensePotion(level); break; } }
//Procédure de chargement d'un player public PlayerManager LoadGame() { using (var db = new Project2NetContext()) { var players = from player in db.Players select player; PlayerManager selected; do { int gameId; do { Console.Clear(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Selectionnez l'ID de la partie que vous voulez jouer :"); foreach (var player in players) { Console.WriteLine("ID {0} - Nom : {1} - HP : {2} - Level : {3}", player.Id, player.Name, player.Hp, (int)Math.Floor((double) player.Xp/100)); } Console.ResetColor(); } while (!int.TryParse(Console.ReadLine(), out gameId)); selected = new PlayerManager(gameId); } while (selected.Player == null); Console.Clear(); selected.ShowPlayerInfos(); return selected; } }
//Procédure de nouveau player public PlayerManager NewGame() { using (var db = new Project2NetContext()) { //Création du joueur PlayerManager selected; do { String name = ""; do { Console.Clear(); Console.WriteLine("Choisissez un nom pour votre personnage (1-15 caractéres)"); name = Console.ReadLine(); } while (name.Length >= 15 || name.Length < 1); selected = new PlayerManager(name); } while (selected.Player == null); ShowPlot(); Console.Clear(); selected.ShowPlayerInfos(); Console.WriteLine("Aprés avoir marché pendant quelques heures,"); Console.WriteLine(); return selected; } }
//Interpreteur de commandes //Permet d'effectuer les actions en fonction de la commande utilisée public bool CheckCommand(string command, PlayerManager activePlayerM) { Console.Clear(); activePlayerM.ShowPlayerInfos(); command = command.ToLower(); var returnVal = true; switch (command) { //Inventaire case "afficher l'inventaire": activePlayerM.ShowInventory(); break; case "jeter un objet": activePlayerM.DropItem(); break; case "utiliser un objet": activePlayerM.UseItem(); break; case "afficher les armes": activePlayerM.ShowWeapons(); break; case "jeter une arme": activePlayerM.DropWeapon(); break; case "fouiller la zone": activePlayerM.SearchCellForItems(); break; //Déplacements case "aller au nord": Console.WriteLine("Vous vous déplacez vers le nord"); Console.WriteLine(); activePlayerM.Move("nord"); break; case "aller au sud": Console.WriteLine("Vous vous déplacez vers le sud"); Console.WriteLine(); activePlayerM.Move("sud"); break; case "aller a l'ouest": Console.WriteLine("Vous vous déplacez vers l'ouest"); Console.WriteLine(); activePlayerM.Move("ouest"); break; case "aller a l'est": Console.WriteLine("Vous vous déplacez vers l'est"); Console.WriteLine(); activePlayerM.Move("nord"); break; case "ou suis-je": Console.WriteLine(activePlayerM.GetCellManager().Cell.Description); break; //Options systéme case "quitter": returnVal = false; Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Arrêt du programme !"); break; case "aide": GetAvailableCommands(); break; /* * Les easter eggs sont cachés un peu de partout, ainsi que les fonctionnalités ajoutées, ici se trouvent * deux petits cheats amusants */ //CHEATS case "all your base are belong to us": using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == activePlayerM.Player.Id select p).FirstOrDefault(); if (player != null) { player.MaxHp = 150 + 150*1000000; player.Hp = player.MaxHp; player.Xp = 100000000; var weaponM = new WeaponManager("2"); player.WeaponInventory.Add(weaponM.Weapon); } activePlayerM.Player = player; db.SaveChanges(); Console.WriteLine("Tel l'alpha et l'omega, vous devenez grand et puissant."); } break; case "mac rules the world": using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == activePlayerM.Player.Id select p).FirstOrDefault(); if (player != null) { var weaponM = new WeaponManager("1"); player.WeaponInventory.Add(weaponM.Weapon); } activePlayerM.Player = player; db.SaveChanges(); Console.WriteLine("Mais, qu'est ce que c'est que cette grosse chose dans votre fourreau ?"); } break; default: Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Vous ne pouvez pas faire ceci !"); break; } Console.ResetColor(); return returnVal; }