1package com.fs.starfarer.api.impl.campaign.missions.academy;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.FactionAPI;
9import com.fs.starfarer.api.campaign.InteractionDialogAPI;
10import com.fs.starfarer.api.campaign.PersonImportance;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.campaign.StarSystemAPI;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.characters.PersonAPI;
16import com.fs.starfarer.api.impl.campaign.ids.Entities;
17import com.fs.starfarer.api.impl.campaign.ids.Factions;
18import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
19import com.fs.starfarer.api.impl.campaign.ids.People;
20import com.fs.starfarer.api.impl.campaign.ids.Ranks;
21import com.fs.starfarer.api.impl.campaign.ids.Tags;
22import com.fs.starfarer.api.impl.campaign.missions.hub.ReqMode;
23import com.fs.starfarer.api.ui.TooltipMakerAPI;
24import com.fs.starfarer.api.util.Misc;
25import com.fs.starfarer.api.util.Misc.Token;
26import com.fs.starfarer.api.util.WeightedRandomPicker;
30 public static enum Stage {
32 INVESTIGATE_FIKENHILD,
33 FOLLOW_THE_EXPERIMENTS,
69 if (laicaille ==
null || kapteyn ==
null || fikenhild ==
null)
return false;
115 if (probe1 ==
null || probe2 ==
null || probe3 ==
null)
return false;
123 picker.
add(probe1, 1f);
124 picker.
add(probe2, 1f);
125 picker.
add(probe3, 1f);
154 makeImportant(fikenhild,
"$gaFC_coureuseInvestigation", Stage.INVESTIGATE_FIKENHILD);
155 makeImportant(probe1,
"$gaFC_probe", Stage.FOLLOW_THE_EXPERIMENTS);
156 makeImportant(probe2,
"$gaFC_probe", Stage.FOLLOW_THE_EXPERIMENTS);
157 makeImportant(probe3,
"$gaFC_probe", Stage.FOLLOW_THE_EXPERIMENTS);
171 makeImportant(laicaille,
"$gaFC_safehouse", Stage.VISIT_COUREUSE);
209 Map<String, MemoryAPI> memoryMap) {
211 if (
"postFikenhildCleanup".equals(action)) {
225 if (fikenhild !=
null) {
233 if (
"dropStolenProbe".equals(action)) {
243 probe4.
addTag(
"gaFC_lootedProbe");
259 if (
"foundEmptyProbe".equals(action)) {
266 if (dialog !=
null && action.equals(
"showKapteynBarAgent")) {
270 if (
"soldOutIsirahLead".equals(action)) {
307 info.
addPara(
"You've found Academician Scylla Coureuse and brought her out of hiding to return her to"
308 +
" work on Baird's secret project at the Galatia Academy.",opad);
310 info.
addPara(
"Find Scylla Coureuse, a former academician of the Galatia Academy who went into hiding "
311 +
"after the Hegemony crackdown on hyperspace experimentation.", opad, heg.
getBaseUIColor(),
"Hegemony");
315 info.
addPara(
"Talk to contacts on Fikenhild associated with Scylla Coureuse to find a lead to her current location -"
316 +
" or attract the attention of someone who knows where she is.", opad);
319 }
else if (
currentStage == Stage.FOLLOW_THE_EXPERIMENTS) {
323 info.
addPara(
"Search the Isirah system for Scylla Coureuse. Talk to people who might be involved in hiding "
324 +
"her and search for signs of her research.", opad);
326 info.
addPara(
"Confront the archon of Laicaille Habitat about hiding Scylla Coureuse on the station.", opad);
328 info.
addPara(
"Visit the safehouse of Scylla Coureuse and convince her to come back to the Galatia Academy.", opad);
330 info.
addPara(
"Return to the Galatia Academy and talk to Provost Baird.", opad);
340 info.
addPara(
"Find former academician Scylla Coureuse", tc, pad);
342 }
else if (
currentStage == Stage.INVESTIGATE_FIKENHILD) {
344 info.
addPara(
"Talk to associates of Scylla Coureuse on Fikenhild to find a lead to her location"
345 +
" or attract attention from someone who knows where she is", tc, pad);
347 }
else if (
currentStage == Stage.FOLLOW_THE_EXPERIMENTS) {
349 " and search for the experimental packages possibly being used by Coureuse", tc, pad);
352 info.
addPara(
"Search the Isirah system for Scylla Coureuse, talk to people who might be hiding "
353 +
"her, and search for signs of her research.", tc, pad);
357 info.
addPara(
"Confront the archon of Laicaille Habitat about hiding Scylla Coureuse on the station", tc, pad);
362 info.
addPara(
"Go to the safehouse of Scylla Coureuse and convince her to return to the Galatia Academy", tc, pad);
364 info.
addPara(
"Return to the Galatia Academy and talk to Provost Baird", tc, pad);
374 return super.getPostfixForState();
static SectorAPI getSector()
static final String CARGO_POD_SPECIAL
static final String GENERIC_PROBE
static final String LUDDIC_PATH
static final String TRITACHYON
static final String HEGEMONY
static final String SCAVENGERS
static final String NEUTRAL
static final String MERCENARY
static final String PIRATES
static final String INDEPENDENT
static final String PATROL_SMALL
static final String SCAVENGER_MEDIUM
static final String MERC_BOUNTY_HUNTER
static final String MERC_PRIVATEER
static String LAICAILLE_ARCHON
void addProbeScavengerFleet()
boolean create(MarketAPI createdAt, boolean barEvent)
void spawnTriTachInvestigators()
StarSystemAPI probeSystem
void spawnTriTachMercFleet()
void addPatherAmbushFleet()
SectorEntityToken scavengerFleet
PersonAPI laicailleArchon
SectorEntityToken groombridge
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
void updateInteractionDataImpl()
String getPostfixForState()
SectorEntityToken probeEmpty
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
void showPersonInfo(PersonAPI person, InteractionDialogAPI dialog, boolean withFaction, boolean withRelBar)
void addSuccessStages(Object ... ids)
boolean setGlobalReference(String key)
static float getUnits(float lightYears)
int genRoundNumber(int min, int max)
SectorEntityToken spawnEntity(String entityId, LocData data)
void makeImportant(PersonAPI person, String flag, Enum ... stages)
PersonAPI getImportantPerson(String id)
void setStageOnGlobalFlag(Object to, String flag)
String getGoToSystemTextShort(StarSystemAPI system)
transient Object startingStage
void setStartingStage(Object startingStage)
void makeUnimportant(PersonAPI person, Enum ... stages)
void setName(String name)
void requireSystemTags(ReqMode mode, String ... tags)
StarSystemAPI pickSystem()
void preferSystemInDirectionOfOtherMissions()
void setSystemWasUsedForStory(Object stage, StarSystemAPI system)
void requireSystemNotHasPulsar()
void preferSystemOnFringeOfSector()
void requireSystemNotAlreadyUsedForStory()
void preferSystemUnexplored()
void triggerHideCommListing(PersonAPI person)
void triggerPickLocationTowardsPlayer(final SectorEntityToken entity, final float arc, final float dist)
void triggerSetEntityToPickedJumpPoint()
void triggerFleetAllowLongPursuit()
void triggerFleetPatherNoDefaultTithe()
void triggerFleetSetAvoidPlayerSlowly()
void triggerMakeLowRepImpact()
void triggerPickLocationAtClosestToPlayerJumpPoint(final StarSystemAPI system)
void triggerUnhideCommListing(PersonAPI person)
void triggerOrderFleetPatrol(final StarSystemAPI system)
void triggerMakeHostileAndAggressive()
void triggerMakeNonStoryCritical(MemoryAPI ... memoryArray)
void triggerMakeNonHostile()
void triggerRunScriptAfterDelay(float delay, Script script)
void beginWithinHyperspaceRangeTrigger(SectorEntityToken entity, float rangeLY, boolean requirePlayerInHyperspace, Object ... stages)
void triggerSaveGlobalFleetRef(String key)
void triggerSetGlobalMemoryValue(final String key, final Object value)
void triggerMakeFleetIgnoredByOtherFleets()
void triggerOrderFleetPatrolEntity(boolean moveToNearEntity)
void triggerSetFleetAlwaysPursue()
void triggerSetFleetOfficers(OfficerNum num, OfficerQuality quality)
void triggerOrderFleetInterceptPlayer()
SectorEntityToken getEntityFromGlobal(String key)
void triggerMakeFleetIgnoreOtherFleetsExceptPlayer()
void beginStageTrigger(Object ... stages)
void beginGlobalFlagTrigger(String flag, Object ... stages)
void triggerFleetSetTravelActionText(String travelText)
void triggerFleetAddDefeatTrigger(String trigger)
float genDelay(float base)
void triggerFleetMakeImportant(String flag, Enum ... stages)
void triggerPickLocationTowardsEntity(SectorEntityToken entity, float arc, float dist)
void triggerPickLocationAtInSystemJumpPoint(final StarSystemAPI system)
void triggerSpawnFleetAtPickedLocation()
void triggerSetFleetMissionRef(final String key)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
void triggerSetFleetFaction(final String factionId)
void triggerFleetSetPatrolActionText(String patrolText)
void triggerPickLocationAroundEntity(final float dist)
static String getWithDGS(float num)
static void makeImportant(SectorEntityToken entity, String reason)
static Color getHighlightColor()
String addPerson(PersonAPI person)
PersonAPI createRandomPerson()
String getNameWithNoType()
CustomCampaignEntityAPI addCustomEntity(String id, String name, String type, String factionId)
FactionAPI getFaction(String factionId)
StarSystemAPI getStarSystem(String name)
MemoryAPI getMemoryWithoutUpdate()
SectorEntityToken getEntityById(String id)
ImportantPeopleAPI getImportantPeople()
void setLocation(float x, float y)
MemoryAPI getMemoryWithoutUpdate()
void setCustomDescriptionId(String customDescriptionId)
SectorEntityToken getHyperspaceAnchor()
MarketAPI getMarket(String id)
MemoryAPI getMemoryWithoutUpdate()
void addPerson(PersonAPI person)
CommDirectoryAPI getCommDirectory()
void set(String key, Object value)
PersonAPI getPerson(String id)
void setImportance(PersonImportance importance)
void setRankId(String rank)
void setPostId(String postId)