private static void ListenForConnectionAndStart(object selectBWNGMS)
        {
            SelectBlackWhiteNetworkGameMenuScreen selBWNGMS = (SelectBlackWhiteNetworkGameMenuScreen)selectBWNGMS;

            Lidgren.Network.NetConfiguration config = new Lidgren.Network.NetConfiguration("chessPlayConnection");
            config.MaxConnections = 1;
            config.TimeoutDelay   = 15;
            config.Port           = Utilities.PortNumber;
            Lidgren.Network.NetPeer peer = new Lidgren.Network.NetPeer(config);

            peer.Start();
            do
            {
            }while (
                (peer.Connections.Count == 0) ||
                (peer.Connections[0].Status != Lidgren.Network.NetConnectionStatus.Connected)
                );

            string remoteSide;

            if (selBWNGMS.Game.StatusCurrent.Sides[SideType.Black].PlayerType == PlayerType.Human)
            {
                remoteSide = SideType.White.ToString();
            }
            else
            {
                remoteSide = SideType.Black.ToString();
            }

            Utilities.WriteMessageToRemotePlayer(peer, remoteSide);

            //LoadingScreen.Load(selBWNGMS.ScreenManager, true, selBWNGMS.controllingPlayer,
            //    new GamePlayNetworkScreen(peer));
            selBWNGMS.ExitScreen();
        }
        private static void TryToConnect(object insertIPScreen)
        {
            InsertIPAddressNetworkGameScreen insIPScreen = (InsertIPAddressNetworkGameScreen)insertIPScreen;

            Lidgren.Network.NetConfiguration config = new Lidgren.Network.NetConfiguration("chessPlayConnection");
            config.MaxConnections = 1;
            config.TimeoutDelay   = 15;
            Lidgren.Network.NetPeer peer = new Lidgren.Network.NetPeer(config);
            try
            {
                Lidgren.Network.NetConnection connection = peer.Connect(insIPScreen.ipToUse, Utilities.PortNumber);
                while (connection.Status == Lidgren.Network.NetConnectionStatus.Connecting)
                {
                    ;
                }
                if (connection.Status == Lidgren.Network.NetConnectionStatus.Disconnected)
                {
                    throw new Lidgren.Network.NetException("error");
                }

                Lidgren.Network.NetConnection  conn;
                Lidgren.Network.NetMessageType type;
                String side
                    = Utilities.GetMessageFromConnection(peer, out type, out conn);

                //if (side == SideType.White.ToString())
                //{
                //    insIPScreen.Game.OptionsCurrent.BlackPlayer = GameOptions.PlayerOption.RemoteHuman;
                //    insIPScreen.Game.OptionsCurrent.WhitePlayer = GameOptions.PlayerOption.LocalHuman;
                //}
                //else
                //{
                //    insIPScreen.Game.OptionsCurrent.BlackPlayer = GameOptions.PlayerOption.LocalHuman;
                //    insIPScreen.Game.OptionsCurrent.WhitePlayer = GameOptions.PlayerOption.RemoteHuman;
                //}

                //LoadingScreen.Load(insIPScreen.ScreenManager, true, insIPScreen.controllingPlayer,
                //    new GamePlayNetworkScreen(peer));
                insIPScreen.ExitScreen();
            }
            catch (Lidgren.Network.NetException e)
            {
                insIPScreen.ShowMessageBox("Unable to connect to " + insIPScreen.ipToUse);
            }
        }
Exemplo n.º 3
0
 public StartGameArgs(Lidgren.Network.NetPeer netPeer, short team)
 {
     Team    = team;
     NetPeer = netPeer;
 }