1package com.fs.starfarer.api.impl.campaign.procgen.themes;
3import java.util.Random;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.SectorEntityToken;
10import com.fs.starfarer.api.campaign.StarSystemAPI;
11import com.fs.starfarer.api.combat.BattleCreationContext;
12import com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.BaseFIDDelegate;
13import com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.FIDConfig;
14import com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.FIDConfigGen;
15import com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3;
16import com.fs.starfarer.api.impl.campaign.fleets.FleetParamsV3;
17import com.fs.starfarer.api.impl.campaign.fleets.SeededFleetManager;
18import com.fs.starfarer.api.impl.campaign.ids.Abilities;
19import com.fs.starfarer.api.impl.campaign.ids.Factions;
20import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
21import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
22import com.fs.starfarer.api.impl.campaign.ids.Tags;
23import com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator;
24import com.fs.starfarer.api.util.Misc;
25import com.fs.starfarer.api.util.WeightedRandomPicker;
99 public static class RemnantFleetInteractionConfigGen
implements FIDConfigGen {
100 public FIDConfig createConfig() {
101 FIDConfig config =
new FIDConfig();
102 config.showTransponderStatus =
false;
103 config.delegate =
new BaseFIDDelegate() {
160 bcc.aiRetreatAllowed =
false;
180 for (
int i = 0; i < num; i++) {
188 Random random =
new Random(seed);
211 params.withOfficers =
false;
212 params.random = random;
215 if (fleet ==
null)
return null;
218 fleet.
setFacing(random.nextFloat() * 360f);
224 for (SeededFleet f :
fleets) {
225 if (f.fleet !=
null) numActive++;
234 if (target !=
null) {
239 random.nextFloat() * 360f,
241 25f + 5f * random.nextFloat());
261 picker.
add(entity, w);
265 picker.
add(entity, 1f);
268 return picker.
pick();
274 if (random ==
null) random =
new Random();
307 long salvageSeed = random.nextLong();
313 new RemnantFleetInteractionConfigGen());
static CampaignFleetAPI createFleet(FleetParamsV3 params)
List< SeededFleet > fleets
static final String SENSOR_BURST
static final String GO_DARK
static final String EMERGENCY_BURN
static final String REMNANTS
static final String PATROL_SMALL
static final String PATROL_LARGE
static final String PATROL_MEDIUM
static final String MEMORY_KEY_NO_JUMP
static final String FLEET_INTERACTION_DIALOG_CONFIG_OVERRIDE_GEN
static final String MEMORY_KEY_PATROL_FLEET
static final String MEMORY_KEY_MAKE_HOLD_VS_STRONGER
static final String MEMORY_KEY_MAKE_ALLOW_DISENGAGE
static final String MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_ON
static final String MEMORY_KEY_MAKE_AGGRESSIVE
static final String SALVAGE_SEED
static final String MEMORY_KEY_ALLOW_LONG_PURSUIT
static void addRemnantInteractionConfig(CampaignFleetAPI fleet)
static void initRemnantFleetProperties(Random random, CampaignFleetAPI fleet, boolean dormant)
static SectorEntityToken pickEntityToGuard(Random random, StarSystemAPI system, CampaignFleetAPI fleet)
RemnantSeededFleetManager(StarSystemAPI system, int minFleets, int maxFleets, int minPts, int maxPts, float activeChance)
CampaignFleetAPI spawnFleet(long seed)
static Vector2f getPointAtRadius(Vector2f from, float r)
void setNullAIActionText(String nullAIActionText)
void setAI(CampaignFleetAIAPI campaignFleetAI)
void setLocation(float x, float y)
List< SectorEntityToken > getJumpPoints()
List< SectorEntityToken > getEntitiesWithTag(String tag)
void addEntity(SectorEntityToken entity)
void setCircularOrbit(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays)
void removeAbility(String id)
void addScript(EveryFrameScript script)
void setFacing(float facing)
MemoryAPI getMemoryWithoutUpdate()
void setTransponderOn(boolean transponderOn)
void set(String key, Object value)