1package com.fs.starfarer.api.impl.campaign.intel.raid;
4import java.util.ArrayList;
7import com.fs.starfarer.api.campaign.SectorEntityToken;
8import com.fs.starfarer.api.campaign.FactionAPI.ShipPickMode;
9import com.fs.starfarer.api.campaign.econ.MarketAPI;
10import com.fs.starfarer.api.impl.campaign.DebugFlags;
11import com.fs.starfarer.api.impl.campaign.fleets.RouteLocationCalculator;
12import com.fs.starfarer.api.impl.campaign.fleets.RouteManager;
13import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.OptionalFleetData;
14import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteData;
15import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteSegment;
16import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
17import com.fs.starfarer.api.impl.campaign.ids.Stats;
18import com.fs.starfarer.api.impl.campaign.intel.inspection.HIAssembleStage;
19import com.fs.starfarer.api.impl.campaign.intel.punitive.PEAssembleStage;
20import com.fs.starfarer.api.impl.campaign.intel.raid.RaidIntel.RaidStageStatus;
21import com.fs.starfarer.api.ui.TooltipMakerAPI;
22import com.fs.starfarer.api.util.IntervalUtil;
23import com.fs.starfarer.api.util.Misc;
24import com.fs.starfarer.api.util.WeightedRandomPicker;
31 protected List<MarketAPI>
sources =
new ArrayList<MarketAPI>();
73 super.advance(amount);
112 if (numShipsMult < 1f) numShipsMult = 1f;
113 mult = 1f / numShipsMult;
114 if (limitToSpawnFP) {
115 return Math.min(
spawnFP, base * mult);
145 protected float getFP(String type) {
160 base *= (1f + ((float) Math.random() - 0.5f) * 0.5f);
177 if (!
interval.intervalElapsed())
return;
180 status = RaidStageStatus.FAILURE;
194 OptionalFleetData extra =
new OptionalFleetData(market);
200 float fp =
getFP(extra.fleetType);
207 float prepDays = 3f + 3f * (float) Math.random();
236 if (
status == RaidStageStatus.FAILURE) {
237 info.
addPara(
"The raiding forces have failed to successfully assemble at the rendezvous point. The raid is now over.", opad);
238 }
else if (curr == index) {
242 info.
addPara(
"The raid is currently assembling at an unknown location.", opad);
float computeEffective(float baseValue)
static boolean PUNITIVE_EXPEDITION_DEBUG
static boolean RAID_DEBUG
static boolean HEGEMONY_INSPECTION_DEBUG
static boolean FAST_RAIDS
static float getTravelDays(SectorEntityToken from, SectorEntityToken to)
RouteData addRoute(String source, MarketAPI market, Long seed, OptionalFleetData extra, RouteFleetSpawner spawner)
static RouteManager getInstance()
static final String PATROL_SMALL
static final String PATROL_LARGE
static final String PATROL_MEDIUM
static final String COMBAT_FLEET_SIZE_MULT
AssembleStage(RaidIntel raid, SectorEntityToken gatheringPoint)
void showStageInfo(TooltipMakerAPI info)
void setSpawnFP(float spawnFP)
void addSource(MarketAPI source)
static final String PREP_STAGE
List< MarketAPI > sources
void addRoutesAsNeeded(float amount)
float getLargeSize(boolean limitToSpawnFP)
static final String WAIT_STAGE
List< MarketAPI > getSources()
void advance(float amount)
SectorEntityToken gatheringPoint
void updateStatusBasedOnReaching(SectorEntityToken dest, boolean giveReturnOrders)
void abortIfNeededBasedOnFP(boolean giveReturnOrders)
String getRouteSourceId()
int getStageIndex(RaidStage stage)
void forceIntervalElapsed()
void advance(float amount)
static Color getTextColor()
static Color getGrayColor()
static float getDays(float amount)
static long genRandomSeed()
static Color getHighlightColor()
static ShipPickMode getShipPickMode(MarketAPI market)
static float getAdjustedStrength(float fp, MarketAPI market)
float getApproximateMaxFPPerFleet(ShipPickMode mode)
String getNameWithLowercaseType()
LocationAPI getContainingLocation()
MutableMarketStatsAPI getStats()
SectorEntityToken getPrimaryEntity()
DynamicStatsAPI getDynamic()
StatBonus getMod(String id)