public void AddEXP(int EXPToAdd) { this.EXPToAdd = EXPToAdd; state = PlayerCharacterStatusBoxState.AddingEXP; }
public override void Update(GameTime gameTime) { controls.Update(gameTime); debugControls.Update(gameTime); switch (fadeState) { case FadeState.FadingIn: if (alpha < 1.0f) { alpha += 0.1f; } else { alpha = 1.0f; fadeState = FadeState.IdleOpaque; } break; case FadeState.FadingOut: if (alpha > 0.0f) { alpha -= 0.1f; } else { alpha = 0.0f; fadeState = FadeState.IdleFaded; } break; } switch (mode) { case PlayerCharacterStatusBoxMode.EndOfBattle: switch (state) { case PlayerCharacterStatusBoxState.AddingEXP: if (EXPToAdd > 0) { if (!(linkedCharacter.Level == GlobalGameInfo.LevelLimit)) { addEXPTimer += GameClass.Elapsed; if (addEXPTimer > 0.1f) { addEXPTimer = 0.0f; GameClass.SoundManager.PlaySoundEffect("Audio/expAddSound"); EXPToAdd -= 1; linkedCharacter.ExpToNext -= 1; if (linkedCharacter.ExpToNext == 0) { int previousLevel = linkedCharacter.Level; bool playTechniqueLevelUpSound = false; linkedCharacter.LevelUp(); foreach (BattleTechniqueLevelData techniqueLevelData in linkedCharacter.TechniqueLevelData) { if (previousLevel < techniqueLevelData.levelLearnt && !(linkedCharacter.Level < techniqueLevelData.levelLearnt)) { newTechniqueLearned = true; playTechniqueLevelUpSound = true; } } if (playTechniqueLevelUpSound == true) { GameClass.SoundManager.PlaySoundEffect("Audio/newTechniqueSound"); } else { GameClass.SoundManager.PlaySoundEffect("Audio/levelUpSound"); } levelUpOccurred = true; } } } else { EXPToAdd = 0; linkedCharacter.ExpToNext = 0; state = PlayerCharacterStatusBoxState.AwaitingInput; } } else { addEXPTimer = 0.0f; EXPToAdd = 0; state = PlayerCharacterStatusBoxState.AwaitingInput; } break; } break; case PlayerCharacterStatusBoxMode.MapStatus: if (spendPointsMenu != null && spendPointsInfoBar != null) { spendPointsMenu.Update(gameTime); spendPointsInfoBar.Update(gameTime); switch (spendPointsMenu.MenuState) { case MenuState.IdleFaded: spendPointsInfoBar.InfoText = spendPointsMenu.GetSelectionDescription(); break; case MenuState.IdleAwaitingInput: spendPointsInfoBar.InfoText = spendPointsMenu.GetSelectionDescription(); break; case MenuState.IdleValueSelected: if (linkedCharacter.PointsToSpend > 0) { switch (spendPointsMenu.GetSelection()) { case "AddPointsHP": linkedCharacter.HP += 2; linkedCharacter.PointsToSpend -= 1; break; case "AddPointsMP": linkedCharacter.MP += 2; linkedCharacter.PointsToSpend -= 1; break; case "AddPointsATK": linkedCharacter.ATK += 1; linkedCharacter.PointsToSpend -= 1; break; case "AddPointsDEF": linkedCharacter.DEF += 1; linkedCharacter.PointsToSpend -= 1; break; case "AddPointsMAG_ATK": linkedCharacter.MAG_ATK += 1; linkedCharacter.PointsToSpend -= 1; break; case "AddPointsMAG_DEF": linkedCharacter.MAG_DEF += 1; linkedCharacter.PointsToSpend -= 1; break; case "AddPointsSPD": linkedCharacter.SPD += 1; linkedCharacter.PointsToSpend -= 1; break; } } spendPointsMenu.ListenForNewSelection(); break; } } break; } base.Update(gameTime); }