1package com.fs.starfarer.api.impl.campaign.intel.group;
4import java.util.Random;
8import org.lwjgl.util.vector.Vector2f;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.FactionAPI;
13import com.fs.starfarer.api.campaign.SectorEntityToken;
14import com.fs.starfarer.api.campaign.StarSystemAPI;
15import com.fs.starfarer.api.campaign.econ.MarketAPI;
16import com.fs.starfarer.api.impl.campaign.ids.Factions;
17import com.fs.starfarer.api.impl.campaign.ids.Industries;
18import com.fs.starfarer.api.impl.campaign.intel.group.FGRaidAction.FGRaidParams;
19import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
20import com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission;
21import com.fs.starfarer.api.ui.Alignment;
22import com.fs.starfarer.api.ui.TooltipMakerAPI;
23import com.fs.starfarer.api.util.Misc;
24import com.fs.starfarer.api.util.WeightedRandomPicker;
61 FGRaidParams params =
new FGRaidParams();
63 params.allowedTargets.add(gilead);
64 params.allowedTargets.add(asher);
86 if (
route !=
null &&
route.getExtra() !=
null) {
87 damage =
route.getExtra().damage;
89 if (damage ==
null) damage = 0f;
106 for (Integer i : picker.
getItems()) total += i;
108 float spawnsToSkip = total * damage * 0.5f;
114 if (skipped < spawnsToSkip &&
getRandom().nextFloat() < damage) {
132 if (fleet !=
null &&
route !=
null) {
149 if (mode == ListInfoMode.MESSAGES) {
153 if (untilDeparture > 0) {
154 addETABulletPoints(
null,
null,
false, untilDeparture, ETAType.DEPARTURE, info, tc, initPad);
156 if (untilRaid > 0 &&
getSource().getContainingLocation() != system) {
168 if (mode == ListInfoMode.INTEL && curr !=
null && curr.
getId().equals(
RAID_ACTION)) {
172 if (mode != ListInfoMode.IN_DESC &&
isEnding()) {
174 info.
addPara(
"The raiding forces have been defeated and scatter", tc, initPad);
183 info.
addPara(
"The raiding forces have been defeated and scatter", tc, initPad);
192 info.
addPara(
"The raiding forces are withdrawing", tc, initPad);
194 info.
addPara(
"The raiding forces have been defeated and scatter", tc, initPad);
211 return super.shouldSendIntelUpdateWhenActionFinished(action);
234 if (targets.isEmpty()) {
235 info.
addPara(
"There are no colonies for the raid to target in the system.", opad);
239 boolean potentialDanger =
addStrengthDesc(info, opad, system,
"raiding forces",
240 "the raid is unlikely to find success",
241 "the raid's outcome is uncertain",
242 "the raid is likely to find success");
244 if (potentialDanger) {
246 "should be safe from the raid",
247 "are at risk of being raided and losing stability:",
264 info.
addPara(
"The raiding forces have been defeated and any "
265 +
"remaining ships are retreating in disarray.", opad);
267 info.
addPara(
"The raid was successful and the raiding forces are withdrawing.", opad);
268 }
else if (curr !=
null) {
278 info.
addPara(
"Conducting operations in the " +
static SectorAPI getSector()
static final String LUDDIC_CHURCH
static final String PIRATES
static final String FARMING
static final String MEGAPORT
boolean isActionFinished()
float getSuccessFraction()
List< CampaignFleetAPI > fleets
void addArrivedBulletPoint(String destName, Color destHL, TooltipMakerAPI info, Color tc, float initPad)
void createRoute(String factionId, int approximateTotalDifficultyPoints, int approximateNumberOfFleets, Object custom)
FGAction getCurrentAction()
void addETABulletPoints(String destName, Color destHL, boolean withDepartedText, float eta, ETAType type, TooltipMakerAPI info, Color tc, float initPad)
void showMarketsInDanger(TooltipMakerAPI info, float opad, float width, StarSystemAPI system, List< MarketAPI > targets, String safeStr, String riskStr, String riskStrHighlight)
static String ABORT_UPDATE
float getETAUntil(String actionId)
void addAction(FGAction action, String id)
boolean addStrengthDesc(TooltipMakerAPI info, float opad, StarSystemAPI system, String forces, String outcomeFailure, String outcomeUncertain, String outcomeSuccess)
void setFaction(String factionId)
static void setLocationAndCoordinates(CampaignFleetAPI fleet, RouteSegment current)
SectorEntityToken getSource()
void addNonUpdateBulletPoints(TooltipMakerAPI info, Color tc, Object param, ListInfoMode mode, float initPad)
void addUpdateBulletPoints(TooltipMakerAPI info, Color tc, Object param, ListInfoMode mode, float initPad)
static String PREPARE_ACTION
static String RETURN_ACTION
void addBasicDescription(TooltipMakerAPI info, float width, float height, float opad)
void addStatusSection(TooltipMakerAPI info, float width, float height, float opad)
static String TRAVEL_ACTION
boolean isPlayerTargeted()
static String RAID_ACTION
boolean shouldSendIntelUpdateWhenActionFinished(FGAction action)
SectorEntityToken getDestination()
void addAssessmentSection(TooltipMakerAPI info, float width, float height, float opad)
CampaignFleetAPI createFleet()
void createQualityFleet(int difficulty, String factionId, Vector2f locInHyper)
static void addStandardMarketDesc(String prefix, MarketAPI market, TooltipMakerAPI info, float pad)
void triggerMakeNoRepImpact()
void setFleetDamageTaken(float damage)
void setFleetSource(MarketAPI... preferred)
void triggerSetPirateFleet()
static String ucFirst(String str)
static Color getHighlightColor()
String getPersonNamePrefixAOrAn()
String getEntityNamePrefix()
String getNameWithLowercaseTypeShort()
LocationAPI getContainingLocation()
StarSystemAPI getStarSystem()
SectorEntityToken getHyperspaceAnchor()
SectorEntityToken getCenter()
MarketAPI getMarket(String id)
Vector2f getLocationInHyperspace()
SectorEntityToken getPrimaryEntity()