1package com.fs.starfarer.api.impl.campaign.intel.events.ht;
3import java.util.LinkedHashSet;
5import com.fs.starfarer.api.EveryFrameScript;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.CampaignTerrainAPI;
9import com.fs.starfarer.api.campaign.PlanetAPI;
10import com.fs.starfarer.api.campaign.SectorEntityToken;
11import com.fs.starfarer.api.campaign.StarSystemAPI;
12import com.fs.starfarer.api.characters.AbilityPlugin;
13import com.fs.starfarer.api.impl.campaign.ids.Abilities;
14import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
15import com.fs.starfarer.api.impl.campaign.ids.Tags;
16import com.fs.starfarer.api.impl.campaign.ids.Terrain;
17import com.fs.starfarer.api.impl.campaign.terrain.PulsarBeamTerrainPlugin;
18import com.fs.starfarer.api.impl.campaign.terrain.StarCoronaTerrainPlugin;
19import com.fs.starfarer.api.util.IntervalUtil;
20import com.fs.starfarer.api.util.Misc;
36 protected LinkedHashSet<String>
scanned =
new LinkedHashSet<String>();
40 scanned =
new LinkedHashSet<String>();
83 }
else if (burn > 30) {
86 f = (burn - 30) / 10f;
87 }
else if (burn > 20) {
90 f = (burn - 20) / 10f;
93 add = min + (max - min) * f;
113 int points = chunk * mult;
124 if (pf ==
null)
return;
126 if (sb ==
null)
return;
151 if (!(entity instanceof
PlanetAPI))
return;
160 if (eventHorizon ==
null)
return;
162 String id1 = planet.
getId() +
"_1";
163 String id2 = planet.
getId() +
"_2";
165 float closeRange = planet.
getRadius() + 300f;
167 if (dist < closeRange) {
169 addMessage(
"Black hole already scanned at short range");
177 addMessage(
"Black hole already scanned at long range");
187 if (!(entity instanceof
PlanetAPI))
return;
193 if (ionStorm ==
null)
return;
216 String
id = terrain.
getId();
230 if (!(entity instanceof
PlanetAPI))
return;
236 String
id = planet.
getId();
239 boolean inRange = dist < 500f + planet.
getRadius();
254 if (system ==
null)
return;
260 type =
"Center of binary system";
264 type =
"Center of starless nebula";
267 case TRINARY_1CLOSE_1FAR:
268 type =
"Center of binary system";
272 type =
"Center of trinary system";
278 if (!curr.isStar())
continue;
280 if (dist < 2000 + curr.getRadius()) {
285 type =
"Stellar conflux";
294 if (type ==
null)
return;
296 String
id =
"systemtypescan_" + system.
getId();
301 addMessage(
"Center of star system already scanned");
311 if (!(entity instanceof
PlanetAPI))
return;
319 if (corona ==
null)
return;
322 if (pulsar ==
null)
return;
324 String id1 = planet.
getId() +
"_1";
325 String id2 = planet.
getId() +
"_2";
static SectorAPI getSector()
static final String SENSOR_BURST
static final String NO_HIGH_BURN_TOPOGRAPHY_READINGS
static final String MAGNETIC_FIELD
void checkIonStorm(SectorEntityToken entity)
void checkHighBurn(float days)
void checkPulsar(SectorEntityToken entity)
void checkMagneticField(CampaignTerrainAPI terrain)
void checkBlackHole(SectorEntityToken entity)
void addMessage(String text)
void advance(float amount)
void checkGasGiant(SectorEntityToken entity)
LinkedHashSet< String > scanned
float daysSinceAtHighBurn
static int SCAN_BLACK_HOLE_LONG_RANGE
static int MAX_BURN_FOR_POINT_GAIN
static int PER_DAY_AT_BURN_50
static int SCAN_GAS_GIANT
static int PER_DAY_AT_BURN_20
static int BURN_POINT_CHUNK_SIZE
static int SCAN_PULSAR_BEAM
static int SCAN_MAGNETIC_FIELD
static int SCAN_ION_STORM
static int SCAN_BLACK_HOLE_SHORT_RANGE
static int PER_DAY_AT_BURN_40
static int SCAN_NEUTRON_STAR
static int PER_DAY_AT_BURN_30
static void addFactorCreateIfNecessary(EventFactor factor, InteractionDialogAPI dialog)
boolean containsEntity(SectorEntityToken other)
SectorEntityToken getEntity()
float getIntervalDuration()
void advance(float amount)
static Color getNegativeHighlightColor()
static PulsarBeamTerrainPlugin getPulsarFor(PlanetAPI star)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static StarCoronaTerrainPlugin getCoronaFor(PlanetAPI star)
float convertToDays(float realSeconds)
LocationAPI getContainingLocation()
CampaignTerrainPlugin getPlugin()
boolean containsEntity(SectorEntityToken other)
MessageDisplayAPI getMessageDisplay()
List< SectorEntityToken > getAllEntities()
boolean hasTag(String tag)
List< PlanetAPI > getPlanets()
List< CampaignTerrainAPI > getTerrainCopy()
void addMessage(String text)
CampaignFleetAPI getPlayerFleet()
CampaignClockAPI getClock()
CampaignUIAPI getCampaignUI()
StarSystemAPI getStarSystem()
MemoryAPI getMemoryWithoutUpdate()
AbilityPlugin getAbility(String id)
boolean getBoolean(String key)