Esempio n. 1
0
    public void PopulateFromJson(string json)
    {
        PlayerTurnAction parsedAction = JsonUtility.FromJson <PlayerTurnAction>(json);

        PlayerIndex = parsedAction.PlayerIndex;
        CardPlayed  = parsedAction.CardPlayed;
    }
Esempio n. 2
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);
    }
Esempio n. 3
0
 private bool OnLocalCardPlayed(object cookie)
 {
     if (currentSelectedCard != null && gameData.IsCardValid(currentSelectedCard, localPlayer))
     {
         PlayerTurnAction turnAction = new PlayerTurnAction();
         turnAction.CardPlayed  = currentSelectedCard;
         turnAction.PlayerIndex = gameData.Players.IndexOf(localPlayer);
         gameScreen.CardPlayed();
         Service.WebRequests.SendGameAction(
             gameData, turnAction, (response) => {}, seenActionIndex);
         currentSelectedCard = null;
         autoPlayCard        = null;
         gameScreen.DisableHand();
     }
     else if (currentSelectedCard == null)
     {
         string msg = "Select a card to play before clicking the submit button.";
         Service.EventManager.SendEvent(EventId.ShowCardNotification, msg);
     }
     return(false);
 }