Ejemplo n.º 1
0
    // FE can use this to send their move information
    // note: Currently set as List<Move[]>
    public void SendTurn(List <Move[]> turnList)
    {
        if (PhotonNetwork.IsMasterClient)
        {
            // cache it here or send to game manager
            OnReceiveTurn?.Invoke(turnList.ToArray());
            return;
        }
        RaiseEventOptions raiseEventOptions = new RaiseEventOptions {
            Receivers = ReceiverGroup.Others
        };
        SendOptions sendOptions = new SendOptions {
            Reliability = true
        };

        byte[] data = serializeObject(turnList.ToArray());
        PhotonNetwork.RaiseEvent(SEND_TURN_NEVENT, data, raiseEventOptions, sendOptions);
    }
Ejemplo n.º 2
0
    public void OnEvent(EventData photonEvent)
    {
        byte eventCode = photonEvent.Code;

        switch (eventCode)
        {
        case GAME_START_NEVENT:
            OnGameStart?.Invoke();
            break;

        case SEND_TURN_NEVENT:
            byte[]   data = (byte[])photonEvent.CustomData;
            Move[][] turn = (Move[][])deserializeData(data);
            OnReceiveTurn?.Invoke(turn);
            break;

        case SEND_TURN_LOG_NEVENT:
            byte[]  turnData = (byte[])photonEvent.CustomData;
            TurnLog turnLog  = (TurnLog)deserializeData(turnData);
            OnReceiveTurnLog?.Invoke(turnLog);
            break;
        }
    }