1package com.fs.starfarer.api.impl.campaign.intel.group;
3import java.util.Random;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.FleetAssignment;
10import com.fs.starfarer.api.campaign.SectorEntityToken;
11import com.fs.starfarer.api.characters.PersonAPI;
12import com.fs.starfarer.api.combat.MutableStatWithTempMods;
13import com.fs.starfarer.api.impl.campaign.NPCHassler;
14import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
15import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
16import com.fs.starfarer.api.impl.campaign.ids.People;
17import com.fs.starfarer.api.impl.campaign.ids.Ranks;
18import com.fs.starfarer.api.impl.campaign.ids.Skills;
19import com.fs.starfarer.api.impl.campaign.intel.events.HostileActivityEventIntel;
20import com.fs.starfarer.api.impl.campaign.intel.events.PerseanLeagueHostileActivityFactor;
21import com.fs.starfarer.api.impl.campaign.intel.group.FGBlockadeAction.FGBlockadeParams;
22import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
23import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
24import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
25import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum;
26import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality;
27import com.fs.starfarer.api.ui.TooltipMakerAPI;
28import com.fs.starfarer.api.util.Misc;
36 public static final String
ARMADA =
"$PLB_armada";
37 public static final String
SUPPLY =
"$PLB_supply";
38 public static final String
GENERIC =
"$PLB_generic";
41 public static final String
BLOCKADING =
"$PLB_isBlockading";
43 public static String
KEY =
"$plBlockade_ref";
55 if (reynard !=
null) {
67 if (reynard !=
null) {
114 }
else if (supplyFleet) {
118 for (Integer i :
params.fleetSizes) total += i;
120 FleetSize supplyFleetSize = FleetSize.MEDIUM;
122 supplyFleetSize = FleetSize.SMALL;
123 }
else if (total >= 80) {
124 supplyFleetSize = FleetSize.LARGE;
151 if (fleet !=
null && !armada && !supplyFleet) {
155 if (fleet !=
null && armada) {
177 super.advance(amount);
183 curr.getMemoryWithoutUpdate().set(
BLOCKADING,
false);
190 curr.getMemoryWithoutUpdate().set(
BLOCKADING,
true);
200 super.periodicUpdate();
218 if (curr.getMemoryWithoutUpdate().getBoolean(
ARMADA)) {
221 if (curr.getMemoryWithoutUpdate().getBoolean(
SUPPLY)) {
226 if (armada <= 0 || supply <= 0) {
239 if (curr.getMemoryWithoutUpdate().getBoolean(
SUPPLY)) {
243 curr.clearAssignments();
246 if (supplyIndex == 1) {
248 if (jp != resupplyLoc) {
255 "standing by to provide resupply");
257 }
else if (curr.getMemoryWithoutUpdate().getBoolean(
ARMADA)) {
273 info.
addPara(
"The blockading forces are led by a Grand Armada and "
274 +
"supported by a pair of supply fleets.", opad);
static SectorAPI getSector()
void addTemporaryModMult(float durInDays, String source, String desc, float value)
static final String LEAGUE_ARMADA
static final String SUPPLY_FLEET
static final String HASSLE_TYPE
static final String MEMORY_KEY_FLEET_DO_NOT_GET_SIDETRACKED
static final String WILL_HASSLE_PLAYER
static final String FLEET_BUSY
static String REYNARD_HANNAN
static PersonAPI getPerson(String id)
static String SPACE_ADMIRAL
static final String COORDINATED_MANEUVERS
static final String CREW_TRAINING
static final String CARRIER_GROUP
static final String TACTICAL_DRILLS
MutableStatWithTempMods getNumFleetsStat(StarSystemAPI system)
static HostileActivityEventIntel get()
static final String HASSLE_REASON
FGBlockadeParams blockadeParams
List< SectorEntityToken > getBlockadePoints()
SectorEntityToken getPrimary()
FGAction getCurrentAction()
boolean isSpawnedFleets()
void setNeverStraggler(CampaignFleetAPI fleet)
List< CampaignFleetAPI > getFleets()
boolean isCurrent(String id)
void setFleetCreatorQualityFromRoute(FleetCreatorMission m)
StarSystemAPI getTargetSystem()
static String PAYLOAD_ACTION
static String RETURN_ACTION
static final String GENERIC
static final String SUPPLY
static final String ARMADA
void advance(float amount)
static final String BLOCKADING
static float NUM_OTHER_FLEETS_MULT
CampaignFleetAPI createFleet(int size, float damage)
PerseanLeagueBlockade(GenericRaidParams params, FGBlockadeParams blockadeParams)
void addPostAssessmentSection(TooltipMakerAPI info, float width, float height, float opad)
CampaignFleetAPI createFleet()
void triggerSetFleetComposition(float freighterMult, float tankerMult, float transportMult, float linerMult, float utilityMult)
void triggerFleetMakeFaster(boolean navigationSkill, int numTugs, boolean allowLongPursuit)
void triggerMakeAlwaysSpreadTOffHostility()
void triggerFleetAddCommanderSkill(String skill, int level)
void triggerMakeLowRepImpact()
void triggerSetFleetType(String fleetType)
void setFleetDamageTaken(float damage)
void triggerSetFleetOfficers(OfficerNum num, OfficerQuality quality)
void setFleetSource(MarketAPI... preferred)
void triggerSetFleetDoctrineQuality(int officerQuality, int shipQuality, int numShips)
void triggerSetFleetDoctrineOther(int shipSize, int aggression)
void triggerSetFleetFlag(String flag)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
static void makeImportant(SectorEntityToken entity, String reason)
static void makeUnimportant(SectorEntityToken entity, String reason)
static boolean setFlagWithReason(MemoryAPI memory, String flagKey, String reason, boolean value, float expire)
MemoryAPI getMemoryWithoutUpdate()
LocationAPI getContainingLocation()
void addScript(EveryFrameScript script)
Vector2f getLocationInHyperspace()
void set(String key, Object value)
void setRankId(String rank)