Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WeaponsBase : ItemBase
- {
- public WeaponsBase()
- {
- Name = string.Empty;
- PermanentEnchantments = new List<Enchantment>();
- CreatedByCharacterId = 0;
- Enchantments = new List<Enchantment>();
- WeaponType = WeaponType.None;
- Material = new Material();
- SkillLevelNeeded = 0;
- WeaponDamageRealm = PlanarRealm.None;
- }
- private PlanarRealm _weaponDamageRealm;
- private PlanarRealm WeaponDamageRealm { get; set; }
- private int _skillLevelNeeded;
- public int SkillLevelNeeded
- {
- get
- {
- return this._skillLevelNeeded;
- }
- set
- {
- if (this._skillLevelNeeded != value)
- {
- this._skillLevelNeeded = value;
- this.NotifyPropertyChanged("SkillLevelNeeded");
- }
- }
- }
- public virtual int Length
- {
- get;
- set;
- }
- private string _name;
- private int _createdByCharacterId;
- private WeaponType _weaponType;
- private Material _material;
- private List<DiceSize> _baseDamage;
- public string Name
- {
- get
- {
- return this._name;
- }
- set
- {
- if (this._name != value)
- {
- this._name = value;
- this.NotifyPropertyChanged("Name");
- }
- }
- }
- public List<DiceSize> BaseDamage
- {
- get
- {
- var dice = new List<DiceSize>();
- switch (this.WeaponType)
- {
- case WeaponType.Hands:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.Fists:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.Claws:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.Razor:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.Dagger:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.Scythe:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.Sap:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.Mace:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.Hammer:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.ShortSword:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.Sabre:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.LongSword:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.WarSword:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.WarHammer:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.WarMace:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.Spear:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.PoleArm:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.Darts:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.ThrowingStar:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.ThrowingDagger:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.HandBow:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.DartLauncher:
- dice.AddRange(new List<DiceSize>() { DiceSize.e1 });
- break;
- case WeaponType.SmallCrossbow:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.ShortBow:
- dice.AddRange(new List<DiceSize>() { DiceSize.e2 });
- break;
- case WeaponType.Bow:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.LongBow:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- case WeaponType.LargeCrossbow:
- dice.AddRange(new List<DiceSize>() { DiceSize.e3 });
- break;
- default:
- dice.AddRange(new List<DiceSize>() { DiceSize.None });
- break;
- }
- return dice;
- }
- }
- public int CreatedByCharacterId
- {
- get
- {
- return this._createdByCharacterId;
- }
- set
- {
- if (this._createdByCharacterId != value)
- {
- this._createdByCharacterId = value;
- this.NotifyPropertyChanged("CreatedByCharacterId");
- }
- }
- }
- public WeaponBaseType WeaponBaseType
- {
- get
- {
- switch (this.WeaponType)
- {
- case WeaponType.Hands:
- case WeaponType.Fists:
- case WeaponType.Claws:
- case WeaponType.Razor:
- case WeaponType.Dagger:
- case WeaponType.Scythe:
- case WeaponType.Sap:
- case WeaponType.Mace:
- case WeaponType.Hammer:
- case WeaponType.ShortSword:
- case WeaponType.Sabre:
- case WeaponType.LongSword:
- case WeaponType.WarSword:
- case WeaponType.WarHammer:
- case WeaponType.WarMace:
- case WeaponType.Spear:
- case WeaponType.PoleArm:
- return WeaponBaseType.Melee;
- case WeaponType.Darts:
- case WeaponType.ThrowingStar:
- case WeaponType.ThrowingDagger:
- return WeaponBaseType.Thrown;
- case WeaponType.HandBow:
- case WeaponType.DartLauncher:
- case WeaponType.SmallCrossbow:
- case WeaponType.ShortBow:
- case WeaponType.Bow:
- case WeaponType.LongBow:
- case WeaponType.LargeCrossbow:
- return WeaponBaseType.Projectile;
- default:
- return WeaponBaseType.None;
- }
- }
- }
- public IEnumerable<Benefit> Benefits
- {
- get
- {
- return this.Spells.SelectMany(e => e.Benefits).Union(this.Enchantments.SelectMany(e => e.Benefits)).ToList().Union(this.Material.MaterialBenefits);
- }
- }
- public IEnumerable<Damage> Damage
- {
- get{
- var relevantBenefits = Benefits.Where(e => e.Modifies == BenefitModifier.Damage).ToList();
- var allDamages = new List<Damage>();
- foreach (var benefit in relevantBenefits)
- {
- allDamages.Add(new Damage(benefit));
- }
- var o = BaseDamage.Sum(e => { return e.RollDice(); });
- allDamages.Add(new Damage() { Realm = WeaponDamageRealm, Value = o });
- return allDamages;
- }
- }
- public WeaponType WeaponType
- {
- get
- {
- return this._weaponType;
- }
- set
- {
- if (this._weaponType != value)
- {
- this._weaponType = value;
- this.NotifyPropertyChanged("WeaponType");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement