Exemplo n.º 1
0
    private bool OnRemoteCardPlayed(object cookie)
    {
        PlayerTurnAction turn           = (PlayerTurnAction)cookie;
        PlayerData       turnPlayer     = gameData.Players[turn.PlayerIndex];
        PlayerData       lastTurnLeader = gameData.TurnLeader;

        turnPlayer.PlayCardFromHand(turn.CardPlayed);

        if (autoPlayCard != null && turnPlayer != localPlayer)
        {
            bool newAutoPlayCardState = gameData.GetWillCardTakeLead(autoPlayCard);
            if (newAutoPlayCardState != wouldAutoPlayCardWin)
            {
                string msg = "Your autoplay card has been reset because it would no longer win the hand.";
                Service.EventManager.SendEvent(EventId.ShowCardNotification, msg);
                autoPlayCard         = null;
                wouldAutoPlayCardWin = false;
            }
        }

        gameData.IncrementTurnCounter();
        Debug.Log("Processed player turn: " + turnPlayer.PlayerName + ", new index: " + gameData.CurrentPlayerTurnIndex);
        PlayerData nextPlayer = gameData.Players[gameData.CurrentPlayerTurnIndex];

        if (nextPlayer.PlayerName ==
            gameData.Players[gameData.CurrentLeaderIndex].PlayerName)
        {
            gameScreen.SetHighCard(gameData);
            // Award trick.
            if (localPlayer.IsHost && currentPendingActions.Count == 0)
            {
                Debug.Log("End of turns!");
                // Start next table turn.
                TableTurnEndAction turnEndAction = new TableTurnEndAction();
                turnEndAction.IsEndOfTurn = true;
                Service.WebRequests.SendGameAction(gameData, turnEndAction,
                                                   (response) => { });
            }
            return(false);
        }

        gameScreen.SyncGameState(gameData, localPlayer, false, autoPlayCard);

        if (nextPlayer == localPlayer && autoPlayCard != null)
        {
            currentSelectedCard = autoPlayCard;
            Service.EventManager.SendEvent(EventId.PlayCardPressed, null);
        }
        return(false);
    }
Exemplo n.º 2
0
    public void PopulateFromJson(string json)
    {
        TableTurnEndAction parsedAction = JsonUtility.FromJson <TableTurnEndAction>(json);

        IsEndOfTurn = parsedAction.IsEndOfTurn;
    }