コード例 #1
0
ファイル: Merchant.cs プロジェクト: ivcoder/Trollpants
        private void SetUpgradePrices(Upgrade upgrade)
        {
            switch (upgrade)
            {
            case Upgrade.ManaAmount:
                if (CloudVariables.UnlockedManaAmountLevel < UpgradeInfo.MaxUpgradeLevel)
                {
                    manaAmount.SetUpgradePrice(UpgradeInfo.GetUpgradePrice(CloudVariables.UnlockedManaAmountLevel + 1));
                }

                break;

            case Upgrade.VerticalSpeed:
                if (CloudVariables.UnlockedVerticalSpeedLevel < UpgradeInfo.MaxUpgradeLevel)
                {
                    verticalSpeed.SetUpgradePrice(UpgradeInfo.GetUpgradePrice(CloudVariables.UnlockedVerticalSpeedLevel + 1));
                }

                break;

            case Upgrade.BoostSpeed:
                if (CloudVariables.UnlockedBoostSpeedLevel < UpgradeInfo.MaxUpgradeLevel)
                {
                    boostSpeed.SetUpgradePrice(UpgradeInfo.GetUpgradePrice(CloudVariables.UnlockedBoostSpeedLevel + 1));
                }

                break;

            case Upgrade.ManaRegenRate:
                if (CloudVariables.UnlockedManaRegenLevel < UpgradeInfo.MaxUpgradeLevel)
                {
                    manaRegen.SetUpgradePrice(UpgradeInfo.GetUpgradePrice(CloudVariables.UnlockedManaRegenLevel + 1));
                }

                break;

            default:
                throw new ArgumentOutOfRangeException("upgrade", upgrade, null);
            }
        }
コード例 #2
0
ファイル: Merchant.cs プロジェクト: ivcoder/Trollpants
        public void UpgradeSkill(Upgrade upgrade)
        {
            UpgradeViewModel upgradeViewModel;
            int unlockedLevel;

            switch (upgrade)
            {
            case Upgrade.ManaAmount:
                upgradeViewModel = manaAmount;
                unlockedLevel    = CloudVariables.UnlockedManaAmountLevel;
                break;

            case Upgrade.VerticalSpeed:
                upgradeViewModel = verticalSpeed;
                unlockedLevel    = CloudVariables.UnlockedVerticalSpeedLevel;
                break;

            case Upgrade.BoostSpeed:
                upgradeViewModel = boostSpeed;
                unlockedLevel    = CloudVariables.UnlockedBoostSpeedLevel;
                break;

            case Upgrade.ManaRegenRate:
                upgradeViewModel = manaRegen;
                unlockedLevel    = CloudVariables.UnlockedManaRegenLevel;
                break;

            default:
                throw new ArgumentOutOfRangeException("upgrade", upgrade, null);
            }

            if (upgradeViewModel.CurrentLevel == UpgradeInfo.MaxUpgradeLevel)
            {
                AudioClipPlayer.PlayIncorrect();
                return;
            }

            if (upgradeViewModel.CurrentLevel < unlockedLevel)
            {
                upgradeViewModel.SetCurrentLevel(upgradeViewModel.CurrentLevel + 1);
                AudioClipPlayer.Instance.PlayClick();
                UpdateGUI(upgrade);
                return;
            }

            var price = UpgradeInfo.GetUpgradePrice(unlockedLevel + 1);

            if (Player.State.Coins < price)
            {
                AudioClipPlayer.PlayIncorrect();
                return;
            }

            Player.State.Coins -= price;
            upgradeViewModel.SetCurrentLevel(upgradeViewModel.CurrentLevel + 1);
            switch (upgrade)
            {
            case Upgrade.ManaAmount:
                CloudVariables.UnlockedManaAmountLevel++;
                break;

            case Upgrade.VerticalSpeed:
                CloudVariables.UnlockedVerticalSpeedLevel++;
                break;

            case Upgrade.BoostSpeed:
                CloudVariables.UnlockedBoostSpeedLevel++;
                break;

            case Upgrade.ManaRegenRate:
                CloudVariables.UnlockedManaRegenLevel++;
                break;

            default:
                throw new ArgumentOutOfRangeException("upgrade", upgrade, null);
            }

            Cloud.Storage.Save();
            AudioClipPlayer.PlayUpgrade();
            UpdateGUI(upgrade);
        }