private void OnShowInventory(Model.CharacterRelated.Character ch) { if (ShowInventory != null) { ShowInventory(this, ch); } }
private void LoadCharacterButton_Click(object sender, EventArgs e) { if (_workspaceDir == null || _workspaceDir == String.Empty) { MessageBox.Show("First you need to set your workspace to use this function!", "Error"); return; } OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = "Select character to edit"; ofd.Multiselect = false; ofd.CheckFileExists = true; ofd.InitialDirectory = _workspaceDir; ofd.Filter = "Character|*.char"; DialogResult dr = ofd.ShowDialog(); if (dr == DialogResult.OK) { Model.CharacterRelated.Character ch = FileHandler.FileHandler.Read <Model.CharacterRelated.Character>(ofd.FileName, typeof(Model.CharacterRelated.Character)); CharacterEditor.MainForm mf = new CharacterEditor.MainForm(ch); mf.Ok += new EventHandler(CharacterEditor_Ok); mf.ShowDialog(); } }
private void OnShowSkills(Model.CharacterRelated.Character ch) { if (ShowSkills != null) { ShowSkills(this, ch); } }
private void OnViewEnemy(Model.CharacterRelated.Character ch) { if (ViewEnemyEvent != null) { ViewEnemyEvent(this, ch); } }
private void Battle_ViewEnemy(object sender, Model.CharacterRelated.Character e) { Views.CharacterWindow chwnd = new Views.CharacterWindow(); ViewModel.CharacterViewModel cvm = new ViewModel.CharacterViewModel(e); chwnd.DataContext = cvm; chwnd.ShowDialog(); }
public InventoryViewModel(Model.CharacterRelated.Character ch) { Items = new ObservableCollection <Fields.ItemField>(); foreach (Model.CharacterRelated.InventoryRelated.Item it in ch.Inventory.Items) { Items.Add(new Fields.ItemField { Name = it.Name, ImageName = Properties.Resources.ImagesFolder + Properties.Resources.ItemsFolder + it.ImageName + Properties.Resources.ImagesExtension, Stats = it.Stats.ToString(), SelectedCommand = new DelegateCommand(x => EquipItem(it)) }); } if (ch.Equipped.Weapon != null) { Weapon = new Fields.ItemField { Name = ch.Equipped.Weapon.Name, ImageName = Properties.Resources.ImagesFolder + Properties.Resources.ItemsFolder + ch.Equipped.Weapon.ImageName + Properties.Resources.ImagesExtension, Stats = ch.Equipped.Weapon.Stats.ToString(), SelectedCommand = new DelegateCommand(x => UnEquipItem(ch.Equipped.Weapon)) }; } else { Weapon = new Fields.ItemField { Name = "Weapon Slot", ImageName = "", Stats = "None." }; } if (ch.Equipped.Armor != null) { Armor = new Fields.ItemField { Name = ch.Equipped.Armor.Name, ImageName = Properties.Resources.ImagesFolder + Properties.Resources.ItemsFolder + ch.Equipped.Armor.ImageName + Properties.Resources.ImagesExtension, Stats = ch.Equipped.Armor.Stats.ToString(), SelectedCommand = new DelegateCommand(x => UnEquipItem(ch.Equipped.Armor)) }; } else { Armor = new Fields.ItemField { Name = "Armor Slot", ImageName = "", Stats = "None." }; } Inventory = ch.Inventory; Equipped = ch.Equipped; }
private void Stats_Skills(object sender, Model.CharacterRelated.Character e) { Views.SkillsWindow swnd = new Views.SkillsWindow(); ViewModel.SkillsViewModel svm = new ViewModel.SkillsViewModel(e.Skills, e.BaseStats.Experience.Level); swnd.DataContext = svm; swnd.ShowDialog(); _tempPlayer.Skills = svm.Skills; }
private void Game_Inventory(object sender, EventArgs e) { ViewModel.GameViewModel gameVM = (ViewModel.GameViewModel)sender; _tempPlayer = gameVM.Player; Stats_Inventory(sender, _tempPlayer); gameVM.Player.Inventory = _tempPlayer.Inventory; gameVM.Player.Equipped = _tempPlayer.Equipped; _tempPlayer = null; }
public GameViewModel(String filepath) { Options = new ObservableCollection <Fields.OptionField>(); NewCommand = new DelegateCommand(x => OnNew()); SaveCommand = new DelegateCommand(x => { FileHandler.FileHandler.Write(filepath, _player, typeof(Model.MapRelated.Map)); OnShowMessage("Save successfully completed!"); }); LoadCommand = new DelegateCommand(x => OnLoad()); QuitCommand = new DelegateCommand(x => OnQuit()); StatsCommand = new DelegateCommand(x => OnShowStats()); InventoryCommand = new DelegateCommand(x => OnShowInventory()); //Set up map & player try { _player = FileHandler.FileHandler.Read <Model.CharacterRelated.Character>( filepath, typeof(Model.MapRelated.Map)); } catch (FileHandler.Exceptions.ReadException ex) { throw new Exceptions.LoadException(ex.Message); } try { _map = Model.MapRelated.RegionManager.getMap(_player.Location.Region); _map.SetUp(_player.Location.SubRegion); } catch { throw new Exceptions.LoadException("The selected map file is missing or corrupted. Cannot load character."); } _map.Battle += new EventHandler(Map_Battle); _map.VariableSet += new EventHandler(Map_VariableSet); _map.ExperienceGain += new EventHandler(Map_ExperienceGain); _map.ItemGain += new EventHandler(Map_ItemGain); _map.ChangeRegion += new EventHandler(Map_ChangeRegion); RefreshView(); }
public CharacterViewModel(Model.CharacterRelated.Character ch, Boolean isPlayer = false) { Name = ch.Name; Level = ch.TotalStats.Experience.Level.ToString() + " lvl"; Race = ch.Race.RaceName; Class = ch.Class.ProfessionName; Health = ch.TotalStats.Health.Current + "/" + ch.TotalStats.Health.Max; Mana = ch.TotalStats.Mana.Current + "/" + ch.TotalStats.Mana.Max; Attack = ch.TotalStats.Attack.ToString(); Defense = ch.TotalStats.Defense.ToString(); Speed = ch.TotalStats.Speed.ToString(); Experience = ch.TotalStats.Experience.Current.ToString() + " xp"; IsSkillsEnabled = isPlayer; IsInventoryEnabled = isPlayer; SkillsCommand = new DelegateCommand(x => OnShowSkills(ch)); InventoryCommand = new DelegateCommand(x => OnShowInventory(ch)); }
private void Game_Stats(object sender, EventArgs e) { ViewModel.GameViewModel gameVM = (ViewModel.GameViewModel)sender; Views.CharacterWindow chwnd = new Views.CharacterWindow(); _tempPlayer = gameVM.Player; ViewModel.CharacterViewModel cvm = new ViewModel.CharacterViewModel(_tempPlayer, true); cvm.ShowInventory += new EventHandler <Model.CharacterRelated.Character>(Stats_Inventory); cvm.ShowSkills += new EventHandler <Model.CharacterRelated.Character>(Stats_Skills); chwnd.DataContext = cvm; chwnd.ShowDialog(); gameVM.Player.Inventory = _tempPlayer.Inventory; gameVM.Player.Equipped = _tempPlayer.Equipped; gameVM.Player.Skills = _tempPlayer.Skills; _tempPlayer = null; }
private void Stats_Inventory(object sender, Model.CharacterRelated.Character e) { Views.InventoryWindow iwnd = new Views.InventoryWindow(); ViewModel.InventoryViewModel ivm = new ViewModel.InventoryViewModel(e); iwnd.DataContext = ivm; iwnd.ShowDialog(); if (_tempPlayer != null) { _tempPlayer.Inventory = ivm.Inventory; _tempPlayer.Equipped = ivm.Equipped; if (sender is ViewModel.CharacterViewModel) { ViewModel.CharacterViewModel cvm = (ViewModel.CharacterViewModel)sender; cvm.UpdateStats(_tempPlayer.TotalStats); } } }
public NewCharacterViewModel() { OkCommand = new DelegateCommand(x => { if (Name == null || Name == "") { OnMessage("Name must be given!"); return; } if (Class == null || Class == "") { OnMessage("You must select a Class!"); return; } if (Race == null || Race == "") { OnMessage("You must select a Race!"); return; } Model.CharacterRelated.Character ch = new Model.CharacterRelated.Character(); ch.Name = Name; ch.Race = new Model.CharacterRelated.Race(Race); ch.Class = new Model.CharacterRelated.Profession(Class); ch.Location = Model.CharacterRelated.LocationManager.Start( ch.Race, ch.Class, Alternative); ch.BaseStats = Model.CharacterRelated.StatRelated.StatManager.Default( ch.Race, ch.Class); String folderpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + Properties.Resources.CharactersFolder; String filepath = folderpath + Name + Properties.Resources.CharactersExtension; if (!System.IO.Directory.Exists(folderpath)) { System.IO.Directory.CreateDirectory(folderpath); } if (!System.IO.File.Exists(filepath)) { FileHandler.FileHandler.Write(filepath, ch, typeof(Model.MapRelated.Map)); OnOk(filepath); } else { OnMessage("Character already exists with that name!"); } }); CancelCommand = new DelegateCommand(x => OnCancel()); Races = new ObservableCollection <String>(); foreach (Model.CharacterRelated.Race r in Model.CharacterRelated.RaceManager.getRaces()) { Races.Add(r.RaceName); } Race = Model.CharacterRelated.RaceManager.getRaces()[0].RaceName; Classes = new ObservableCollection <String>(); foreach (Model.CharacterRelated.Profession p in Model.CharacterRelated.ProfessionManager.getProfessions()) { Classes.Add(p.ProfessionName); } Alternative = 0; }