Inheritance: System.EventArgs
Exemplo n.º 1
0
        private void DespawnMapItem(PacketReceivedEventArgs args)
        {
            var mapItemX = args.Message.ReadInt32();
            var mapItemY = args.Message.ReadInt32();

            if (Client.InGame)
            {
                this.Map.RemoveMapItem(mapItemX, mapItemY);
            }
        }
Exemplo n.º 2
0
        private void HandleMapCheck(PacketReceivedEventArgs args)
        {
            var mapName = args.Message.ReadString();
            var mapVersion = args.Message.ReadInt32();

            var mapExistence = File.Exists(Constants.FILEPATH_CACHE + "Maps/" + mapName + ".map");

            var mapVersionMatch = false;

            if (mapExistence == true)
            {
                this.Map = new World.Map();
                this.Map.LoadCache(mapName);
                mapVersionMatch = (this.Map.Version == mapVersion);
            }

            var net = ServiceLocator.NetManager;
            var packet = new Packet(PacketType.MapCheckPacket);

            packet.Message.Write(mapExistence & mapVersionMatch);

            net.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
Exemplo n.º 3
0
        private void HandleInventoryUpdate(PacketReceivedEventArgs args)
        {
            var inventoryItemCount = args.Message.ReadInt32();

            var player = this.GetPlayer(this.ClientID);

            player.ClearInventory();

            for (int i = 0; i < inventoryItemCount; i++)
            {
                var itemName = args.Message.ReadString();
                var itemTextureNum = args.Message.ReadInt32();

                player.AddInventoryItem(new Item(itemName, itemTextureNum));
            }
        }
Exemplo n.º 4
0
        private void HandleUpdateStats(PacketReceivedEventArgs args)
        {
            var playerHp = args.Message.ReadInt32();
            var playerMp = args.Message.ReadInt32();

            this.GetPlayer(this.ClientID).Hp = playerHp;
        }
Exemplo n.º 5
0
        private void HandleRegistration(PacketReceivedEventArgs args)
        {
            // Alright, so when the player rec. the go ahead to get into the game, this code will go through
            if (args.Message.ReadBoolean())
            {
                (ServiceLocator.ScreenManager.ActiveScreen as MenuScreen).SetMenuStatus(args.Message.ReadString());

                this.ClientID = args.Message.ReadInt64();

                ServiceLocator.ScreenManager.SetActiveScreen("gameScreen");
            }
            else
            {
                // This should NEVER be true if all is well.
                Debug.Assert(ServiceLocator.ScreenManager.ActiveScreen is MenuScreen, "Graphical transition error!");
                (ServiceLocator.ScreenManager.ActiveScreen as MenuScreen).SetMenuStatus(args.Message.ReadString());
            }
        }
Exemplo n.º 6
0
        private void HandlePlayerMovement(PacketReceivedEventArgs args)
        {
            var id = args.Message.ReadInt64();
            var x = args.Message.ReadInt32();
            var y = args.Message.ReadInt32();
            var direction = (Directions)args.Message.ReadByte();

            this.GetPlayer(id).Move(x, y, direction);
        }
Exemplo n.º 7
0
        private void HandlePlayerData(PacketReceivedEventArgs args)
        {
            var id = args.Message.ReadInt64();
            var playerName = args.Message.ReadString();
            var level = args.Message.ReadInt32();
            var positionX = args.Message.ReadInt32();
            var positionY = args.Message.ReadInt32();
            var direction = args.Message.ReadByte();
            var textureNumber = args.Message.ReadInt32();

            var player = new Player(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("character" + textureNumber), new Vector2i(positionX, positionY));
            this.AddPlayer(id, player);

            if (id == this.ClientID)
            {
                Client.InGame = true;
            }
        }
Exemplo n.º 8
0
        private void HandleLogout(PacketReceivedEventArgs args)
        {
            long clientID = args.Message.ReadInt64();

            if (this.ClientID == clientID)
            {
                ServiceLocator.ScreenManager.SetActiveScreen("mainMenu");

                this.ClearPlayers();

                return;
            }

            this.RemovePlayer(clientID);
        }
Exemplo n.º 9
0
        private void HandleLogin(PacketReceivedEventArgs args)
        {
            if (args.Message.ReadBoolean())
            {
                (ServiceLocator.ScreenManager.ActiveScreen as MenuScreen).SetMenuStatus(args.Message.ReadString());

                this.ClientID = args.Message.ReadInt64();

                ServiceLocator.ScreenManager.SetActiveScreen("gameScreen");
            }
            else
            {
                // This should NEVER be true if all is well.
                Debug.Assert(ServiceLocator.ScreenManager.ActiveScreen is MenuScreen, "Graphical transition error!");
                (ServiceLocator.ScreenManager.ActiveScreen as MenuScreen).SetMenuStatus(args.Message.ReadString());
            }
        }
Exemplo n.º 10
0
        public void Update()
        {
            NetIncomingMessage message;
            while ((message = _netClient.ReadMessage()) != null)
            {
                switch (message.MessageType)
                {
                    case NetIncomingMessageType.Data:
                        PacketType packetType = (PacketType)message.ReadInt16();

                        if (_packetHandlers.ContainsKey(packetType))
                        {
                            PacketReceivedEventArgs args = new PacketReceivedEventArgs(message);

                            foreach (var handler in _packetHandlers[packetType])
                                handler.Invoke(args);
                        }
                        break;

                    case NetIncomingMessageType.DiscoveryResponse:
                        _netClient.Connect(message.SenderEndPoint);
                        break;
                }

                _netClient.Recycle(message);
            }

            if (_packetCache.Count > 0 && _netClient.ConnectionStatus == NetConnectionStatus.Connected)
            {
                this.SendPacketCache();
            }
        }
Exemplo n.º 11
0
        private void HandleChatMessage(PacketReceivedEventArgs args)
        {
            var message = args.Message.ReadString();

            this.AddChatMessage(message, Color.White);
        }
Exemplo n.º 12
0
        private void HandleAlertMessage(PacketReceivedEventArgs args)
        {
            var alertTitle = args.Message.ReadString();
            var alertMessage = args.Message.ReadString();
            var alertX = args.Message.ReadInt32();
            var alertY = args.Message.ReadInt32();
            var r = args.Message.ReadByte();
            var g = args.Message.ReadByte();
            var b = args.Message.ReadByte();
            var alertColor = new Color(r, g, b);

            this.DisplayAlert(alertTitle, alertMessage, alertX, alertY, alertColor);
        }
Exemplo n.º 13
0
        private void HandleMapData(PacketReceivedEventArgs args)
        {
            var map = new Map
            {
                Name = args.Message.ReadString(),
                Version = args.Message.ReadInt32()
            };

            map.ResizeMap(args.Message.ReadInt32(), args.Message.ReadInt32());

            for (int x = 0; x < map.Width; x++)
            {
                for (int y = 0; y < map.Height; y++)
                {
                    map.SetTile(x, y, new Map.Tile());

                    map.GetTile(x, y).Blocked = args.Message.ReadBoolean();

                    foreach (Map.Layers layer in Enum.GetValues(typeof(Map.Layers)))
                    {
                        if (!args.Message.ReadBoolean()) continue;

                        var textureNumber = args.Message.ReadInt32();
                        var left = args.Message.ReadInt32();
                        var top = args.Message.ReadInt32();
                        var width = args.Message.ReadInt32();
                        var height = args.Message.ReadInt32();

                        var textureRect = new IntRect(left, top, width, height);

                        var tileSprite = new Sprite(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("tileset" + textureNumber.ToString()))
                        {
                            TextureRect = textureRect
                        };

                        map.GetTile(x, y).SetLayer(layer, new Map.Tile.Layer(tileSprite, x, y));
                    }
                }
            }

            var mapNpcCount = args.Message.ReadInt32();

            for (int i = 0; i < mapNpcCount; i++)
            {
                var npc = new Npc()
                {
                    Name = args.Message.ReadString(),
                    Level = args.Message.ReadInt32(),
                    Sprite = new Sprite(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("npc" + args.Message.ReadInt32())),
                };
                var position = args.Message.ReadVector();
                npc.Position = new SFML.System.Vector2i(position.X, position.Y);
            }

            map.CacheMap();
            this.Map = map;

            // Notify the server that we're now in the game.
            var net = ServiceLocator.NetManager;
            var packet = new Packet(PacketType.MapCheckPacket);
            packet.Message.Write(true);
            net.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
Exemplo n.º 14
0
        private void SpawnMapItem(PacketReceivedEventArgs args)
        {
            var name = args.Message.ReadString();
            var textureNumber = args.Message.ReadInt32();
            var x = args.Message.ReadInt32();
            var y = args.Message.ReadInt32();
            var duration = args.Message.ReadInt32();

            var item = new Item(name, textureNumber)
            {
                Sprite =
                {
                    Position = new Vector2f(x * 32, y * 32)
                }
            };

            this.Map.SpawnMapItem(item, x, y, duration);
        }