public Round(Player drawer, string word) { Drawer = drawer; Word = word; }
private static Player NewPlayer(NetIncomingMessage inc, NetServer server, string username) { var newPlayer = new Player(username); foreach (long key in Players.Keys) { NetOutgoingMessage msgToNewClient = server.CreateMessage(); msgToNewClient.Write((byte) PacketTypes.Headers.PlayerRec); msgToNewClient.Write(key); msgToNewClient.Write(Players[key].Name); msgToNewClient.Write(Players[key].GetReadyStatus()); Console.WriteLine("NClient: Sent message about {0} to: {1}", username, Players[key].Name); server.SendMessage(msgToNewClient, inc.SenderConnection, NetDeliveryMethod.ReliableOrdered); NetOutgoingMessage msgToCurrentClient = server.CreateMessage(); msgToCurrentClient.Write((byte) PacketTypes.Headers.PlayerRec); msgToCurrentClient.Write(inc.SenderConnection.RemoteUniqueIdentifier); msgToCurrentClient.Write(username); msgToCurrentClient.Write(false); Console.WriteLine("CClient: Sent message about {0} to: {1}", Players[key].Name, username); server.SendMessage(msgToCurrentClient, Players[key].Connection, NetDeliveryMethod.ReliableOrdered); } return newPlayer; }
private static Round NewRound() { int lowestPlayer = 100; var lowestPlayerPlayer = new Player("Debug"); foreach (var p in Players) { if (p.Value.DrawTimes < lowestPlayer) { lowestPlayer = p.Value.DrawTimes; lowestPlayerPlayer = p.Value; } } var ra = new Random(); lowestPlayerPlayer.DrawTimes++; string word = _wordList[ra.Next(0, _wordList.Count)]; Console.WriteLine("Player: {0} is drawing the word {1}", lowestPlayerPlayer.Name, word); return new Round(lowestPlayerPlayer, word); }
private static void HandleMessage(object peer) { NetIncomingMessage inc; while ((inc = _netClient.ReadMessage()) != null) { switch (inc.MessageType) { // Data type is all messages manually sent from client case NetIncomingMessageType.Data: byte pheader = inc.ReadByte(); switch ((PacketTypes.Headers) pheader) { case PacketTypes.Headers.PlayerRec: var uid = inc.ReadInt64(); var username = inc.ReadString(); var readyStatus = inc.ReadBoolean(); Player player = new Player(username, uid, readyStatus); Program.PlayerStore.Add(uid, player); Console.WriteLine(@"Got new player called: {0} with ID {1} and status of {2}", username, uid, readyStatus); Menu.lobby.UpdateDisplay(); break; case PacketTypes.Headers.ReadyUpdate: var puid = inc.ReadInt64(); inc.ReadBoolean(); //status if (Program.PlayerStore.ContainsKey(puid)) { Program.PlayerStore[puid].ToggleReady(); Console.WriteLine(@"{0} changed status to {1}", Program.PlayerStore[puid].Name, Program.PlayerStore[puid].GetReadyStatus()); Menu.lobby.UpdateDisplay(); } break; case PacketTypes.Headers.LoggedIn: Console.WriteLine(@"Server has acked us"); inc.ReadBoolean(); //loginstatus SendText(PacketTypes.Headers.LoggedIn, Program.PlayerUsername); break; case PacketTypes.Headers.YouAreHost: Console.WriteLine(@"We are apparently the host"); Program.AreWeHost = true; Menu.lobby.Lobby_HostStart.Visible = true; break; case PacketTypes.Headers.ChatReceive: var chatUser = inc.ReadString(); var chatMsg = inc.ReadString(); ChatboxHelpers.AppendText(Menu.lobby.Lobby_Chatbox, String.Format("{0} : {1}", chatUser, chatMsg)); ChatboxHelpers.AppendText(Lobby.game.Game_Chatbox, String.Format("{0} : {1}", chatUser, chatMsg)); break; case PacketTypes.Headers.PictureUpdate: { var r = inc.ReadVariableInt32(); var g = inc.ReadVariableInt32(); var b = inc.ReadVariableInt32(); var x = inc.ReadVariableInt32(); var y = inc.ReadVariableInt32(); var size = inc.ReadVariableInt32(); Lobby.game.Game_GamePictureUpdate(r, g, b, x, y, size); } break; case PacketTypes.Headers.StartGame: Menu.lobby.Hide(); Lobby.game.Show(); break; case PacketTypes.Headers.WordMessage: Program.AreWeDrawing = true; Program.Word = inc.ReadString(); Lobby.game.ShowWord(Program.Word); Lobby.game.Game_RemindMe.Visible = true; Lobby.game.UpdateDisplay(); break; case PacketTypes.Headers.NewRound: { Program.TimeLeft = 90; Lobby.game.Game_RemindMe.Visible = false; Program.Drawer = inc.ReadString(); Lobby.game.roundTimer.Start(); Lobby.game.UpdateDisplay(); Lobby.game.ResetPic(); } break; case PacketTypes.Headers.DrawLine: { var r = inc.ReadVariableInt32(); var g = inc.ReadVariableInt32(); var b = inc.ReadVariableInt32(); var x = inc.ReadVariableInt32(); var y = inc.ReadVariableInt32(); var size = inc.ReadVariableInt32(); var x1 = inc.ReadVariableInt32(); var y1 = inc.ReadVariableInt32(); Lobby.game.Game_GamePictureDrawline(r, g, b, x, y, size, x1, y1); } break; default: Console.WriteLine(@"Invalid Packet Header: {0}", pheader); break; } break; case NetIncomingMessageType.StatusChanged: Console.WriteLine(@"---Status Changed---"); Console.WriteLine(_netClient.ConnectionStatus); Console.WriteLine(inc.ReadString()); Console.WriteLine(@"---End---"); break; case NetIncomingMessageType.DiscoveryResponse: Console.WriteLine(@"---Auto Discovery Response---"); Console.WriteLine(inc.ReadString()); Program.AutoDiscoveryIP = inc.SenderEndPoint.Address.ToString(); Console.WriteLine(@"---End---"); break; case NetIncomingMessageType.DebugMessage: case NetIncomingMessageType.ErrorMessage: case NetIncomingMessageType.WarningMessage: case NetIncomingMessageType.VerboseDebugMessage: Console.WriteLine(@"---Debug---"); Console.WriteLine(inc.ReadString()); Console.WriteLine(@"---End---"); break; } } }