Exemplo n.º 1
0
 private void OnShowInventory(Model.CharacterRelated.Character ch)
 {
     if (ShowInventory != null)
     {
         ShowInventory(this, ch);
     }
 }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
 private void OnShowSkills(Model.CharacterRelated.Character ch)
 {
     if (ShowSkills != null)
     {
         ShowSkills(this, ch);
     }
 }
Exemplo n.º 4
0
 private void OnViewEnemy(Model.CharacterRelated.Character ch)
 {
     if (ViewEnemyEvent != null)
     {
         ViewEnemyEvent(this, ch);
     }
 }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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;
        }
Exemplo n.º 7
0
        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;
        }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        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;
        }
Exemplo n.º 12
0
        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);
                }
            }
        }
Exemplo n.º 13
0
        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;
        }