public void PlayerCard(RuntimeCard _card) { //RUN LOCAL SIMULATION GameFunctions.MoveCard(playerData.handZone, playerData.boardZone, _card.guid); //SEND MESSAGE TO SERVER MoveCardMessage moveCardMessgae = new MoveCardMessage() { playerGuid = playerData.guid, cardGuid = _card.guid, from_ZoneId = 0, to_ZoneId = 1 }; GameClient.Active.SendMessageToServer(moveCardMessgae); }
private void OnCardMoved(MessageBase _msg, NetworkConnection _connection) { if (server.madeMoves < 1) { //convert message MoveCardMessage _moveCardMessgae = _msg as MoveCardMessage; //get the server player int playerIndex = server.players.IndexOf(server.players.Find(x => x.guid == _moveCardMessgae.playerGuid)); //move the card on the server GameFunctions.MoveCard(server.players[playerIndex].GetZone(_moveCardMessgae.from_ZoneId), server.players[playerIndex].GetZone(_moveCardMessgae.to_ZoneId), _moveCardMessgae.cardGuid); //tell other players that the card has moved BroadcastMoveCardMessgae(server.players[playerIndex].guid, _moveCardMessgae.cardGuid, _moveCardMessgae.from_ZoneId, _moveCardMessgae.to_ZoneId); server.madeMoves++; } else { UnityEngine.Debug.Log(server.LogPrefix + "Illigal move detected"); } }