Exemple #1
0
 public Round(Player drawer, string word)
 {
     Drawer = drawer;
     Word = word;
 }
Exemple #2
0
        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;
        }
Exemple #3
0
 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);
 }
Exemple #4
0
        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;
                }
            }
        }