public void NextTurn(bool firstTurn = false) { if (PlayerLost()) { infoBox.DebugText("Game Over!"); return; } else if (EnemyLost()) { StartCoroutine(BattleWon()); return; } if (firstTurn == false) { AdvanceTurnIndex(); } List <CharacterBase> characterList = GetCharacterList(); foreach (CharacterBase character in characterList) { laneMover.SetCharacterToLane(character, character.Lane, character.Faction == Faction.Player ? player : enemy); } while (turnOrder[turnIndex].IsDead) { AdvanceTurnIndex(); } SetCurrentTurnCharacter(); if (CurrentTurn.Faction == Faction.Enemy) { action = EnemyAI.GetAIAction(CurrentTurn, enemyParty, playerParty); StartCoroutine(DecideEnemyAction()); return; } else { filler.FillCurrentTurn(); characterMenu.PlayTween(); } }