public void NextRound() { var aliveStacks = GetAliveStacks(); foreach (var stack in aliveStacks) { stack.SetDefaultStates(); } _currentStacks = InitiativeUtils.SortStacks(aliveStacks); foreach (var stack in _currentStacks) { stack.Round(); } ++_round; // Fire after turn event EventBus.OnNextTurn(this, new NextTurnEventArgs(this)); }
public void NextTurn() { if (TryToStop()) { return; } _currentStacks.RemoveAt(0); _currentStacks = _currentStacks.Where(stack => stack.IsAlive()).ToList(); if (_currentStacks.Count == 0) { NextRound(); return; } _currentStacks = InitiativeUtils.SortStacks(_currentStacks); // Fire after turn event EventBus.OnNextTurn(this, new NextTurnEventArgs(this)); }