public CombatViewModel() { MainGameViewModel.SelectedWeapon = null; MainGameViewModel.SelectedItem = null; using (var db = new Project2NetContext()) { _activeMonsterManager = new MonsterManager(MainGameViewModel.ActivePlayerManager.Player, db.Cells.FirstOrDefault(c => c.Id == MainGameViewModel.ActivePlayerManager.Player.CurrentCellId)); } }
public PlayerSelectionViewModel() { Player = new Player(); Players = new ObservableCollection<Player>(); using (var db = new Project2NetContext()) { Players = (from player in db.Players select player).ToObservableCollection(); } }
//New Player public PlayerManager(string name) { if (name != "") { var db = new Project2NetContext(); var rand = MainWindow.Random; //Randomisation du point de départ var x = rand.Next(-500, 500); var y = rand.Next(-500, 500); var temp = db.Cells.FirstOrDefault(cell => cell.PosX == x && cell.PosY == y); if (temp != null) { Player = new Player { Name = name, MaxHp = 500, Hp = 500, Xp = 0, CurrentCellId = temp.Id }; } else { var cellM = new CellManager(x, y); Player = new Player { Name = name, MaxHp = 500, Hp = 500, Xp = 0, CurrentCellId = cellM.Cell.Id }; } var weaponM = new WeaponManager(0, true); Player.WeaponInventory = new Collection<Weapon> { weaponM.Weapon }; Player.ObjectInventory = new Collection<Item>(); db.Players.Add(Player); db.SaveChanges(); } else { Player = null; } }
private void Die_Click(object sender, RoutedEventArgs e) { using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == MainWindow.SelectedPlayerViewModel.ActivePlayerManager.Player.Id select p).FirstOrDefault(); if (player != null) { db.Players.Remove(player); db.SaveChanges(); } } MessageBox.Show("Vous sentez votre force vous abandonner..."); Environment.Exit(0); }
private void StayAlive_Click(object sender, RoutedEventArgs e) { var db = new Project2NetContext(); var playerM = MainWindow.SelectedPlayerViewModel.ActivePlayerManager; if (playerM.Player != null) { playerM.Player.Xp = playerM.Player.Xp - 300; if (playerM.Player.Xp <= 0) playerM.Player.Xp = 0; playerM.Player.MaxHp = 500 + ((int)Math.Floor((double)playerM.Player.Xp / 100)) * 150; playerM.Player.Hp = playerM.Player.MaxHp; var itemList = playerM.Player.ObjectInventory.ToList(); foreach (var item in itemList) { playerM.Player.ObjectInventory.Remove(item); var itemD = (from i in db.Items where i.Id == item.Id select i).FirstOrDefault(); db.Items.Remove(itemD); } var weaponList = playerM.Player.WeaponInventory.ToList(); foreach (var weapon in weaponList) { playerM.Player.WeaponInventory.Remove(weapon); var weaponD = (from i in db.Weapons where i.Id == weapon.Id select i).FirstOrDefault(); db.Weapons.Remove(weaponD); } db.SaveChanges(); var weaponM = new WeaponManager(playerM.Player.Xp, true); playerM.Player.WeaponInventory.Add(weaponM.Weapon); MainWindow.SelectedPlayerViewModel.ActivePlayerManager.Player = playerM.Player; MainWindow.SelectedPlayerViewModel.ActivePlayerManager.Save(); MainWindow.SelectedPlayerViewModel.Weapons.Clear(); MainWindow.SelectedPlayerViewModel.Items.Clear(); var weaponAdded = MainWindow.SelectedPlayerViewModel.ActivePlayerManager.AddWeapon(); MainWindow.SelectedPlayerViewModel.Weapons.Add(weaponAdded); MessageBox.Show("Vous vous sentez Renaitre !"); MainWindow.SelectedPlayerViewModel.RefreshMainUi(); SoundHelper.PlayFromCategory(SoundHelper.Categories.Normal); NavigationHelper.MoveToPage(MainWindow.SelectedPlayerView); } }
//Save player to db public void Save() { using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; } db.SaveChanges(); } }
//Génére potion d'attaque en fnct du lvl public void GenerateAttackPotion(int level) { ItemType type; using (var db = new Project2NetContext()) { if ((type = db.ItemsTypess.SingleOrDefault(t => t.Type == 1 && t.Level == level)) == null) { type = new ItemType { AttackStrenghtBonus = 5 + 5*level, DefenseBoost = 0, HpRestoreValue = 0, Level = level, Name = "Potion de force", Type = 1 }; db.ItemsTypess.Add(type); db.SaveChanges(); } } Name = type.Name; PlayerM.AddItem(type.Id); }
public String UseItem(Item item) { if (item.ObjectType.Type != 0) return "Vous ne pouvez utiliser que des potions de soins hors combat !"; //Soin var hp = Player.Hp; Player.Hp += item.ObjectType.HpRestoreValue; if (Player.Hp > Player.MaxHp) Player.Hp = Player.MaxHp; hp = Player.Hp - hp; //Suppression using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); string itemName = ""; if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.ObjectInventory.Remove(item); //Copie en local Player.ObjectInventory = player.ObjectInventory; itemName = item.ObjectType.Name; item = (from i in db.Items where i.Id == item.Id select i).FirstOrDefault(); db.Items.Remove(item); } db.SaveChanges(); return string.Format("L'item {0} vous à soigné pour {1} Hp !", itemName, hp); } }
public Item DropItem(int id) { using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); if (player == null) return null; var itemM = new ItemManager((from i in player.ObjectInventory where i.Id == id select i).FirstOrDefault()); player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.ObjectInventory.Remove(itemM.Item); var item = (from w in db.Items where w.Id == itemM.Item.Id select w).FirstOrDefault(); db.Items.Remove(item); db.SaveChanges(); return item; } }
//Drop Weapon public bool DropWeapon() { if (Player.WeaponInventory.Count <= 1) { Console.WriteLine("Vous devez garder au moins une arme !"); return false; } Weapon weapon; do { string stringId; int id; do { Console.Clear(); Console.WriteLine("Saisissez l'ID de l'arme que vous voulez jeter (esc pour quitter)"); ShowWeapons(); stringId = Console.ReadLine(); if (stringId == "esc") { Console.Clear(); ShowPlayerInfos(); return false; } } while (!int.TryParse(stringId, out id)); weapon = Player.WeaponInventory.SingleOrDefault(w => w.Id == id); } while (weapon == null); using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); var weaponM = new WeaponManager(weapon); if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.WeaponInventory.Remove(weaponM.Weapon); //Copie en local Player.WeaponInventory = player.WeaponInventory; weapon = (from w in db.Weapons where w.Id == weaponM.Weapon.Id select w).FirstOrDefault(); db.Weapons.Remove(weapon); } db.SaveChanges(); Console.WriteLine("L'arme {0} à été supprimée", weapon.Name); Console.WriteLine(); Console.WriteLine("Appuyez sur entrée pour continuer"); Console.ReadLine(); Console.Clear(); ShowPlayerInfos(); } return true; }
public Item AddItem(int type = -1) { var db = new Project2NetContext(); var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); var itemM = new ItemManager((int)Math.Floor((double)Player.Xp / 100), type); itemM.Item = new Item { ObjectType = db.ItemsTypess.Find(itemM.Item.ObjectType.Id) }; if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.ObjectInventory.Add(itemM.Item); Player.ObjectInventory = player.ObjectInventory; } db.SaveChanges(); return itemM.Item; }
//Use item out of fight public bool UseItem() { Item item; do { string stringId; int id; do { Console.Clear(); Console.WriteLine("Saisissez l'ID de l'item que vous voulez utiliser (esc pour quitter)"); var usableItems = from p in Player.ObjectInventory where p.ObjectType.Type == 0 select p; if (!usableItems.Any()) { Console.WriteLine("Vous n'avez aucun objet utilisable hors combat."); return false; } else { foreach (var usableItem in usableItems) { Console.ForegroundColor = ConsoleColor.White; Console.BackgroundColor = ConsoleColor.DarkCyan; Console.WriteLine("ID : {0} NOM : {1} | NIVEAU {2}", usableItem.Id, usableItem.ObjectType.Name, usableItem.ObjectType.Level); Console.BackgroundColor = ConsoleColor.DarkBlue; Console.WriteLine(" -> [+HP : {0}]", usableItem.ObjectType.HpRestoreValue); Console.WriteLine(); Console.ResetColor(); } } stringId = Console.ReadLine(); if (stringId == "esc") { Console.Clear(); ShowPlayerInfos(); return false; } } while (!int.TryParse(stringId, out id)); item = Player.ObjectInventory.SingleOrDefault(i => i.Id == id); } while (item == null); //Soin var hp = Player.Hp; Player.Hp += item.ObjectType.HpRestoreValue; if (Player.Hp > Player.MaxHp) Player.Hp = Player.MaxHp; hp = Player.Hp - hp; //Suppression using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); string itemName = ""; if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.ObjectInventory.Remove(item); //Copie en local Player.ObjectInventory = player.ObjectInventory; itemName = item.ObjectType.Name; item = (from i in db.Items where i.Id == item.Id select i).FirstOrDefault(); db.Items.Remove(item); } db.SaveChanges(); Console.WriteLine("L'item {0} vous à soigné pour {1} Hp !", itemName,hp ); Console.WriteLine(); Console.WriteLine("Appuyez sur entrée pour continuer"); Console.ReadLine(); Console.Clear(); ShowPlayerInfos(); } return true; }
public void ExecRefreshGrid() { _grid.Clear(); ObservableCollection<Cell> tempGrid; using (var db = new Project2NetContext()) { _playerM.Player.CurrentCell = db.Cells.FirstOrDefault(cell => cell.Id == (int)_playerM.Player.CurrentCellId); tempGrid = (from cell in db.Cells where (cell.PosX >= _playerM.Player.CurrentCell.PosX - 2 && cell.PosX <= _playerM.Player.CurrentCell.PosX + 2) && (cell.PosY >= _playerM.Player.CurrentCell.PosY - 2 && cell.PosY <= _playerM.Player.CurrentCell.PosY + 2) select cell).ToObservableCollection(); } for (var a = -2; a <= 2; a++) { for (var b = -2; b <= 2; b++) { var temp = tempGrid.SingleOrDefault( cell => (cell.PosX == _playerM.Player.CurrentCell.PosX + a) && (cell.PosY == _playerM.Player.CurrentCell.PosY + b)); if (temp == null) { temp = new Cell { PosX = _playerM.Player.CurrentCell.PosX + a, PosY = _playerM.Player.CurrentCell.PosX + b, Description = "Case Inexplorée", MonsterGroup = -1, ImageSource = "../Ressources/Images/ground_empty_cell.png", CanMoveTo = "0000", Id = 0, MonsterRate = 0, Visited = false }; } _grid.Add(temp); } } NotifyPropertyChanged("Grid"); }
//Add item then save it public void AddItem(int item) { var db = new Project2NetContext(); var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.ObjectInventory.Add(new Item {ObjectType = db.ItemsTypess.Find(item)}); //Copie en local Player.ObjectInventory = player.ObjectInventory; } db.SaveChanges(); }
public bool Delete() { using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); if (player != null) { db.Players.Remove(player); db.SaveChanges(); return true; } return false; } }
//Nouvelle Cellule public CellManager(int x, int y, int direction = -1) { using (var db = new Project2NetContext()) { //Random Generator var random = MainWindow.Random; //Nouvelles positions var newX = new int(); var newY = new int(); //Initialisation d'une chaine de chars var canMoveTo = new char[4]; //nord;est;sud;ouest //Index du tableau qui sera fixé var index = new int(); //Case possiblement bloquée var randomCell = new int(); switch (direction) { case -1: //Départ newX = x; newY = y; index = random.Next(0, 4); canMoveTo[index] = '1'; //Case forcément ouverte break; case 0: //nord newX = x; newY = y + 1; index = 2; canMoveTo[index] = '1'; //Case forcément ouverte break; case 1: //est newX = x + 1; newY = y; index = 3; canMoveTo[index] = '1'; //Case forcément ouverte break; case 2: //sud newX = x; newY = y - 1; index = 0; canMoveTo[index] = '1'; //Case forcément ouverte break; case 3: //ouest newX = x - 1; newY = y; index = 1; canMoveTo[index] = '1'; //Case forcément ouverte break; } var existingCell = db.Cells.SingleOrDefault(cell => cell.PosX == newX && cell.PosY == newY); if (existingCell == null) { //Choix d'une case possiblement bloquée do { randomCell = random.Next(0, 4); } while (randomCell == index); //remplissage de l'array de possibilités for (var a = 0; a < 4; a++) { if (a == randomCell) //Si c'est la case possiblement bloquée { if (random.Next(0, 2) == 1) { canMoveTo[a] = '1'; } else { canMoveTo[a] = '0'; } } else if (a != index) //Si c'est pas la case forcément ouverte { canMoveTo[a] = '1'; } } //Min 30 Max 50% de mob rate var monsterRate = random.Next(0, 51); Biome biome = null; biome = GetRandomBiome(); Cell = new Cell { Description = biome.Description, ImageSource = biome.ImageSource, CanMoveTo = ToStringCanMoveTo(canMoveTo), MonsterGroup = biome.MonsterGroup, MonsterRate = monsterRate, PosX = newX, PosY = newY }; db.Cells.Add(Cell); db.SaveChanges(); } else { Cell = existingCell; } } }
//Marque la cellule comme fouillée public void IsVisited() { using (var db = new Project2NetContext()) { var cell = (from c in db.Cells where c.Id == Cell.Id select c).FirstOrDefault(); if (cell != null) { cell.Visited = true; } db.SaveChanges(); } Cell.Visited = true; }
//Cellule existante public CellManager(int id) { using (var db = new Project2NetContext()) { Cell = db.Cells.SingleOrDefault(cell => cell.Id == id); } }
//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; } }
//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; } }
//Introduction (menu, toussa toussa) public PlayerManager Intro() { using (var db = new Project2NetContext()) { PlayerManager selectedPlayer = null; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.BackgroundColor = ConsoleColor.DarkGreen; Console.WriteLine("████ ████"); Console.WriteLine("████ ██████ ██████ █ █ ███████ ██████ ██ █ ███████ ██████ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ ██████ ██████ ████████ █ ██████ █ █ █ █ ██████ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ █ █ ██████ █ █ █ ██████ █ ██ ███████ █ █ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ © 2012 - HEAVENSTAR STUDIOS ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ Appuyez sur un bouton pour commencer. ████"); Console.WriteLine("████ (Le chargement peut être un peu long) ████"); Console.WriteLine("████ ████"); Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.ResetColor(); Console.ReadKey(); var atLeastOneGame = (from players in db.Players select players).Any(); do { Console.Clear(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.BackgroundColor = ConsoleColor.DarkGreen; Console.WriteLine("████ ████"); Console.WriteLine("████ ██████ ██████ █ █ ███████ ██████ ██ █ ███████ ██████ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ ██████ ██████ ████████ █ ██████ █ █ █ █ ██████ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ █ █ █ █ █ █ █ █ █ █ █ █ █ ████"); Console.WriteLine("████ █ █ ██████ █ █ █ ██████ █ ██ ███████ █ █ ████"); Console.WriteLine("████_______________________________________________________________________████"); Console.WriteLine("████ ████"); Console.WriteLine("████ MAIN MENU ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ 1- Créer un nouveau personnage ████"); if (atLeastOneGame) { Console.WriteLine( "████ 2- Charger un personnage ████"); Console.WriteLine( "████ 3- A Propos ████"); Console.WriteLine( "████ 4- Quitter ████"); } else { Console.WriteLine( "████ 2- A Propos ████"); Console.WriteLine( "████ 3- Quitter ████"); Console.WriteLine( "████ ████"); } Console.WriteLine("████ ████"); Console.WriteLine("████ Choisissez une option ████"); Console.WriteLine("████ ████"); Console.WriteLine("████ ████"); Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.WriteLine("███████████████████████████████████████████████████████████████████████████████"); Console.ResetColor(); var choice = Console.ReadLine(); switch (choice) { case "1": selectedPlayer = NewGame(); break; case "2": if (atLeastOneGame) { selectedPlayer = LoadGame(); } else { ShowAbout(); } break; case "3": if (atLeastOneGame) { ShowAbout(); } else { Environment.Exit(0); } break; case "4": if (atLeastOneGame) { Environment.Exit(0); } break; } } while (selectedPlayer == null); return selectedPlayer; } }
//Existing Player public PlayerManager(int id) { var db = new Project2NetContext(); Player = db.Players.SingleOrDefault(player => player.Id == id); }
//Effectué si perdu public void PlayerLost() { Console.Clear(); Console.WriteLine(" "); Console.WriteLine(" IT'S NOT A LIE "); Console.WriteLine(" "); Console.WriteLine(" █ YOU LOOSE (noob) ! "); Console.WriteLine(" █ "); Console.WriteLine(" █ "); Console.WriteLine(" █ "); Console.WriteLine(" █ ████ ██ █████████ "); Console.WriteLine(" █ █████ ███ ██████ ██ "); Console.WriteLine(" █████ █ ███████ █ ██ ██ "); Console.WriteLine(" ██ █ █████ █ ██ ██████ "); Console.WriteLine(" █ ██ █ █ ██ ██████████ "); Console.WriteLine(" █ ██ █ ██ ██████████ ██ "); Console.WriteLine(" █ ████ ██████████ ██████ "); Console.WriteLine(" █ █████████ ██████ ██ "); Console.WriteLine(" █ █████ ██████ ██████ "); Console.WriteLine(" █ █ ██████ ██████████ "); Console.WriteLine(" █ █████ ██████████ "); Console.WriteLine(" ██ █ ██████████ "); Console.WriteLine(" ██ █████████ "); Console.WriteLine(" ███ █████ "); Console.WriteLine(" ██ "); Console.WriteLine(" "); Console.WriteLine(" APPUYEZ SUR ENTREE POUR CONTINUER "); Console.ReadLine(); Console.Clear(); string response; while (true) { Console.WriteLine("Vous avez décédé."); Console.WriteLine("Dans un extrême élan de bonté, le gardien des tombeaux vous propose de repartir "); Console.WriteLine("vers le monde afin de poursuivre votre glorieuse quête."); Console.WriteLine(); Console.WriteLine("Mais ceci a un prix, il vous propose donc deux choix :"); Console.WriteLine("1 - Vous gardez votre personnage, mais perdez 3 niveaux et tous ses objets/armes"); Console.WriteLine("2 - Vous supprimez ce personnage"); response = Console.ReadLine(); var db = new Project2NetContext(); var player = (from p in db.Players where p.Id == PlayerM.Player.Id select p).FirstOrDefault(); if (response == "1") { if (player != null) { player.Xp = player.Xp - 300; if (player.Xp <= 0) player.Xp = 0; player.MaxHp = 500 + ((int) Math.Floor((double) player.Xp/100))*150; player.Hp = player.MaxHp; var itemList = player.ObjectInventory.ToList(); foreach (var item in itemList) { player.ObjectInventory.Remove(item); var itemD = (from i in db.Items where i.Id == item.Id select i).FirstOrDefault(); db.Items.Remove(itemD); } var weaponList = player.WeaponInventory.ToList(); foreach (var weapon in weaponList) { player.WeaponInventory.Remove(weapon); var weaponD = (from i in db.Weapons where i.Id == weapon.Id select i).FirstOrDefault(); db.Weapons.Remove(weaponD); } var weaponM = new WeaponManager(player.Xp, true); player.WeaponInventory.Add(weaponM.Weapon); db.SaveChanges(); PlayerM.Player = player; Console.Clear(); Console.WriteLine("Vous vous sentez renaître !"); Console.WriteLine(); Console.WriteLine("Appuyez sur une touche pour continuer."); Console.ReadKey(); Console.Clear(); } break; } else if (response == "2") { db.Players.Remove(player); db.SaveChanges(); Console.WriteLine("*Pouf*, Le personnage à été détruit ! Appuyez sur une touche pour quitter."); Console.ReadKey(); Environment.Exit(0); } } }
//Return CellManager public CellManager GetCellManager() { using (var db = new Project2NetContext()) { return new CellManager(db.Cells.SingleOrDefault(cell => cell.Id == Player.CurrentCellId)); } }
//Affiche les actions liées aux objets public bool ObjectAction() { Item selectedItem; do { string objetId; int id; do { Console.Clear(); ShowCombatInfoLine(0); Console.WriteLine("Saisissez l'ID de l'objet que vous voulez utiliser (esc pour annuler) : "); Console.WriteLine(); PlayerM.ShowInventory(); Console.WriteLine(); objetId = Console.ReadLine(); if (objetId == "esc") return false; } while (!int.TryParse(objetId, out id)); selectedItem = PlayerM.Player.ObjectInventory.SingleOrDefault(objet => objet.Id == id); } while (selectedItem == null); if (selectedItem.ObjectType.Type == 0) //Health Potion { //Soin var hp = PlayerM.Player.Hp; PlayerM.Player.Hp += selectedItem.ObjectType.HpRestoreValue; if (PlayerM.Player.Hp > PlayerM.Player.MaxHp) PlayerM.Player.Hp = PlayerM.Player.MaxHp; hp = PlayerM.Player.Hp - hp; Console.WriteLine("L'item {0} vous à soigné pour {1} Hp !", selectedItem.ObjectType.Name, hp ); } else { if (selectedItem.ObjectType.AttackStrenghtBonus != 0) { Console.WriteLine("L'item {0} vous à rendu plus fort de {1} Points !", selectedItem.ObjectType.Name, selectedItem.ObjectType.AttackStrenghtBonus); PlayerBonusAttaque += selectedItem.ObjectType.AttackStrenghtBonus; } if (selectedItem.ObjectType.DefenseBoost != 0) { Console.WriteLine("L'item {0} vous à rendu plus résistant de {1} Points !", selectedItem.ObjectType.Name, selectedItem.ObjectType.DefenseBoost); PlayerBonusDefense += selectedItem.ObjectType.DefenseBoost; } } //Suppression var db = new Project2NetContext(); var player = (from p in db.Players where p.Id == PlayerM.Player.Id select p).FirstOrDefault(); if (player != null) { player.Hp = PlayerM.Player.Hp; player.ObjectInventory.Remove(selectedItem); //Copie en local PlayerM.Player.ObjectInventory = player.ObjectInventory; var item = (from i in db.Items where i.Id == selectedItem.Id select i).FirstOrDefault(); db.Items.Remove(item); } Console.WriteLine(); Console.WriteLine("Appuyez sur entrée pour continuer"); Console.ReadLine(); Console.Clear(); db.SaveChanges(); return true; }
public void ExecUseItem() { var rand = MainWindow.Random; if (MainGameViewModel.SelectedItem.ObjectType.Type == 0) //Health Potion { //Soin var hp = MainGameViewModel.ActivePlayerManager.Player.Hp; MainGameViewModel.ActivePlayerManager.Player.Hp += MainGameViewModel.SelectedItem.ObjectType.HpRestoreValue; if (MainGameViewModel.ActivePlayerManager.Player.Hp > MainGameViewModel.ActivePlayerManager.Player.MaxHp) MainGameViewModel.ActivePlayerManager.Player.Hp = MainGameViewModel.ActivePlayerManager.Player.MaxHp; hp = MainGameViewModel.ActivePlayerManager.Player.Hp - hp; MessageList.Insert(0,String.Format("L'item {0} vous à soigné pour {1} Hp !", MainGameViewModel.SelectedItem.ObjectType.Name, hp)); } else { if (MainGameViewModel.SelectedItem.ObjectType.AttackStrenghtBonus != 0) { MessageList.Insert(0,String.Format("L'item {0} vous à rendu plus fort de {1} Points !", MainGameViewModel.SelectedItem.ObjectType.Name, MainGameViewModel.SelectedItem.ObjectType.AttackStrenghtBonus)); _playerAttackBonus += MainGameViewModel.SelectedItem.ObjectType.AttackStrenghtBonus; } if (MainGameViewModel.SelectedItem.ObjectType.DefenseBoost != 0) { MessageList.Insert(0,String.Format("L'item {0} vous à rendu plus résistant de {1} Points !", MainGameViewModel.SelectedItem.ObjectType.Name, MainGameViewModel.SelectedItem.ObjectType.DefenseBoost)); _playerDefenseBonus += MainGameViewModel.SelectedItem.ObjectType.DefenseBoost; } } //Suppression using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == MainGameViewModel.ActivePlayerManager.Player.Id select p).FirstOrDefault(); if (player != null) { player.Hp = MainGameViewModel.ActivePlayerManager.Player.Hp; player.MaxHp = MainGameViewModel.ActivePlayerManager.Player.MaxHp; player.Xp = MainGameViewModel.ActivePlayerManager.Player.Xp; player.CurrentCellId = MainGameViewModel.ActivePlayerManager.Player.CurrentCellId; player.ObjectInventory.Remove(MainGameViewModel.SelectedItem); //Copie en local MainGameViewModel.ActivePlayerManager.Player.ObjectInventory = player.ObjectInventory; var item = (from i in db.Items where i.Id == MainGameViewModel.SelectedItem.Id select i).FirstOrDefault(); if (item != null) db.Items.Remove(item); } db.SaveChanges(); MainGameViewModel.Items.Remove(MainGameViewModel.SelectedItem); PerformAttackPlayer(); NotifyPropertyChanged("Items"); NotifyPropertyChanged("ActivePlayerManager"); NotifyPropertyChanged("MainGameViewModel"); if (CheckCombatEnd()) return; //Le monstre est-il assez rapide ? if (!_playerWon && !_playerLoose) { if (rand.Next(100) > 80) //On est sympa on diminue la chance de frappe x) {//Oui, le monstre peut frapper une deuxiéme fois MessageList.Insert(0, "Le monstre à été suffisement rapide pour donner un second coup !"); PerformAttackPlayer(); if (CheckCombatEnd()) return; } } } }
public Weapon AddWeapon() { var db = new Project2NetContext(); var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); var weaponM = new WeaponManager(Player.Xp); if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.WeaponInventory.Add(weaponM.Weapon); //Copie en local Player.WeaponInventory = player.WeaponInventory; } db.SaveChanges(); return weaponM.Weapon; }
public Weapon DropWeapon(int id) { using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); if (player == null) return null; var weaponM = new WeaponManager((from w in player.WeaponInventory where w.Id == id select w).FirstOrDefault()); player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.WeaponInventory.Remove(weaponM.Weapon); var weapon = (from w in db.Weapons where w.Id == weaponM.Weapon.Id select w).FirstOrDefault(); db.Weapons.Remove(weapon); db.SaveChanges(); return weapon; } }
//génére potion de soin en fonction du lvl public void GenerateHealthPotion(int level) { ItemType type; using (var db = new Project2NetContext()) { if ((type = db.ItemsTypess.SingleOrDefault(t => t.Type == 0 && t.Level == level)) == null) { type = new ItemType { AttackStrenghtBonus = 0, DefenseBoost = 0, HpRestoreValue = 80 + level * 80, Level = level, Name = "Potion de soins", Type = 0 }; db.ItemsTypess.Add(type); db.SaveChanges(); } Item.ObjectType = type; } }
//Drop Item public bool DropItem() { Item item; do { string stringId; int id; do { Console.Clear(); Console.WriteLine("Saisissez l'ID de l'item que vous voulez jeter (esc pour quitter)"); ShowInventory(); stringId = Console.ReadLine(); if (stringId == "esc") { Console.Clear(); ShowPlayerInfos(); return false; } } while (!int.TryParse(stringId, out id)); item = Player.ObjectInventory.SingleOrDefault(i => i.Id == id); } while (item == null); using (var db = new Project2NetContext()) { var player = (from p in db.Players where p.Id == Player.Id select p).FirstOrDefault(); string itemName = ""; if (player != null) { player.Hp = Player.Hp; player.MaxHp = Player.MaxHp; player.Xp = Player.Xp; player.CurrentCellId = Player.CurrentCellId; player.ObjectInventory.Remove(item); //Copie en local Player.ObjectInventory = player.ObjectInventory; itemName = item.ObjectType.Name; item = (from i in db.Items where i.Id == item.Id select i).FirstOrDefault(); db.Items.Remove(item); } db.SaveChanges(); Console.WriteLine("L'item {0} à été supprimé", itemName); Console.WriteLine(); Console.WriteLine("Appuyez sur entrée pour continuer"); Console.ReadLine(); Console.Clear(); ShowPlayerInfos(); } return true; }