1package com.fs.starfarer.api.impl.campaign.intel;
3import java.util.ArrayList;
5import com.fs.starfarer.api.EveryFrameScript;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.PlanetAPI;
8import com.fs.starfarer.api.campaign.StarSystemAPI;
9import com.fs.starfarer.api.campaign.econ.MarketAPI;
10import com.fs.starfarer.api.campaign.econ.MarketAPI.SurveyLevel;
11import com.fs.starfarer.api.campaign.econ.MarketConditionAPI;
12import com.fs.starfarer.api.impl.campaign.ids.Tags;
13import com.fs.starfarer.api.impl.campaign.intel.GenericMissionManager.GenericMissionCreator;
14import com.fs.starfarer.api.util.Misc;
15import com.fs.starfarer.api.util.WeightedRandomPicker;
21 if (planet ==
null)
return null;
31 protected transient WeightedRandomPicker<PlanetAPI>
planetPicker =
null;
36 OUTER:
for (StarSystemAPI system :
Global.
getSector().getStarSystems()) {
38 for (MarketAPI market : Misc.getMarketsInLocation(system)) {
39 if (!market.isHidden())
continue OUTER;
42 for (PlanetAPI planet : system.getPlanets()) {
44 if (Misc.isImportantForReason(planet.getMemoryWithoutUpdate(),
"spm"))
continue;
47 for (MarketConditionAPI mc : planet.getMarket().getConditions()) {
48 if (mc.getGenSpec() !=
null) {
49 weight += mc.getGenSpec().getXpMult();
59 for (PlanetAPI planet :
new ArrayList<PlanetAPI>(
planetPicker.getItems())) {
67 if (planet.hasTag(Tags.NOT_RANDOM_MISSION_TARGET))
return false;
68 if (planet.isStar() || planet.getMarket() ==
null || !planet.getMarket().isPlanetConditionMarketOnly() ||
69 planet.getMarket().getSurveyLevel() == SurveyLevel.FULL) {
72 if (planet.getContainingLocation() !=
null && planet.getContainingLocation().hasTag(Tags.THEME_HIDDEN)) {
static SectorAPI getSector()
List< EveryFrameScript > getActive()
static GenericMissionManager getInstance()
static boolean isValidMissionTarget(PlanetAPI planet)
float getMissionFrequencyWeight()
EveryFrameScript createMissionIntel()
transient WeightedRandomPicker< PlanetAPI > planetPicker