protected override void ConsumePacket(Connection connection, NewPlayerPacket packet)
        {
            var player = new Entity(packet.SteamId)
            {
                X = packet.X,
                Y = packet.Y
            };

            _gameScreen.AddPlayer(player);
        }
        public static void SetupPlayerField(string playerDataString, out int thisID)
        {
            string[] data       = playerDataString.Split(',');
            bool     thisPlayer = false;

            for (int i = 0; i < data.Length; i++)
            {
                thisPlayer = i == data.Length - 1 ? true : false;
                GameScreen.AddPlayer(data[i], "Alive", thisPlayer);
            }
            thisID = data.Length;
        }
Exemple #3
0
        public int Check()
        {
            NetIncomingMessage message;
            OpenedPacket       packet = new OpenedPacket();

            if (client.ConnectionStatus == NetConnectionStatus.Connected && connecting == true)
            {
                connecting = false;
            }
            if (connecting == false)
            {
                if (client.ConnectionStatus == NetConnectionStatus.Disconnected)
                {
                    game.SetScreen(new MenuScreen(game));
                }
            }
            while ((message = client.ReadMessage()) != null)
            {
                switch (message.MessageType)
                {
                case NetIncomingMessageType.Data:
                    int type = message.ReadByte();
                    if (type == ServerPackets.PLAYERINFORMATION)
                    {
                        bool   mine        = false;
                        string name        = message.ReadString();
                        int    x           = message.ReadInt32();
                        int    y           = message.ReadInt32();
                        int    id          = message.ReadInt32();
                        string playerClass = message.ReadString();
                        int    playerRole  = message.ReadInt32();

                        PlayerPacket pPacket = new PlayerPacket(ServerPackets.PLAYERINFORMATION, x, y, name, id, playerClass, playerRole);
                        if (pPacket.name == userName)
                        {
                            mine = true;
                        }
                        else
                        {
                            Console.WriteLine(String.Format("{0} joined the world!", name));
                        }

                        if (playerClass == CharacterSelections.NONE)
                        {
                            if (mine)
                            {
                                return(CheckConstants.CHARACTERSELECT);
                            }
                        }
                        else
                        {
                            gameScreen.AddPlayer(new Player(pPacket.id, pPacket.name, pPacket.x, pPacket.y, mine, this, pPacket.playerClass, pPacket.playerRole, gameScreen));
                        }
                    }
                    else if (type == ServerPackets.POSITION)
                    {
                        int            id      = message.ReadInt32();
                        int            x       = message.ReadInt32();
                        int            y       = message.ReadInt32();
                        PositionPacket pPacket = new PositionPacket(ServerPackets.POSITION, id, x, y);

                        Player posPlayer = gameScreen.GetPlayerByID(pPacket.playerID);
                        if (posPlayer != null)
                        {
                            posPlayer.SetPosition(new Vector2(pPacket.x, pPacket.y));
                        }
                    }
                    else if (type == ServerPackets.LEAVINGPLAYER)
                    {
                        int id = message.ReadInt32();
                        gameScreen.RemovePlayerByID(id);
                    }
                    else if (type == ServerPackets.CHATPACKET)
                    {
                        int    id     = message.ReadInt32();
                        string text   = message.ReadString();
                        Player player = gameScreen.GetPlayerByID(id);
                        gameScreen.AddChat(new ChatHolder(player, text));
                    }
                    else if (type == ServerPackets.ENEMYSPAWN)
                    {
                        int   enemyType       = message.ReadInt32();
                        int   enemyX          = message.ReadInt32();
                        int   enemyY          = message.ReadInt32();
                        bool  enemyAggressive = message.ReadBoolean();
                        int   netID           = message.ReadInt32();
                        Enemy enemy           = new Enemy(new Vector2(enemyX, enemyY), enemyType, enemyAggressive, netID, gameScreen);
                        gameScreen.AddEntity(enemy);
                        gameScreen.AddEnemy(enemy);
                    }
                    else if (type == ServerPackets.ENEMYMOVE)
                    {
                        int   x  = message.ReadInt32();
                        int   y  = message.ReadInt32();
                        int   id = message.ReadInt32();
                        Enemy e  = gameScreen.GetEnemyByID(id);
                        if (e != null)
                        {
                            e.Move(x, y);
                        }
                    }
                    else if (type == ServerPackets.ENEMYDESTINATION)
                    {
                        int   destX = message.ReadInt32();
                        int   destY = message.ReadInt32();
                        int   id    = message.ReadInt32();
                        Enemy e     = gameScreen.GetEnemyByID(id);
                        if (e != null)
                        {
                            e.SetDestination(destX, destY);
                        }
                    }
                    else if (type == ServerPackets.ENEMYSTOP)
                    {
                        int   id = message.ReadInt32();
                        Enemy e  = gameScreen.GetEnemyByID(id);
                        if (e != null)
                        {
                            e.ClearDestination();
                        }
                    }

                    break;

                case NetIncomingMessageType.StatusChanged:
                    //SortConnections(message);
                    break;

                case NetIncomingMessageType.DebugMessage:
                    try
                    {
                        if (ServerInfo.DEBUG)
                        {
                            Console.WriteLine(message.ReadString());
                        }
                    } catch (Exception e) { Console.Write(e); }
                    break;

                case NetIncomingMessageType.ErrorMessage:
                    try
                    {
                        if (ServerInfo.DEBUG)
                        {
                            Console.WriteLine(message.ReadString());
                        }
                    } catch (Exception e) { Console.Write(e); }
                    break;

                default:
                    break;
                }
            }
            if (packet.PacketType >= 0)
            {
                Use(packet);
            }
            return(CheckConstants.FULFILLED);
        }