1package com.fs.starfarer.api.impl.campaign.missions.academy;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.InteractionDialogAPI;
10import com.fs.starfarer.api.campaign.NascentGravityWellAPI;
11import com.fs.starfarer.api.campaign.PlanetAPI;
12import com.fs.starfarer.api.campaign.SectorEntityToken;
13import com.fs.starfarer.api.campaign.StarSystemAPI;
14import com.fs.starfarer.api.campaign.econ.MarketAPI;
15import com.fs.starfarer.api.campaign.rules.MemoryAPI;
16import com.fs.starfarer.api.characters.PersonAPI;
17import com.fs.starfarer.api.impl.campaign.ids.Entities;
18import com.fs.starfarer.api.impl.campaign.ids.Factions;
19import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
20import com.fs.starfarer.api.impl.campaign.ids.People;
21import com.fs.starfarer.api.impl.campaign.ids.Ranks;
22import com.fs.starfarer.api.impl.campaign.ids.Skills;
23import com.fs.starfarer.api.impl.campaign.ids.Tags;
24import com.fs.starfarer.api.impl.campaign.missions.hub.ReqMode;
25import com.fs.starfarer.api.impl.campaign.world.TTBlackSite;
26import com.fs.starfarer.api.ui.TooltipMakerAPI;
27import com.fs.starfarer.api.util.Misc;
28import com.fs.starfarer.api.util.Misc.Token;
32 public static enum Stage {
34 SELL_BLACKMAIL_MATERIAL,
35 SOLD_BLACKMAIL_MATERIAL,
80 if (
baird ==
null)
return false;
89 if (
culann ==
null)
return false;
92 if (
donn ==
null)
return false;
95 if (
arroyo ==
null)
return false;
121 if (
relay ==
null)
return false;
128 if (fleet.getMemoryWithoutUpdate().getBoolean(
"$ziggurat")) {
152 connectWithGlobalFlag(Stage.SELL_BLACKMAIL_MATERIAL, Stage.SOLD_BLACKMAIL_MATERIAL,
"$gaPZ_soldBlackmail");
154 connectWithGlobalFlag(Stage.SOLD_BLACKMAIL_MATERIAL, Stage.TALK_TO_CALLISTO,
"$gaPZ_talkToCallisto");
176 setFlag(
baseRuins,
"$gaPZ_baseRuins",
false, Stage.GO_TO_RELAY_SYSTEM, Stage.GO_TO_NASCENT_WELL);
223 Map<String, MemoryAPI> memoryMap) {
225 if (
"makeArroyoImportant".equals(action)) {
234 }
else if (
"makeCulannAdminImportant".equals(action)) {
271 info.
addPara(
"Get a lead on the whereabouts of Kelise Astraia, who is associated with "
272 +
"a secret Tri-Tachyon research base called \"Alpha Site\".", opad);
278 info.
addPara(
"You've talked to Gargoyle, who advised you to talk to Rayan Arroyo, "
279 +
"\"a Tri-Tach goon from top to bottom\", who is likely to have the right connections "
280 +
"to help with the investigation.", opad);
284 info.
addPara(
"You've learned that the administrator of Culann Starforge will have access to "
285 +
"personnel records that may shed light on Kelise's whereabouts.", opad);
288 }
else if (
currentStage == Stage.SELL_BLACKMAIL_MATERIAL) {
289 info.
addPara(
"Rayan Arroyo has agreed to help locate her, in exchange for a favor - selling bad "
290 +
"comm fakes to any reasonably highly placed pirate leader, which would serve "
291 +
"his ends as part of a disinformation campaign.", opad);
294 }
else if (
currentStage == Stage.SOLD_BLACKMAIL_MATERIAL) {
295 info.
addPara(
"You've sold the blackmail materials to a pirate leader, in exchange for which Arroyo "
296 +
"has agreed to help you find Kelise Astraia.", opad);
299 info.
addPara(
"You've learned that Kelise chartered - and paid for unknown special modifications to - "
300 +
"the ISS Hamatsu, a Venture-class starship, before flying it out of the system. The ship's owner is one " +
304 info.
addPara(
"You've learned that the flight plan of the ISS Hamatsu - the ship chartered by Kelise Astraia - "
308 +
"that was likely used for communications with \"Alpha Site\". "
309 +
"Investigate the hyperspace coordinates that the relay was transmitting to.", opad);
312 info.
addPara(
"Use %s to traverse the nascent gravity well located at the coordinates.",
317 info.
addPara(
"Learn what Tri-Tachyon was doing at Alpha Site.", opad);
318 info.
addPara(
"Optional: look for the ISS Hamatsu and, if found, return it "
322 info.
addPara(
"Optional: locate Kelise Astraia.", opad);
327 info.
addPara(
"Return to the Galatia Academy with the scan data and report your findings to Provost " +
328 getPerson().getNameString() +
".", opad);
336 info.
addPara(
"Get a lead on the whereabouts of Kelise Astraia", tc, pad);
338 }
else if (
currentStage == Stage.SELL_BLACKMAIL_MATERIAL) {
339 info.
addPara(
"Sell Arroyo's comm fakes to any highly-placed pirate", tc, pad);
341 }
else if (
currentStage == Stage.SOLD_BLACKMAIL_MATERIAL) {
351 info.
addPara(
"Investigate hyperspace area the relay was transmitting to", tc, pad);
354 info.
addPara(
"Investigate Alpha Site", tc, pad);
360 info.
addPara(
"Return to the Galatia Academy and report to Provost Baird", tc, pad);
368 return "Project Ziggurat";
376 return super.getPostfixForState();
381 super.setCurrentStage(next, dialog, memoryMap);
382 if (next == Stage.RETURN_TO_ACADEMY) {
389 }
else if (next == Stage.GO_TO_RELAY_SYSTEM) {
391 if (hamatsu !=
null) {
static SectorAPI getSector()
static final String GENERIC_PROBE
static final String TRITACHYON
static final String LUDDIC_CHURCH
static final String MERCENARY
static final String PATROL_LARGE
static final String MERC_BOUNTY_HUNTER
static String POST_ADMINISTRATOR
static final String PHASE_CORPS
CampaignFleetAPI zigFleet
void updateInteractionDataImpl()
NascentGravityWellAPI well
String getPostfixForState()
static String SCANNED_ZIGGURAT
int paymentForCommFakesHigh
StarSystemAPI relaySystem
void setCurrentStage(Object next, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
boolean create(MarketAPI createdAt, boolean barEvent)
boolean pointAtCulannAdmin
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
String getGoTalkToPersonText(PersonAPI person)
void connectWithGlobalFlag(Object from, Object to, String flag)
void makePrimaryObjective(Object personOrMarketOrEntity)
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 setStageOnEnteredLocation(Object to, LocationAPI location)
PersonAPI getPersonAtMarketPost(MarketAPI market, String ... postIds)
void setStageOnGlobalFlag(Object to, String flag)
String getGoToSystemTextShort(StarSystemAPI system)
static void addStandardMarketDesc(String prefix, MarketAPI market, TooltipMakerAPI info, float pad)
transient Object startingStage
void setStartingStage(Object startingStage)
void makeUnimportant(PersonAPI person, Enum ... stages)
void setFlag(SectorEntityToken entity, String flag, boolean permanent)
void requirePlanetNotGasGiant()
void requireEntityMemoryFlags(String ... flags)
void requireSystemTags(ReqMode mode, String ... tags)
void preferSystemWithinRangeOf(Vector2f location, float rangeLY)
void requirePlanetNotStar()
void preferSystemNotPulsar()
void preferSystemUnexplored()
void requireSystemIs(final StarSystemAPI system)
SectorEntityToken pickEntity()
void preferPlanetUnsurveyed()
void preferSystemInDirectionFrom(Vector2f from, float dir, float arc)
void triggerFleetMakeFaster(boolean navigationSkill, int numTugs, boolean allowLongPursuit)
void triggerFleetAddCommanderSkill(String skill, int level)
void triggerMakeLowRepImpact()
void triggerSetFleetDoctrineComp(int warships, int carriers, int phaseShips)
void triggerMakeHostileAndAggressive()
void triggerMakeNonStoryCritical(MemoryAPI ... memoryArray)
void beginWithinHyperspaceRangeTrigger(SectorEntityToken entity, float rangeLY, boolean requirePlayerInHyperspace, Object ... stages)
void triggerSetGlobalMemoryValue(final String key, final Object value)
void triggerSetFleetAlwaysPursue()
void triggerSetFleetOfficers(OfficerNum num, OfficerQuality quality)
void triggerOrderFleetInterceptPlayer()
void beginStageTrigger(Object ... stages)
void triggerFleetMakeImportant(String flag, Enum ... stages)
void triggerPickLocationTowardsEntity(SectorEntityToken entity, float arc, float dist)
void triggerPickLocationAtInSystemJumpPoint(final StarSystemAPI system)
void triggerSpawnFleetAtPickedLocation()
void triggerOrderFleetEBurn(float probabilityToEBurn)
void beginEnteredLocationTrigger(LocationAPI location, Object ... stages)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
void triggerSetFleetFaction(final String factionId)
static String NASCENT_WELL_KEY
static String getWithDGS(float num)
static void makeImportant(SectorEntityToken entity, String reason)
static float getDistanceToPlayerLY(Vector2f locInHyper)
static Color getHighlightColor()
static float getAngleInDegrees(Vector2f v)
String getNameWithNoType()
String getNameWithLowercaseTypeShort()
List< CampaignFleetAPI > getFleets()
SectorEntityToken getTarget()
MemoryAPI getMemoryWithoutUpdate()
LocationAPI getContainingLocation()
boolean isInCurrentLocation()
StarSystemAPI getStarSystem()
Vector2f getLocationInHyperspace()
void setCustomDescriptionId(String customDescriptionId)
SectorEntityToken getHyperspaceAnchor()
MarketAPI getMarket(String id)
Vector2f getLocationInHyperspace()
StarSystemAPI getStarSystem()