コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }