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); }
public void PopulateFromJson(string json) { TableTurnEndAction parsedAction = JsonUtility.FromJson <TableTurnEndAction>(json); IsEndOfTurn = parsedAction.IsEndOfTurn; }