Example #1
0
        private int GetBaseUpgradePrice(BaseUpgradeType baseUpgradeType)
        {
            switch (baseUpgradeType)
            {
            case BaseUpgradeType.Damage:
                return(storePrices.DamageUpgradePrice);

            case BaseUpgradeType.FireRate:
                return(storePrices.FireRateUpgradePrice);

            case BaseUpgradeType.Health:
                return(storePrices.HeathUpgradePrice);

            case BaseUpgradeType.SlowDown:
                return(storePrices.SlowRateUpgradePrice);

            default:
                throw new ArgumentOutOfRangeException(nameof(baseUpgradeType),
                                                      baseUpgradeType, null);
            }
        }
Example #2
0
        public void UpgradeBase(BaseUpgradeType baseUpgradeType)
        {
            var upgradePrice = GetBaseUpgradePrice(baseUpgradeType);

            if (upgradePrice > model.Money)
            {
                throw new NotEnoughMoney(
                          "Not enough money to buy it",
                          model.Money,
                          upgradePrice
                          );
            }
            model.Money -= upgradePrice;

            switch (baseUpgradeType)
            {
            case BaseUpgradeType.Damage:
                TowerStats.MinDamage += storePrices.DamageUpgradePrice;
                TowerStats.MaxDamage += storePrices.DamageUpgradePrice;
                break;

            case BaseUpgradeType.FireRate:
                TowerStats.FireRate -= storePrices.FireRateUpgradeValue;
                break;

            case BaseUpgradeType.Health:
                TowerStats.MaxHealth += storePrices.HeathUpgradeValue;
                break;

            case BaseUpgradeType.SlowDown:
                TowerStats.SlowFactor += storePrices.SlowRateUpgradeValue;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(baseUpgradeType),
                                                      baseUpgradeType, null);
            }

            UpdateUi();
        }