예제 #1
0
        public override void NextTurn()
        {
            var match     = Container.GetMatch();
            var nextIndex = 1 - match.currentPlayerIndex;
            var action    = new NextTurnAction(nextIndex);

            Container.Perform(action);
        }
예제 #2
0
        public override void StartMatch(Player player, int first)
        {
            var dungeonSystem = Container.GetAspect <DungeonSystem>();
            var enemy         = dungeonSystem.GetEncounter(1 - player.index);

            Container.GetAspect <DataSystem>().StartNewMatch(new List <Combatant> {
                player, enemy
            });

            var action = new NextTurnAction(first);

            Container.Perform(action);
        }
예제 #3
0
        public override void NextTurn()
        {
            var match  = Container.GetMatch();
            var player = match.players[match.currentPlayerIndex] as Player;

            if (player.finished)
            {
                return;
            }

            player.finished = true;
            match.finishedPlayers++;
            if (match.finishedPlayers == match.players.Count)
            {
                var nextIndex = match.nextTurnPlayer;
                match.nextTurnPlayer = 1 - match.nextTurnPlayer;
                var action = new NextTurnAction(nextIndex);
                Container.Perform(action);
            }
            else
            {
                ChangeTurn();
            }
        }