private GunShopItemUpgradeRow[] SetUpGunShopItemUpgradeRows(GunShopItem item)
        {
            WeaponStats             weaponStats             = weaponCollection.GetWeaponStats(item.GetWeaponType());
            WeaponStatsUpgradeLevel weaponStatsUpgradeLevel = new WeaponStatsUpgradeLevel(item.GetWeaponType(), weaponStats, weaponStatsProgression);

            GunShopItemUpgradeRow damageRow = new GunShopItemUpgradeRow(WeaponStatsUpgradeTypeEnum.Damage);

            damageRow.price        = weaponStatsProgression.GetPrice(item.GetWeaponType(), weaponStats, WeaponStatsUpgradeTypeEnum.Damage).ToString();
            damageRow.upgradeLevel = weaponStatsUpgradeLevel.GetUpgradeLevel(damageRow.upgradeType);

            GunShopItemUpgradeRow fireRateRow = new GunShopItemUpgradeRow(WeaponStatsUpgradeTypeEnum.FireRate);

            fireRateRow.price        = weaponStatsProgression.GetPrice(item.GetWeaponType(), weaponStats, fireRateRow.upgradeType).ToString();
            fireRateRow.upgradeLevel = weaponStatsUpgradeLevel.GetUpgradeLevel(fireRateRow.upgradeType);

            GunShopItemUpgradeRow reloadSpeedRow = new GunShopItemUpgradeRow(WeaponStatsUpgradeTypeEnum.ReloadSpeed);

            reloadSpeedRow.price        = weaponStatsProgression.GetPrice(item.GetWeaponType(), weaponStats, reloadSpeedRow.upgradeType).ToString();
            reloadSpeedRow.upgradeLevel = weaponStatsUpgradeLevel.GetUpgradeLevel(reloadSpeedRow.upgradeType);

            return(new GunShopItemUpgradeRow[] { damageRow, fireRateRow, reloadSpeedRow });
        }
        private WeaponStats UpgradeSelectedItemWeaponStats(WeaponStatsUpgradeTypeEnum upgradeType)
        {
            WeaponStats             stats = weaponCollection.GetWeaponStats(selectedItem.GetWeaponType());
            WeaponStatsUpgradeLevel weaponStatsUpgradeLevel = new WeaponStatsUpgradeLevel(selectedItem.GetWeaponType(), stats, weaponStatsProgression);
            string upgradeValu = weaponStatsUpgradeLevel.GetUpgradeValue(upgradeType, weaponStatsUpgradeLevel.GetUpgradeLevel(upgradeType) + 1);

            switch (upgradeType)
            {
            case WeaponStatsUpgradeTypeEnum.Damage:
                stats.damage = int.Parse(upgradeValu);
                break;

            case WeaponStatsUpgradeTypeEnum.FireRate:
                stats.fireRate = float.Parse(upgradeValu);
                break;

            case WeaponStatsUpgradeTypeEnum.ReloadSpeed:
                stats.reloadSpeed = float.Parse(upgradeValu);
                break;
            }

            return(stats);
        }