private IEnumerator ForgetMove(MonsterObj monster, MoveObj oldMove) { //TODO - fix bug where new move is lost if monster gains more than one level LearnableMove newMove = _playerMonster.Monster.GetLearnableMove(); monster.ForgetMove(oldMove); monster.LearnMove(newMove); _dialogBox.SetMoveList(monster.Moves); yield return(_dialogBox.TypeDialog($"{_playerMonster.Monster.Base.Name} has forgotten {oldMove.Base.Name}!")); yield return(_dialogBox.TypeDialog($"{_playerMonster.Monster.Base.Name} has learned {newMove.Base.Name}!")); _state = BattleState.ExecutingTurn; }