public void Serialize(OpponentFound message)
 {
     m_writer.Reset();
     m_writer.Write(NetworkMessageType.OpponentFound);
     m_writer.Write(message.m_playerName);
     m_writer.Flush();
 }
Esempio n. 2
0
    public void SendOpponentFound()
    {
        Debug.Assert(ClientInfos[0] != null && ClientInfos[1] != null);

        var msg = new OpponentFound();

        msg.m_playerName = ClientInfos[1].Name;
        m_netMsgSerializer.Serialize(msg);
        m_com.Send(m_netMsgSerializer.Data, m_netMsgSerializer.DataSize, ClientInfos[0].Address);

        msg = new OpponentFound();
        msg.m_playerName = ClientInfos[0].Name;
        m_netMsgSerializer.Serialize(msg);
        m_com.Send(m_netMsgSerializer.Data, m_netMsgSerializer.DataSize, ClientInfos[1].Address);
    }
Esempio n. 3
0
 private void M_GameResponseRecieved(object sender, EventArgs e)
 {
     if (lookingForGame)
     {
         GameResponseComm c = (GameResponseComm)sender;
         if (c.fleetName == me.fleetName)
         {
             return;
         }
         else
         {
             opponent = new Player(c.fleetName);
             OpponentFound.Invoke(opponent, EventArgs.Empty);
             lookingForGame = false;
         }
     }
 }
    public NetworkMessage Deserialize(byte[] data, int size)
    {
        var message = new NetworkMessage();

        m_reader.Reset(data, size);
        m_reader.Read(out message.m_type);

        switch (message.m_type)
        {
        case NetworkMessageType.JoinRequest:
        {
            var msg = new JoinRequest();
            m_reader.Read(out msg.m_clientVersion);
            m_reader.Read(out msg.m_playerName);
            message.m_msg = msg;
            break;
        }

        case NetworkMessageType.JoinAccept:
        {
            var msg = new JoinAccept();
            m_reader.Read(out msg.m_team);
            message.m_msg = msg;
            break;
        }

        case NetworkMessageType.OpponentFound:
        {
            var msg = new OpponentFound();
            m_reader.Read(out msg.m_playerName);
            message.m_msg = msg;
            break;
        }

        case NetworkMessageType.ReadyToStart:
            break;

        case NetworkMessageType.StartMatch:
            break;

        case NetworkMessageType.PlayerMove:
        {
            var msg = new PlayerMove();
            m_reader.Read(out msg.m_messageNumber);
            m_reader.Read(out msg.m_dt);
            byte direction;
            m_reader.Read(out direction);
            msg.m_playerDirection = (PlayerDirection)direction;
            message.m_msg         = msg;
            break;
        }

        case NetworkMessageType.PlayerPosition:
        {
            var msg = new PlayerPosition();
            m_reader.Read(out msg.m_clientMsgNum);
            m_reader.Read(out msg.m_team);
            m_reader.Read(out msg.m_index);
            m_reader.Read(out msg.m_position);
            byte direction;
            m_reader.Read(out direction);
            msg.m_direction = (PlayerDirection)direction;
            message.m_msg   = msg;
            break;
        }

        case NetworkMessageType.PlayerAction:
        {
            var msg = new Action();
            m_reader.Read(out msg.m_duration);
            message.m_msg = msg;
            break;
        }

        case NetworkMessageType.BallPosition:
        {
            var msg = new BallPosition();
            m_reader.Read(out msg.m_clientMsgNum);
            m_reader.Read(out msg.m_position);
            m_reader.Read(out msg.m_velocity);
            message.m_msg = msg;
            break;
        }

        default:
            Debug.Log("Unknown network message.");
            break;
        }

        return(message);
    }