1package com.fs.starfarer.api.impl.campaign.fleets;
3import java.util.ArrayList;
6import org.apache.log4j.Logger;
8import com.fs.starfarer.api.EveryFrameScript;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.BattleAPI;
11import com.fs.starfarer.api.campaign.CampaignEventListener.FleetDespawnReason;
12import com.fs.starfarer.api.campaign.CampaignFleetAPI;
13import com.fs.starfarer.api.campaign.LocationAPI;
14import com.fs.starfarer.api.campaign.listeners.FleetEventListener;
15import com.fs.starfarer.api.util.IntervalUtil;
29 public static class ManagedFleetData {
31 public CampaignFleetAPI fleet;
32 public LocationAPI spawnedFor;
33 public ManagedFleetData(CampaignFleetAPI fleet, LocationAPI spawnedFor) {
35 this.spawnedFor = spawnedFor;
40 protected List<ManagedFleetData>
active =
new ArrayList<ManagedFleetData>();
45 tracker =
new IntervalUtil(interval * 0.75f, interval * 1.25f);
57 return 30f * (0.75f + (float) Math.random() * 0.5f);
68 if (!
tracker.intervalElapsed())
return;
71 tracker.setInterval(next, next);
74 List<ManagedFleetData>
remove =
new ArrayList<ManagedFleetData>();
75 for (ManagedFleetData data :
active) {
76 if (data.fleet.getContainingLocation() ==
null ||
77 !data.fleet.getContainingLocation().getFleets().contains(data.fleet)) {
79 log.info(
"Cleaning up orphaned fleet [" + data.fleet.getNameWithFaction() +
"]");
90 fleet.addEventListener(
this);
91 LocationAPI spawnLoc =
null;
95 ManagedFleetData data =
new ManagedFleetData(fleet, spawnLoc);
97 log.info(
"Spawned fleet [" + fleet.getNameWithFaction() +
"] at hyperloc " + fleet.getLocationInHyperspace());
102 log.debug(
"Maximum number of " + max +
" fleets already in play for [" + getClass().getName() +
"]");
116 for (ManagedFleetData data :
active) {
117 if (data.fleet == fleet) {
static SettingsAPI getSettings()
static Logger getLogger(Class c)
static SectorAPI getSector()
void reportBattleOccurred(CampaignFleetAPI fleet, CampaignFleetAPI primaryWinner, BattleAPI battle)
void reportFleetDespawnedToListener(CampaignFleetAPI fleet, FleetDespawnReason reason, Object param)
void advance(float amount)
List< ManagedFleetData > active
BaseLimitedFleetManager()
abstract int getMaxFleets()
abstract CampaignFleetAPI spawnFleet()
void reportFleetDespawned(CampaignFleetAPI fleet, FleetDespawnReason reason, Object param)
void profilerBegin(String id)