public Satellite(BattleStation battleStation, int ownerId, string name, int designId, int itemId, int slotId, short type, Position position) : base(battleStation.Spacemap, battleStation.FactionId, position, battleStation.Clan, AssetTypeModule.SATELLITE)
        {
            ShieldAbsorption = 0.8;
            BattleStation    = battleStation;
            OwnerId          = ownerId;
            Name             = name;
            DesignId         = designId;
            ItemId           = itemId;
            SlotId           = slotId;
            Type             = type;

            MaxHitPoints        = 100000;
            CurrentHitPoints    = MaxHitPoints;
            CurrentShieldPoints = 100000;
            MaxShieldPoints     = 100000;

            Program.TickManager.AddTick(this);
        }
        public new void Tick()
        {
            if (!Installed)
            {
                var player = GameManager.GetPlayerById(OwnerId);

                if (InstallationSecondsLeft > 0)
                {
                    if (BattleStation.AssetTypeId == AssetTypeModule.ASTEROID)
                    {
                        if (player == null || player.Position.DistanceTo(BattleStation.Position) > 700)
                        {
                            Remove(false, true, true);
                        }
                    }

                    if (installationTime.AddSeconds(1) < DateTime.Now)
                    {
                        InstallationSecondsLeft--;
                        installationTime = DateTime.Now;
                    }
                }
                else if (InstallationSecondsLeft <= 0)
                {
                    Installed = true;

                    if (BattleStation.AssetTypeId == AssetTypeModule.BATTLESTATION)
                    {
                        RemoveVisualModifier(VisualModifierCommand.BATTLESTATION_INSTALLING);
                    }

                    if (player != null)
                    {
                        BattleStation.Click(player.GameSession);
                    }

                    QueryManager.BattleStations.Modules(BattleStation);
                }
            }
            else if (Installed)
            {
                if (BattleStation.AssetTypeId == AssetTypeModule.BATTLESTATION)
                {
                    if (Type != StationModuleModule.DEFLECTOR && Type != StationModuleModule.HULL && Type != StationModuleModule.NONE &&
                        Type != StationModuleModule.DAMAGE_BOOSTER && Type != StationModuleModule.EXPERIENCE_BOOSTER &&
                        Type != StationModuleModule.HONOR_BOOSTER && Type != StationModuleModule.REPAIR)
                    {
                        foreach (var character in Spacemap.Characters.Values)
                        {
                            if (character is Player || character is Pet)
                            {
                                Attack(character);
                            }
                        }
                    }
                    else if (Type == StationModuleModule.REPAIR)
                    {
                        RepairModules();
                    }
                }
            }
        }