public void EMP()
        {
            if (EmpCooldown.AddMilliseconds(TimeManager.EMP_COOLDOWN) < DateTime.Now || Player.Storage.GodMode)
            {
                Player.SendCooldown(ServerCommands.EMP_COOLDOWN, TimeManager.EMP_COOLDOWN);
                EmpCooldown = DateTime.Now;

                Player.DeactiveDCR_250();
                Player.DeactiveSLM_01();

                string empPacket = "0|n|EMP|" + Player.Id;
                Player.SendPacket(empPacket);
                Player.SendPacketToInRangePlayers(empPacket);

                foreach (var otherPlayers in Player.Spacemap.Characters.Values)
                {
                    if (otherPlayers is Player otherPlayer && otherPlayer.Selected == Player)
                    {
                        string empMessagePacket = "0|A|STM|msg_own_targeting_harmed";
                        otherPlayer.SendPacket(empMessagePacket);
                        otherPlayer.Selected = null;
                        otherPlayer.DisableAttack(otherPlayer.SettingsManager.SelectedLaser);
                        otherPlayer.SendCommand(ShipDeselectionCommand.write());
                        otherPlayer.SendPacket("0|UI|MM|NOISE");
                    }
                }

                foreach (var otherPlayers in Player.InRangeCharacters.Values)
                {
                    if (otherPlayers is Player otherPlayer)
                    {
                        if (otherPlayer.Position.DistanceTo(Player.Position) > 700)
                        {
                            return;
                        }

                        if (Player.RankId == 21)
                        {
                            otherPlayer.AddVisualModifier(new VisualModifierCommand(otherPlayer.Id, VisualModifierCommand.MIRRORED_CONTROLS, 0, true));
                        }

                        if (otherPlayer.Invisible)
                        {
                            otherPlayer.CpuManager.DisableCloak();
                        }
                    }
                }
            }
        }
Exemple #2
0
        public void Deselection(bool emp = false)
        {
            Selected = null;

            if (this is Player player)
            {
                player.SendCommand(ShipDeselectionCommand.write());
                player.DisableAttack(player.Settings.InGameSettings.selectedLaser);
                player.Group?.UpdateTarget(player, new List <command_i3O> {
                    new GroupPlayerTargetModule(new GroupPlayerShipModule(GroupPlayerShipModule.NONE), "", new GroupPlayerInformationsModule(0, 0, 0, 0, 0, 0))
                });

                if (emp)
                {
                    player.SendPacket("0|A|STM|msg_own_targeting_harmed");
                    player.SendPacket("0|UI|MM|NOISE|1");
                }
            }
            else if (this is Npc npc)
            {
                npc.Attacking      = false;
                npc.NpcAI.AIOption = NpcAIOption.SEARCH_FOR_ENEMIES;
            }
        }