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(); } } } }