73 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
75 if (!setGlobalReference(
"$gaPZ_ref",
"$gaPZ_inProgress")) {
79 baird = getImportantPerson(People.BAIRD);
80 if (
baird ==
null)
return false;
82 callisto = getImportantPerson(People.IBRAHIM);
85 gargoyle = getImportantPerson(People.GARGOYLE);
89 if (
culann ==
null)
return false;
92 if (
donn ==
null)
return false;
94 arroyo = getImportantPerson(People.ARROYO);
95 if (
arroyo ==
null)
return false;
100 well = (NascentGravityWellAPI)
Global.
getSector().getMemoryWithoutUpdate().get(TTBlackSite.NASCENT_WELL_KEY);
101 if (
well ==
null || !
well.isAlive())
return false;
103 float dir = Misc.getAngleInDegrees(
culann.getLocationInHyperspace(),
well.getLocationInHyperspace());
105 requireSystemTags(ReqMode.NOT_ANY, Tags.THEME_UNSAFE, Tags.THEME_CORE, Tags.SYSTEM_ALREADY_USED_FOR_STORY);
106 preferSystemInDirectionFrom(
culann.getLocationInHyperspace(), dir, 30f);
107 preferSystemWithinRangeOf(
culann.getLocationInHyperspace(), 15f, 30f);
108 preferSystemWithinRangeOf(
culann.getLocationInHyperspace(), 15f, 40f);
109 preferSystemUnexplored();
110 preferSystemNotPulsar();
111 requirePlanetNotGasGiant();
112 requirePlanetNotStar();
113 preferPlanetUnsurveyed();
120 relay = spawnEntity(Entities.GENERIC_PROBE,
new LocData(EntityLocationType.HIDDEN,
null,
relaySystem));
121 if (
relay ==
null)
return false;
122 relay.setCustomDescriptionId(
"gaPZ_relay");
125 alphaSite = (StarSystemAPI)
well.getTarget().getContainingLocation();
127 for (CampaignFleetAPI fleet :
alphaSite.getFleets()) {
128 if (fleet.getMemoryWithoutUpdate().getBoolean(
"$ziggurat")) {
136 requireEntityMemoryFlags(
"$hamatsu");
138 hamatsu = pickEntity();
144 rkTithe = genRoundNumber(80000, 120000);
146 setStartingStage(Stage.GET_KELISE_LEAD);
147 addSuccessStages(Stage.COMPLETED);
151 connectWithGlobalFlag(Stage.GET_KELISE_LEAD, Stage.SELL_BLACKMAIL_MATERIAL,
"$gaPZ_sellBlackmail");
152 connectWithGlobalFlag(Stage.SELL_BLACKMAIL_MATERIAL, Stage.SOLD_BLACKMAIL_MATERIAL,
"$gaPZ_soldBlackmail");
153 connectWithGlobalFlag(Stage.GET_KELISE_LEAD, Stage.TALK_TO_CALLISTO,
"$gaPZ_talkToCallisto");
154 connectWithGlobalFlag(Stage.SOLD_BLACKMAIL_MATERIAL, Stage.TALK_TO_CALLISTO,
"$gaPZ_talkToCallisto");
155 connectWithGlobalFlag(Stage.TALK_TO_CALLISTO, Stage.GO_TO_RELAY_SYSTEM,
"$gaPZ_goToRelaySystem");
156 connectWithGlobalFlag(Stage.GO_TO_RELAY_SYSTEM, Stage.GO_TO_NASCENT_WELL,
"$gaPZ_goToWell");
157 setStageOnEnteredLocation(Stage.INVESTIGATE_SITE,
alphaSite);
160 setStageOnGlobalFlag(Stage.COMPLETED,
"$gaPZ_completed");
165 makeImportant(
culann,
null, Stage.GET_KELISE_LEAD);
166 makeImportant(
donn,
null, Stage.SELL_BLACKMAIL_MATERIAL);
167 makeImportant(
arroyo,
null, Stage.SOLD_BLACKMAIL_MATERIAL);
168 makeImportant(
callisto,
null, Stage.TALK_TO_CALLISTO);
169 makeImportant(
relay,
"$gaPZ_relayImportant", Stage.GO_TO_RELAY_SYSTEM);
170 makeImportant(
well,
null, Stage.GO_TO_NASCENT_WELL);
171 makeImportant(
zigFleet,
"$gaPZ_ziggurat", Stage.INVESTIGATE_SITE);
172 makeImportant(
baird,
"$gaPZ_returnHere", Stage.RETURN_TO_ACADEMY);
174 setFlag(
relay,
"$gaPZ_relay",
false);
175 setFlag(
culannAdmin,
"$gaPZ_culannAdmin",
false, Stage.GET_KELISE_LEAD);
176 setFlag(
baseRuins,
"$gaPZ_baseRuins",
false, Stage.GO_TO_RELAY_SYSTEM, Stage.GO_TO_NASCENT_WELL);
180 beginWithinHyperspaceRangeTrigger(
callisto.getMarket(), 3f,
true, Stage.TALK_TO_CALLISTO);
181 triggerCreateFleet(FleetSize.VERY_LARGE, FleetQuality.HIGHER, Factions.LUDDIC_CHURCH, FleetTypes.PATROL_LARGE,
culann.getLocationInHyperspace());
182 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
183 triggerMakeHostileAndAggressive();
184 triggerMakeLowRepImpact();
185 triggerFleetMakeFaster(
true, 2,
true);
186 triggerSetFleetAlwaysPursue();
187 triggerPickLocationTowardsEntity(
callisto.getMarket().getStarSystem().getHyperspaceAnchor(), 30f, getUnits(1.5f));
188 triggerSpawnFleetAtPickedLocation(
"$gaPZ_rogueKnight",
null);
189 triggerOrderFleetInterceptPlayer();
190 triggerOrderFleetEBurn(1f);
191 triggerFleetMakeImportant(
null, Stage.TALK_TO_CALLISTO);
195 beginEnteredLocationTrigger(
relaySystem, Stage.GO_TO_RELAY_SYSTEM);
196 triggerCreateFleet(FleetSize.LARGE, FleetQuality.SMOD_2, Factions.MERCENARY, FleetTypes.MERC_BOUNTY_HUNTER,
culann.getLocationInHyperspace());
197 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
198 triggerFleetAddCommanderSkill(Skills.PHASE_CORPS, 1);
199 triggerSetFleetFaction(Factions.TRITACHYON);
200 triggerMakeHostileAndAggressive();
201 triggerMakeLowRepImpact();
202 triggerSetFleetDoctrineComp(0, 0, 5);
203 triggerFleetMakeFaster(
true, 1,
true);
204 triggerPickLocationAtInSystemJumpPoint(
relaySystem);
205 triggerSpawnFleetAtPickedLocation(
"$gaPZ_ttMerc",
null);
206 triggerOrderFleetInterceptPlayer();
207 triggerFleetMakeImportant(
null, Stage.GO_TO_RELAY_SYSTEM);
211 beginStageTrigger(Stage.COMPLETED);
214 triggerSetGlobalMemoryValue(
"$gaPZ_missionCompleted",
true);
265 Color h = Misc.getHighlightColor();
266 if (currentStage == Stage.GET_KELISE_LEAD ||
267 currentStage == Stage.SELL_BLACKMAIL_MATERIAL ||
268 currentStage == Stage.GO_TO_RELAY_SYSTEM ||
269 currentStage == Stage.TALK_TO_CALLISTO ||
270 currentStage == Stage.SOLD_BLACKMAIL_MATERIAL) {
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);
274 if (currentStage == Stage.GET_KELISE_LEAD) {
275 addStandardMarketDesc(
"She was formerly employed as a weapons engineer " +
culann.getOnOrAt(),
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);
281 addStandardMarketDesc(
"Arroyo is located " +
arroyo.getMarket().getOnOrAt(),
arroyo.getMarket(), info, 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);
286 addStandardMarketDesc(
"",
culannAdmin.getMarket(), info, 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);
292 addStandardMarketDesc(
"A reasonable place to find such a pirate would be " +
293 donn.getOnOrAt(),
donn, info, 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);
297 info.addPara(getGoTalkToPersonText(
arroyo) +
".", opad);
298 }
else if (currentStage == Stage.TALK_TO_CALLISTO) {
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 " +
301 callisto.getNameString() +
". She may have more information.", opad);
302 info.addPara(getGoTalkToPersonText(
callisto) +
".", opad);
303 }
else if (currentStage == Stage.GO_TO_RELAY_SYSTEM) {
304 info.addPara(
"You've learned that the flight plan of the ISS Hamatsu - the ship chartered by Kelise Astraia - "
305 +
"led to the " +
relaySystem.getNameWithLowercaseTypeShort() +
".", opad);
306 }
else if (currentStage == Stage.GO_TO_NASCENT_WELL) {
307 info.addPara(
"You've found a hidden relay in the " +
relaySystem.getNameWithLowercaseTypeShort() +
", "
308 +
"that was likely used for communications with \"Alpha Site\". "
309 +
"Investigate the hyperspace coordinates that the relay was transmitting to.", opad);
311 if (
well.isInCurrentLocation() && Misc.getDistanceToPlayerLY(
well) < 0.2f) {
312 info.addPara(
"Use %s to traverse the nascent gravity well located at the coordinates.",
313 opad, Misc.getHighlightColor(),
"Transverse Jump");
316 }
else if (currentStage == Stage.INVESTIGATE_SITE) {
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 "
319 +
"to " +
callisto.getNameString() +
".", opad);
322 info.addPara(
"Optional: locate Kelise Astraia.", opad);
326 }
else if (currentStage == Stage.RETURN_TO_ACADEMY) {
327 info.addPara(
"Return to the Galatia Academy with the scan data and report your findings to Provost " +
328 getPerson().getNameString() +
".", opad);