1package com.fs.starfarer.api.impl.campaign.fleets.misc;
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.campaign.CampaignFleetAPI;
7import com.fs.starfarer.api.campaign.econ.MarketAPI;
8import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteData;
9import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteSegment;
10import com.fs.starfarer.api.impl.campaign.fleets.misc.MiscFleetRouteManager.MiscRouteData;
11import com.fs.starfarer.api.impl.campaign.ids.Factions;
12import com.fs.starfarer.api.impl.campaign.procgen.themes.RouteFleetAssignmentAI;
13import com.fs.starfarer.api.util.IntervalUtil;
14import com.fs.starfarer.api.util.Misc;
19 private String origFaction;
20 private IntervalUtil factionChangeTracker =
new IntervalUtil(0.1f, 0.3f);
24 origFaction = route.getFactionId();
27 factionChangeTracker =
null;
29 factionChangeTracker.forceIntervalElapsed();
38 if (creator !=
null) {
41 return super.getStartingActionText(segment);
47 if (creator !=
null) {
50 return super.getEndingActionText(segment);
55 Integer
id = segment.getId();
58 if (creator !=
null) {
65 return super.getTravelActionText(segment);
70 Integer
id = segment.getId();
73 if (creator !=
null) {
80 return super.getInSystemActionText(segment);
84 MiscRouteData data = (MiscRouteData) route.getCustom();
90 super.advance(amount);
97 if (!data.smuggling)
return;
105 factionChangeTracker.advance(days);
106 if (factionChangeTracker.intervalElapsed() && fleet.getAI() !=
null) {
107 List<MarketAPI> markets = Misc.getMarketsInLocation(fleet.getContainingLocation());
108 MarketAPI align =
null;
110 for (MarketAPI market : markets) {
111 int size = market.getSize();
112 if (market.getFaction().isHostileTo(data.factionId)) {
117 }
else if (size > max) {
123 if (align ==
null || fleet.isInHyperspace() ||
124 fleet.getContainingLocation() == data.from.getContainingLocation()) {
130 String targetFac = origFaction;
131 boolean hostile = align.getFaction().isHostileTo(targetFac);
133 targetFac = Factions.INDEPENDENT;
134 hostile = align.getFaction().isHostileTo(targetFac);
137 targetFac = align.getFactionId();
139 if (!fleet.getFaction().getId().equals(targetFac)) {
140 fleet.setFaction(targetFac,
true);
143 String targetFac = origFaction;
144 if (fleet.isInHyperspace()) {
145 targetFac = Factions.INDEPENDENT;
147 if (!fleet.getFaction().getId().equals(targetFac)) {
148 fleet.setFaction(targetFac,
true);
static SectorAPI getSector()
void doSmugglingFactionChangeCheck(float amount)
void advance(float amount)
MiscFleetAssignmentAI(CampaignFleetAPI fleet, RouteData route)
String getInSystemActionText(RouteSegment segment)
String getEndingActionText(RouteSegment segment)
String getTravelActionText(RouteSegment segment)
String getStartingActionText(RouteSegment segment)
static final Integer ROUTE_TRAVEL_SRC
static final Integer ROUTE_DST_UNLOAD
static final Integer ROUTE_DST_LOAD
static MiscFleetCreatorPlugin getCreator(String id)
static final Integer ROUTE_TRAVEL_DST
String getTravelToDestActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data)
String getEndingActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data)
String getTravelReturnActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data)
String getStartingActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data)
String getAtDestLoadActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data)
String getAtDestUnloadActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data)