public int GetUpgradeLevel(WeaponStatsUpgradeTypeEnum statsType, WeaponStats weaponStats)
        {
            for (int i = 0; i < weaponStatsWithCostPerUpgrades.Length; i++)
            {
                switch (statsType)
                {
                case WeaponStatsUpgradeTypeEnum.Damage:
                    if (weaponStats.damage == weaponStatsWithCostPerUpgrades[i].weaponStats.damage)
                    {
                        return(i);
                    }
                    break;

                case WeaponStatsUpgradeTypeEnum.FireRate:
                    if (weaponStats.fireRate == weaponStatsWithCostPerUpgrades[i].weaponStats.fireRate)
                    {
                        return(i);
                    }
                    break;

                case WeaponStatsUpgradeTypeEnum.ReloadSpeed:
                    if (weaponStats.reloadSpeed == weaponStatsWithCostPerUpgrades[i].weaponStats.reloadSpeed)
                    {
                        return(i);
                    }
                    break;

                default:
                    break;
                }
            }

            return(0);
        }
        public string GetUpgradeValue(WeaponStatsUpgradeTypeEnum statsType, int upgradeLevel)
        {
            for (int i = 0; i < weaponStatsWithCostPerUpgrades.Length; i++)
            {
                if (i != upgradeLevel)
                {
                    continue;
                }

                switch (statsType)
                {
                case WeaponStatsUpgradeTypeEnum.Damage:
                    return(weaponStatsWithCostPerUpgrades[i].weaponStats.damage.ToString());

                case WeaponStatsUpgradeTypeEnum.FireRate:
                    return(weaponStatsWithCostPerUpgrades[i].weaponStats.fireRate.ToString());

                case WeaponStatsUpgradeTypeEnum.ReloadSpeed:
                    return(weaponStatsWithCostPerUpgrades[i].weaponStats.reloadSpeed.ToString());

                default:
                    return("0");
                }
            }

            return("0");
        }
        public int GetPrice(WeaponStats weaponStats, WeaponStatsUpgradeTypeEnum upgradeType)
        {
            for (int i = 0; i < weaponStatsWithCostPerUpgrades.Length - 1; i++)
            {
                switch (upgradeType)
                {
                case WeaponStatsUpgradeTypeEnum.Damage:
                    if (weaponStatsWithCostPerUpgrades[i].weaponStats.damage == weaponStats.damage)
                    {
                        return(weaponStatsWithCostPerUpgrades[i + 1].price);
                    }
                    break;

                case WeaponStatsUpgradeTypeEnum.FireRate:
                    if (weaponStatsWithCostPerUpgrades[i].weaponStats.fireRate == weaponStats.fireRate)
                    {
                        return(weaponStatsWithCostPerUpgrades[i + 1].price);
                    }
                    break;

                case WeaponStatsUpgradeTypeEnum.ReloadSpeed:
                    if (weaponStatsWithCostPerUpgrades[i].weaponStats.reloadSpeed == weaponStats.reloadSpeed)
                    {
                        return(weaponStatsWithCostPerUpgrades[i + 1].price);
                    }
                    break;

                default:
                    break;
                }
            }

            return(0);
        }
        private GunShopItemUpgradeRowMenager GetUpgradeRow(WeaponStatsUpgradeTypeEnum upgradeType)
        {
            foreach (GunShopItemUpgradeRowMenager gunShopItemUpgradeRow in gunShopItemUpgradeRows)
            {
                if (gunShopItemUpgradeRow.GetUpgradeTyp() == upgradeType)
                {
                    return(gunShopItemUpgradeRow);
                }
            }

            return(new GunShopItemUpgradeRowMenager());
        }
        public void UpgradeSelectedGunShopItem(WeaponStatsUpgradeTypeEnum upgradeType)
        {
            int         price         = weaponStatsProgression.GetPrice(selectedItem.GetWeaponType(), weaponCollection.GetWeaponStats(selectedItem.GetWeaponType()), upgradeType);
            WeaponStats upgradedStats = UpgradeSelectedItemWeaponStats(upgradeType);

            if (CanBuy(price))
            {
                wallet.SpendMoney(price);
                weaponCollection.SetWeaponStats(selectedItem.GetWeaponType(), upgradedStats);
                ShowConfiguredGunShopItemPanel(selectedItem);
                savingWrapper.Save();
            }
        }
        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);
        }
 public GunShopItemUpgradeRow(WeaponStatsUpgradeTypeEnum upgradeType)
 {
     this.upgradeType = upgradeType;
 }
 public string GetUpgradeValue(WeaponStatsUpgradeTypeEnum upgradeType, int upgradeLevel)
 {
     return(weaponStatsProgression.GetUpgradeValue(weaponType, upgradeType, upgradeLevel));
 }
 public int GetUpgradeLevel(WeaponStatsUpgradeTypeEnum statsType)
 {
     return(weaponStatsProgression.GetUpgradeLevel(weaponType, statsType, currentWeaponStats));
 }
 public string GetUpgradeValue(WeaponType weaponType, WeaponStatsUpgradeTypeEnum statsType, int upgradeLevel)
 {
     return(GetWeaponStatsProgressionPerUpgrationLevel(weaponType).GetUpgradeValue(statsType, upgradeLevel));
 }
 public int GetUpgradeLevel(WeaponType weaponType, WeaponStatsUpgradeTypeEnum statsType, WeaponStats weaponStats)
 {
     return(GetWeaponStatsProgressionPerUpgrationLevel(weaponType).GetUpgradeLevel(statsType, weaponStats));
 }
 public int GetPrice(WeaponType weaponType, WeaponStats weaponStats, WeaponStatsUpgradeTypeEnum upgradeType)
 {
     return(GetWeaponStatsProgressionPerUpgrationLevel(weaponType).GetPrice(weaponStats, upgradeType));
 }