Danmaku_no_Kyojin.Screens.ImprovementScreen.Update C# (CSharp) Метод

Update() публичный Метод

public Update ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
Результат void
        public override void Update(GameTime gameTime)
        {
            ControlManager.Update(gameTime, PlayerIndex.One);

            if (InputHandler.PressedCancel())
                StateManager.ChangeState(GameRef.TitleScreen);

            if (InputHandler.PressedUp())
            {
                GameRef.Select.Play();

                _menuIndex--;

                if (_menuIndex < 0)
                    _menuIndex = _menuText.Length;
            }

            if (InputHandler.PressedDown())
            {
                GameRef.Select.Play();

                _menuIndex = (_menuIndex + 1) % (_menuText.Length + 1);
            }

            if (InputHandler.PressedAction())
            {
                if (_menuIndex == _menuText.Length)
                {
                    GameRef.Choose.Play();
                    StateManager.ChangeState(GameRef.TitleScreen);
                }

                bool error = false;
                switch (_menuIndex)
                {
                    // Lives
                    case 0:
                        if (!_finished["livesNumber"] &&
                            PlayerData.LivesNumberIndex < Improvements.LivesNumberData.Count - 1 &&
                            PlayerData.Credits >= Improvements.LivesNumberData[PlayerData.LivesNumberIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.LivesNumberData[PlayerData.LivesNumberIndex + 1].Value;
                            PlayerData.LivesNumberIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 1:
                        if (!_finished["shootType"] &&
                            PlayerData.ShootTypeIndex < Improvements.ShootTypeData.Count - 1 &&
                            PlayerData.Credits >= Improvements.ShootTypeData[PlayerData.ShootTypeIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.ShootTypeData[PlayerData.ShootTypeIndex + 1].Value;
                            PlayerData.ShootTypeIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 2:
                        if (!_finished["shootPower"] &&
                            PlayerData.ShootPowerIndex < Improvements.ShootPowerData.Count - 1 &&
                            PlayerData.Credits >= Improvements.ShootPowerData[PlayerData.ShootPowerIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.ShootPowerData[PlayerData.ShootPowerIndex + 1].Value;
                            PlayerData.ShootPowerIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 3:
                        if (!_finished["shootFrequency"] &&
                            PlayerData.ShootFrequencyIndex < Improvements.ShootFrequencyData.Count - 1 &&
                            PlayerData.Credits >= Improvements.ShootFrequencyData[PlayerData.ShootFrequencyIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.ShootFrequencyData[PlayerData.ShootFrequencyIndex + 1].Value;
                            PlayerData.ShootFrequencyIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 4:
                        if (!_finished["timerInitialTime"] &&
                            PlayerData.TimerInitialTimeIndex < Improvements.TimerInitialTimeData.Count - 1 &&
                            PlayerData.Credits >= Improvements.TimerInitialTimeData[PlayerData.TimerInitialTimeIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.TimerInitialTimeData[PlayerData.TimerInitialTimeIndex + 1].Value;
                            PlayerData.TimerInitialTimeIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 5:
                        if (!_finished["timerExtraTime"] &&
                            PlayerData.TimerExtraTimeIndex < Improvements.TimerExtraTimeData.Count - 1 &&
                            PlayerData.Credits >= Improvements.TimerExtraTimeData[PlayerData.TimerExtraTimeIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.TimerExtraTimeData[PlayerData.TimerExtraTimeIndex + 1].Value;
                            PlayerData.TimerExtraTimeIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 6:
                        if (!_finished["bulletTimeDivisor"] &&
                            PlayerData.InvicibleTimeIndex < Improvements.InvicibleTimeData.Count - 1 &&
                            PlayerData.Credits >= Improvements.InvicibleTimeData[PlayerData.InvicibleTimeIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.InvicibleTimeData[PlayerData.InvicibleTimeIndex + 1].Value;
                            PlayerData.InvicibleTimeIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 7:
                        if (!_finished["slowMode"] &&
                            !PlayerData.SlowModeEnabled &&
                            PlayerData.Credits >= Improvements.SlowModePrice)
                        {
                            PlayerData.Credits -= Improvements.SlowModePrice;
                            PlayerData.SlowModeEnabled = true;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 8:
                        if (!_finished["bulletTime"] &&
                            !PlayerData.BulletTimeEnabled &&
                            PlayerData.Credits >= Improvements.BulletTimePrice)
                        {
                            PlayerData.Credits -= Improvements.BulletTimePrice;
                            PlayerData.BulletTimeEnabled = true;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 9:
                        if (!_finished["bulletTimeTimer"] &&
                            PlayerData.BulletTimeTimerIndex < Improvements.BulletTimeTimerData.Count - 1 &&
                            PlayerData.Credits >= Improvements.BulletTimeTimerData[PlayerData.BulletTimeTimerIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.BulletTimeTimerData[PlayerData.BulletTimeTimerIndex + 1].Value;
                            PlayerData.BulletTimeTimerIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;
                    case 10:
                        if (!_finished["bulletTimeDivisor"] &&
                            PlayerData.BulletTimeDivisorIndex < Improvements.BulletTimeDivisorData.Count - 1 &&
                            PlayerData.Credits >= Improvements.BulletTimeDivisorData[PlayerData.BulletTimeDivisorIndex + 1].Value)
                        {
                            PlayerData.Credits -= Improvements.BulletTimeDivisorData[PlayerData.BulletTimeDivisorIndex + 1].Value;
                            PlayerData.BulletTimeDivisorIndex++;
                        }
                        else
                        {
                            error = true;
                        }
                        break;

                    default:
                        error = true;
                        break;
                }

                if (error)
                    _error = "You don't have enought credits to buy this !";
                else
                {
                    _error = "";
                    _buySound.Play();
                }

                UpdateMenuText();
            }

            base.Update(gameTime);
        }