예제 #1
0
 public bool Start()
 {
     Client = new NetClient(new NetPeerConfiguration("Battleship438"));
        Client.Configuration.EnableMessageType(NetIncomingMessageType.Data);
        Client.Configuration.EnableMessageType(NetIncomingMessageType.ConnectionApproval);
        Client.Start();
        Player = new Library.Player("Kevin F", 20, 10);
        //TODO: NEED TO ACQUIRE PLAYER1/2 FROM SERVER
        var outMsg = Client.CreateMessage();
        outMsg.Write((byte)PacketType.Login);
        outMsg.Write(Player.Name);
        outMsg.Write(Player.X);
        outMsg.Write(Player.Y);
        Client.Connect("localhost", 14241, outMsg);
        return EstablishInfo();
 }
        internal override bool Handle(DeviceOperationCode operationCode, ReturnCode returnCode, string operationMessage, Dictionary <byte, object> parameters, out string errorMessage)
        {
            if (base.Handle(operationCode, returnCode, operationMessage, parameters, out errorMessage))
            {
                string nickname            = (string)parameters[(byte)ConnectPlayerResponseParameterCode.Nickname];
                bool   headDeviceConnected = (bool)parameters[(byte)ConnectPlayerResponseParameterCode.HeadDeviceConnected];
                bool   handDeviceConnected = (bool)parameters[(byte)ConnectPlayerResponseParameterCode.HandTakeDeviceConnected];

                Library.Player player = new Library.Player(nickname);
                subject.AddPlayer(player, DeviceCode.DontCare);
                player.HeadDeviceConnected     = headDeviceConnected;
                player.HandTakeDeviceConnected = handDeviceConnected;
                return(true);
            }
            else
            {
                return(false);
            }
        }
 public RemoteOperationHandler(Library.Player subject) : base(subject, 3)
 {
 }