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); } }
public StartGameArgs(Lidgren.Network.NetPeer netPeer, short team) { Team = team; NetPeer = netPeer; }