Ejemplo n.º 1
0
        public void execute(GameSession gameSession, byte[] bytes)
        {
            var newVector = new Vector(0, 0);

            if (gameSession.Player.UsingNewClient)
            {
                var simpleCmd = new SimpleCommand(bytes);
                simpleCmd.readShort();
                var cmd = new MovementRequest(simpleCmd);
                cmd.readCommand();
                newVector = new Vector(cmd.NewX, cmd.NewY);
                Console.WriteLine(JsonConvert.SerializeObject(newVector));
            }
            else
            {
                var parser = new ByteParser(bytes);

                int currentPosX = parser.Int();
                int targetPosY  = parser.Int();
                int targetPosX  = parser.Int();
                int currentPosY = parser.Int();
                newVector = new Vector(targetPosX, targetPosY);
            }
            MovementController.Move(gameSession.Player, newVector);
        }
        public void execute(GameSession gameSession, byte[] bytes)
        {
            var parser = new ByteParser(bytes);

            if (gameSession == null)
            {
                return;
            }
            var targetId = parser.Int();

            // Get if targetId is valid
            var player = gameSession.Player;

            if (player.Selected == null)
            {
                return;
            }

            if (!player.Spacemap.Entities.ContainsKey(targetId) || player.Selected.Id != targetId)
            {
                Debug.WriteLine("Selected ID: " + player.Selected.Id + " Target ID: " + targetId);
                return;
            }
            Debug.WriteLine("Attacking " + targetId);

            player.Controller.Attacking = true;
            player.Controller.LaserAttack();
        }
Ejemplo n.º 3
0
        public void execute(GameSession gameSession, byte[] bytes)
        {
            var parser            = new ByteParser(bytes);
            var targetFormationId = parser.Int();

            gameSession.Player.Controller.Miscs.ChangeDroneFormation((DroneFormation)targetFormationId);
        }
        public void execute(GameSession gameSession, byte[] bytes)
        {
            var parser = new ByteParser(bytes);

            if (gameSession == null)
            {
                return;
            }

            var targetId = parser.Int();

            var spacemap = gameSession.Player.Spacemap;

            try
            {
                foreach (
                    var entry in
                    spacemap.Entities.Where(
                        entry => entry.Value.Id == targetId && gameSession.Player.InRange(entry.Value)))
                {
                    if (entry.Value is Player)
                    {
                        if (!entry.Value.Controller.Targetable)
                        {
                            gameSession.Client.Send(PacketBuilder.LegacyModule("0|A|STM|msg_own_targeting_harmed").Bytes);
                            return;
                        }
                    }
                    gameSession.Player.Selected = entry.Value;
                    gameSession.Client.Send(PacketBuilder.ShipSelectionCommand(entry.Value));
                    return;
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.StackTrace);
            }
        }
Ejemplo n.º 5
0
        public static void Handle(byte[] bytes, GameClient client)
        {
            var parser = new ByteParser(bytes);

            if (parser.CMD_ID == 666)
            {
                new ShipInitalizationHandler(client, parser.Int(), parser.UTF());
                return;
            }

            if (parser.CMD_ID == newcommands.ShipInitializationRequest.ID)
            {
                // Command received => trying to read = #bug
                var simpleCmd = new SimpleCommand(bytes);
                var cmd       = new newcommands.ShipInitializationRequest(simpleCmd);
                cmd.readShort();
                cmd.readCommand();
                new ShipInitalizationHandler(client, cmd.playerId, cmd.sessionId, true);
                return;
            }

            var gameSession = World.StorageManager.GetGameSession(client.UserId);

            if (gameSession != null)
            {
                if (gameSession.Player.UsingNewClient)
                {
                    if (HandledNewClientCommands.ContainsKey(parser.CMD_ID))
                    {
                        HandledNewClientCommands[parser.CMD_ID].execute(gameSession, bytes);
                    }
                }
                else
                {
                    if (HandledCommands.ContainsKey(parser.CMD_ID))
                    {
                        HandledCommands[parser.CMD_ID].execute(gameSession, bytes);
                    }
                }

                if (parser.CMD_ID == LegacyModule.ID || parser.CMD_ID == newcommands.LegacyModule.ID)
                {
                    var packet = parser.UTF();
                    if (packet.Contains('|'))
                    {
                        var splittedPacket = packet.Split('|');
                        if (HandledLegacyCommands.ContainsKey(splittedPacket[0]))
                        {
                            HandledLegacyCommands[splittedPacket[0]].execute(gameSession, splittedPacket);
                        }
                    }
                    else
                    {
                        if (HandledLegacyCommands.ContainsKey(packet))
                        {
                            HandledLegacyCommands[packet].execute(gameSession, new [] { packet });
                        }
                    }
                }
            }
        }