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; } }
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); }
private void ExecuteAddWeapon() { AddWeaponWindowViewModel addWeaponWindowViewModel = new AddWeaponWindowViewModel(); Model.Weapon weapon = addWeaponWindowViewModel.GetWeapon(); if (weapon != null) { Weapons.Add(weapon); } }
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; } } }
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); }
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); }