public void Continue() { if (!PlayerAlive()) { // hand player dead situation } if (!MobAlive()) { MobDeath(); Victory(); } var initiativeProcessor = new InitiativeProcessor(sim.player, currentMob); string nextMove = initiativeProcessor.NextMove(); if (nextMove == InitiativeProcessor.playerIdent) { var playerCombatProcessor = new PlayerCombatProcessor(sim); playerCombatProcessor.TakeAction(); } else { var mobCombatProcessor = new MobCombatProcessor(sim); mobCombatProcessor.TakeAction(); } if (iterationCount >= iterationLimit) { sim.AddEvent(PlayerEvent.Info("[DEV] Iteration limit reached! Something went wrong.")); } if (sim.requiresInput) { return; } else { Debug.Log("Iterating battle processor continue"); ++iterationCount; Continue(); } }