1package com.fs.starfarer.api.impl.campaign.procgen.themes;
4import java.util.Random;
6import org.lwjgl.util.vector.Vector2f;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.FleetAssignment;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.campaign.StarSystemAPI;
13import com.fs.starfarer.api.campaign.SectorEntityToken.VisibilityLevel;
14import com.fs.starfarer.api.campaign.ai.CampaignFleetAIAPI.EncounterOption;
15import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteData;
16import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteSegment;
17import com.fs.starfarer.api.impl.campaign.ids.Factions;
18import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
19import com.fs.starfarer.api.util.IntervalUtil;
20import com.fs.starfarer.api.util.Misc;
37 return "on a salvage expedition";
50 if (pickSpecificEntity) {
60 float seconds = dist / speed;
62 days += 5f + 5f * (float) Math.random();
71 float days = 5f + 5f * (float) Math.random();
75 super.addLocalAssignment(segment, justSpawned);
82 super.advance(amount);
103 if (isCurrentlyPirate) {
105 if (visible.isEmpty()) {
113 if (visible.size() == 1) {
119 if (option == EncounterOption.ENGAGE || option == EncounterOption.HOLD) {
121 VisibilityLevel level = other.getVisibilityLevelTo(
fleet);
122 boolean seesComp = level == VisibilityLevel.COMPOSITION_AND_FACTION_DETAILS ||
123 level == VisibilityLevel.COMPOSITION_DETAILS;
124 if (dist < 800f && seesComp) {
131 if (weakerCount == 1) {
static SectorAPI getSector()
static final String PIRATES
static final String INDEPENDENT
static final String MEMORY_KEY_PIRATE
static SectorEntityToken pickEntityToGuard(Random random, StarSystemAPI system, CampaignFleetAPI fleet)
void addLocalAssignment(RouteSegment segment, boolean justSpawned)
void advance(float amount)
ScavengerFleetAssignmentAI(CampaignFleetAPI fleet, RouteData route, boolean pirate)
String getInSystemActionText(RouteSegment segment)
String getTravelActionText(RouteSegment segment)
void advance(float amount)
static List< CampaignFleetAPI > getVisibleFleets(SectorEntityToken from, boolean includeSensorContacts)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static Vector2f getPointAtRadius(Vector2f from, float r)
static float getSpeedForBurnLevel(float burnLevel)
static void clearTarget(CampaignFleetAPI fleet, boolean forgetTransponder)
float convertToDays(float realSeconds)
CampaignFleetAIAPI getAI()
void setFaction(String factionId, boolean includeCaptains)
void setNoFactionInName(boolean noFactionInName)
void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays)
void setLocation(float x, float y)
boolean isHostileTo(FactionAPI other)
CampaignClockAPI getClock()
FactionAPI getFaction(String factionId)
LocationAPI getContainingLocation()
MemoryAPI getMemoryWithoutUpdate()
boolean isTransponderOn()
EncounterOption pickEncounterOption(FleetEncounterContextPlugin context, CampaignFleetAPI otherFleet)
SectorEntityToken getPrimaryEntity()
void set(String key, Object value)