Пример #1
0
    private void on(MatchSuccess message)
    {
        Debug.Log("MatchSuccess received, OpponentId " + message.OpponentUserId);

        matchInfoDisplay.TickRate   = message.TickRate;
        matchInfoDisplay.UserId     = UserData.Instance.CurrentPlayerId.ToString();
        matchInfoDisplay.OpponentId = message.OpponentUserId.ToString();
        matchInfoDisplay.GameState  = "Playing";
    }
Пример #2
0
 public static Offset <MatchSuccess> CreateMatchSuccess(FlatBufferBuilder builder,
                                                        short opcode = 6,
                                                        StringOffset registeredMatchIdOffset = default(StringOffset),
                                                        int tick_rate       = 0,
                                                        long opponentUserId = 0,
                                                        StringOffset serverVersionOffset = default(StringOffset),
                                                        short serverVersionCode          = 0)
 {
     builder.StartTable(6);
     MatchSuccess.AddOpponentUserId(builder, opponentUserId);
     MatchSuccess.AddServerVersion(builder, serverVersionOffset);
     MatchSuccess.AddTickRate(builder, tick_rate);
     MatchSuccess.AddRegisteredMatchId(builder, registeredMatchIdOffset);
     MatchSuccess.AddServerVersionCode(builder, serverVersionCode);
     MatchSuccess.AddOpcode(builder, opcode);
     return(MatchSuccess.EndMatchSuccess(builder));
 }
Пример #3
0
 public static MatchSuccess GetRootAsMatchSuccess(ByteBuffer _bb, MatchSuccess obj)
 {
     return(obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb));
 }
Пример #4
0
    private void Update()
    {
        if (doAbort)
        {
            doAbort = false;
            AbortGame();
        }
        if (didConnectSuccessfully)
        {
            didConnectSuccessfully = false;
            OnConnected();
        }
        if (doAttemptConnect)
        {
            doAttemptConnect = false;
            OnAttemptingReconnect();
        }

        if (!client.IsConnected && tickCount > 0 && !UserData.Instance.IsGameOver)
        {
            matchInfoDisplay.GameState = "Disconnected";
        }

        // Process all packets that have been received by the server thus far
        byte[] data;
        while (client.GetNextPacket(out data))
        {
            if (UserData.Instance.IsGameOver)
            {
                return;
            }

            var packet     = PacketFactory.BytesToPacket(data);
            var byteBuffer = new ByteBuffer(data);

            // Uncomment for logs containing which packet type you receive
            // Debug.Log("SyncGameController: Received packet: " + (Opcode)packet.Opcode);
            switch ((Opcode)packet.Opcode)
            {
            case Opcode.MatchSuccess:
                client.ResetReadTimer();
                on(MatchSuccess.GetRootAsMatchSuccess(byteBuffer));

                client.SetReadTimeout(2000);
                break;

            case Opcode.GameState:
                on(GameState.GetRootAsGameState(byteBuffer));
                break;

            case Opcode.MatchOver:
                on(MatchOver.GetRootAsMatchOver(byteBuffer));
                break;

            case Opcode.OpponentConnectionStatus:
                on(OpponentConnectionStatus.GetRootAsOpponentConnectionStatus(byteBuffer));
                break;

            case Opcode.PlayerReconnected:
                on(PlayerReconnected.GetRootAsPlayerReconnected(byteBuffer));
                break;

            case Opcode.OpponentPaused:
                on(OpponentPaused.GetRootAsOpponentPaused(byteBuffer));
                break;

            case Opcode.OpponentResumed:
                on(OpponentResumed.GetRootAsOpponentResumed(byteBuffer));
                break;

            case Opcode.Chat:
                on(Chat.GetRootAsChat(byteBuffer));
                break;

            case Opcode.KeepAlive:
                break;

            default:
                Debug.Log("SyncGameController: Received packet with unimplemented/unsupported authcode: " + packet.Opcode);
                break;
            }
        }
    }