private Weapon(string name, double cost, double weight, Dictionaries.WeaponTypes weaponType, WeaponRanges range, Dice damage, string damagetype, string info, int amount = 1) : base(name, cost, weight, amount)
 {
     WeaponType        = weaponType;
     Range             = range;
     Damage            = damage;
     DamageType        = damagetype;
     Info              = info;
     WeaponProficiency = Dictionaries.WeaponProficiencies[WeaponType];
 }
        public WeaponRangeTableItem this[WeaponRanges range]
        {
            get
            {
                switch (range)
                {
                case WeaponRanges.PointBlank:
                    return(this.PointBlank);

                case WeaponRanges.Effective:
                    return(this.Effective);

                case WeaponRanges.Maximum:
                    return(this.Maximum);

                default:
                    throw new ArgumentOutOfRangeException(nameof(range));
                }
            }
        }