public AddWeaponWindowViewModel(Model.Weapon weapon = null)
        {
            _damageTypeSelectorViewModel1 = new DamageTypeSelectorViewModel();
            _damageTypeSelectorViewModel2 = new DamageTypeSelectorViewModel();
            _damageTypeSelectorViewModel3 = new DamageTypeSelectorViewModel();

            if (weapon != null)
            {
                _name               = weapon.Name;
                _abilityDamage      = weapon.AbilityDamage;
                _abilityDamageValue = weapon.AbilityDamageValue.ToString();
                _selectedAbility    = GetAbilityIndex(weapon.Ability);

                if (weapon.DamageDescriptorSets.Count > 0)
                {
                    _damageTypeSelectorViewModel1.SetFromDamageDescriptorSet(weapon.DamageDescriptorSets[0]);
                }
                if (weapon.DamageDescriptorSets.Count > 1)
                {
                    _damageTypeSelectorViewModel2.SetFromDamageDescriptorSet(weapon.DamageDescriptorSets[1]);
                }
                if (weapon.DamageDescriptorSets.Count > 2)
                {
                    _damageTypeSelectorViewModel3.SetFromDamageDescriptorSet(weapon.DamageDescriptorSets[2]);
                }
            }
            else
            {
                _name          = "";
                _abilityDamage = false;
            }
        }
Пример #2
0
        public Model.HitPointChange GetHit(Model.CreatureAttributes creatureAttributes)
        {
            Model.HitPointChange hitPointChange = new Model.HitPointChange();
            bool   askForInput = true;
            string feedback    = null;

            while (askForInput)
            {
                SetSelectedWeapon();

                View.HitPointChangeDialog damageDialog = new View.HitPointChangeDialog(feedback);
                damageDialog.DataContext = this;
                if (damageDialog.ShowDialog() == true)
                {
                    List <int> damage = new List <int>();
                    try
                    {
                        if (Healing != "")
                        {
                            int healing = Convert.ToInt32(Healing);
                            hitPointChange = new Model.Heal(healing);
                        }
                        else
                        {
                            if (Damage1 != "")
                            {
                                damage.Add(Convert.ToInt32(Damage1));
                            }
                            if (Damage2 != "")
                            {
                                damage.Add(Convert.ToInt32(Damage2));
                            }
                            if (Damage3 != "")
                            {
                                damage.Add(Convert.ToInt32(Damage3));
                            }

                            Model.Weapon weapon = GetWeapon();

                            hitPointChange = new Model.Hit(damage, weapon, creatureAttributes);
                        }

                        askForInput = false;
                    }
                    catch (FormatException)
                    {
                        // Failed to parse input
                        feedback = "Invalid format";
                    }
                }
                else
                {
                    askForInput = false;
                }
            }

            return(hitPointChange);
        }
Пример #3
0
        private void ExecuteAddWeapon()
        {
            AddWeaponWindowViewModel addWeaponWindowViewModel = new AddWeaponWindowViewModel();

            Model.Weapon weapon = addWeaponWindowViewModel.GetWeapon();
            if (weapon != null)
            {
                Weapons.Add(weapon);
            }
        }
Пример #4
0
 private void ExecuteEditWeapon()
 {
     if (SelectedWeapon < Weapons.Count && SelectedWeapon >= 0)
     {
         AddWeaponWindowViewModel addWeaponWindowViewModel = new AddWeaponWindowViewModel(Weapons[SelectedWeapon]);
         Model.Weapon             weapon = addWeaponWindowViewModel.GetWeapon();
         if (weapon != null)
         {
             Weapons[SelectedWeapon] = weapon;
         }
     }
 }
Пример #5
0
        private int GetWeaponIndexInList(Model.Weapon weapon)
        {
            List <Tuple <string, Model.Weapon> > weaponList = GetFlatWeaponList();

            for (int index = 0; index < weaponList.Count; ++index)
            {
                if (weapon.Name.Equals(weaponList[index].Item2.Name))
                {
                    return(index);
                }
            }

            return(-1);
        }
Пример #6
0
 public Model.Weapon GetWeapon()
 {
     Model.Weapon weapon = new Model.Weapon();
     weapon.Name = WeaponName;
     weapon.DamageDescriptorSets.Add(DamageTypeSelectorViewModel1.GetDamageDescriptorSet());
     weapon.DamageDescriptorSets.Add(DamageTypeSelectorViewModel2.GetDamageDescriptorSet());
     weapon.DamageDescriptorSets.Add(DamageTypeSelectorViewModel3.GetDamageDescriptorSet());
     weapon.AbilityDamage = AbilityDamage;
     if (AbilityDamage)
     {
         weapon.Ability            = Ability;
         weapon.AbilityDamageValue = Convert.ToInt32(AbilityDamageValue);
     }
     return(weapon);
 }
        public Model.Weapon GetWeapon()
        {
            bool   askForInput = true;
            string feedback    = null;

            Model.Weapon weapon = null;
            while (askForInput)
            {
                View.AddWeaponWindow addWeaponWindow = new View.AddWeaponWindow(feedback);
                addWeaponWindow.DataContext = this;

                if (addWeaponWindow.ShowDialog() == true)
                {
                    try
                    {
                        weapon = new Model.Weapon
                        {
                            Name               = Name,
                            AbilityDamage      = AbilityDamage,
                            AbilityDamageValue = Convert.ToInt32(AbilityDamageValue),
                            Ability            = Ability
                        };

                        weapon.DamageDescriptorSets.Add(DamageTypeSelectorViewModel1.GetDamageDescriptorSet());
                        weapon.DamageDescriptorSets.Add(DamageTypeSelectorViewModel2.GetDamageDescriptorSet());
                        weapon.DamageDescriptorSets.Add(DamageTypeSelectorViewModel3.GetDamageDescriptorSet());
                        askForInput = false;
                    }
                    catch (FormatException)
                    {
                        feedback = "Invalid format";
                    }
                }
                else
                {
                    askForInput = false;
                }
            }

            return(weapon);
        }