Starsector API
Loading...
Searching...
No Matches
BornanewFilesFalseIdols.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.missions.luddic;
2
3import java.awt.Color;
4import java.util.List;
5import java.util.Map;
6
7import org.lwjgl.util.vector.Vector2f;
8
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.CampaignFleetAPI;
11import com.fs.starfarer.api.campaign.InteractionDialogAPI;
12import com.fs.starfarer.api.campaign.RepLevel;
13import com.fs.starfarer.api.campaign.SectorEntityToken;
14import com.fs.starfarer.api.campaign.StarSystemAPI;
15import com.fs.starfarer.api.campaign.econ.MarketAPI;
16import com.fs.starfarer.api.campaign.rules.MemoryAPI;
17import com.fs.starfarer.api.characters.PersonAPI;
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.Tags;
22import com.fs.starfarer.api.impl.campaign.intel.bases.LuddicPathBaseIntel;
23import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithSearch;
24import com.fs.starfarer.api.impl.campaign.missions.hub.ReqMode;
25import com.fs.starfarer.api.ui.SectorMapAPI;
26import com.fs.starfarer.api.ui.TooltipMakerAPI;
27import com.fs.starfarer.api.util.Misc;
28import com.fs.starfarer.api.util.Misc.Token;
29
31
32 public static enum Stage {
33 PICK_UP_BORNANEW,
34 MEET_MENES_YARIBAY,
35 ATTEND_A_PARTY,
36 TALK_TO_HORUS,
37 TALK_TO_ENGINEER,
38 TALK_TO_ULMUS_POND,
39 GO_TO_CHALCEDON,
40 INVESTIGATE_PATHER_STATION,
41 RETURN_TO_HESPERUS_EARLY,
42 GO_TO_HESPERUS,
43 ARREST_THE_CURATE,
44 DELIVER_KEEPFAITH,
45 COMPLETED,
46 }
47
49 protected PersonAPI jaspis;
51 protected PersonAPI sedge;
55
56 protected MarketAPI asher;
58 protected MarketAPI olinadu;
59 protected MarketAPI kazeron;
60 protected MarketAPI gilead;
64
66
69
70 protected int stationSalvorLoss;
71
72
73 @Override
74 protected boolean create(MarketAPI createdAt, boolean barEvent) {
75 // if already accepted by the player, abort
76 if (!setGlobalReference("$bffi_ref", "$bffi_inProgress")) {
77 return false;
78 }
79
80 // Places
82 if (chalcedon == null) return false;
83 if (!chalcedon.getFactionId().equals(Factions.LUDDIC_PATH)) return false;
84
86 if (gilead == null) return false;
87 if (!gilead.getFactionId().equals(Factions.LUDDIC_CHURCH)) return false;
88
90 if (kazeron == null) return false;
91 if (!kazeron.getFactionId().equals(Factions.PERSEAN)) return false;
92
94 if (olinadu == null) return false;
95 if (!olinadu.getFactionId().equals(Factions.PERSEAN)) return false;
96
98 if (hesperus == null) return false;
99 if (!hesperus.getFactionId().equals(Factions.LUDDIC_CHURCH)) return false;
100
101 tartessus = Global.getSector().getEconomy().getMarket("tartessus");
102 if (tartessus == null) return false;
103 if (!tartessus.getFactionId().equals(Factions.LUDDIC_CHURCH)) return false;
104
106 if (asher == null) return false;
107 if (!asher.getFactionId().equals(Factions.LUDDIC_CHURCH)) return false;
108
109
110 // People
111
113 if (bornanew == null) return false;
114
116 if (bornanew == null) return false;
117
119 if (ulmus_pond == null) return false;
120
122 if (menes_yaribay == null) return false;
123
125 if (horus_yaribay == null) return false;
126
128 if (cedra_keepfaith == null) return false;
129
130
131 // Find a system to hide Pather base in
132 resetSearch();
136 requireSystemNotHasPulsar(); // don't want the challenge to get blown up.
141 if (patherBaseSystem == null) return false;
142
144
145 setStartingStage(Stage.PICK_UP_BORNANEW);
146 connectWithGlobalFlag(Stage.PICK_UP_BORNANEW, Stage.MEET_MENES_YARIBAY, "$bffi_goMeetMenesYaribay");
147 setStageOnGlobalFlag(Stage.ATTEND_A_PARTY, "$bffi_gotPartyInvite");
148 setStageOnGlobalFlag(Stage.TALK_TO_HORUS, "$bffi_goTalkToHorus");
149 setStageOnGlobalFlag(Stage.TALK_TO_ENGINEER, "$bffi_talkToEngineer");
150 setStageOnGlobalFlag(Stage.TALK_TO_ULMUS_POND, "$bffi_talkToUlmusPond");
151 setStageOnGlobalFlag(Stage.GO_TO_CHALCEDON, "$bffi_followUlmusPond");
152 setStageOnGlobalFlag(Stage.INVESTIGATE_PATHER_STATION, "$bffi_investigatePatherStation");
153
154 setStageOnGlobalFlag(Stage.ARREST_THE_CURATE, "$bffi_arrestTheCurate"); // for testing.
155
156 setStageOnGlobalFlag(Stage.RETURN_TO_HESPERUS_EARLY, "$bffi_destroyedStationEarly"); // half-failure.
157
158 setStageOnGlobalFlag(Stage.GO_TO_HESPERUS, "$bffi_returnBornanewBody"); // definitely a failure
159 setStageOnGlobalFlag(Stage.GO_TO_HESPERUS, "$bffi_keepfaithEscapedTartessus"); // half-failure.
160
161 setStageOnGlobalFlag(Stage.ARREST_THE_CURATE, "$bffi_learnedAboutKeepfaith");
162 setStageOnGlobalFlag(Stage.DELIVER_KEEPFAITH, "$bffi_arrestedKeepfaith");
163
164
165 setStageOnGlobalFlag(Stage.COMPLETED, "$bffi_completed");
166 addSuccessStages(Stage.COMPLETED);
167
168 makeImportant(bornanew, "$bffi_pickUpBornanew", Stage.PICK_UP_BORNANEW);
169 makeImportant(menes_yaribay, "$bffi_meetMenesYaribay", Stage.MEET_MENES_YARIBAY);
170 makeImportant(olinadu, "$bffi_attendAParty", Stage.ATTEND_A_PARTY);
171 makeImportant(horus_yaribay, "$bffi_talkToHorusAboutMenesParty", Stage.TALK_TO_HORUS);
172
173 makeImportant(asher, "$bffi_talkToEngineer", Stage.TALK_TO_ENGINEER);
174
175 makeImportant(ulmus_pond, "$bffi_talkToUlmusPond", Stage.TALK_TO_ULMUS_POND);
176 makeImportant(chalcedon, "$bffi_followUlmusPond", Stage.GO_TO_CHALCEDON);
177
178 makeImportant(tartessus, "$bffi_arrestTheCurate", Stage.ARREST_THE_CURATE);
179 makeImportant(hesperus, "$bffi_deliverKeepfaith", Stage.DELIVER_KEEPFAITH);
180
181 makeImportant(hesperus, "$bffi_goToHesperus", Stage.GO_TO_HESPERUS);
182 makeImportant(hesperus, "$bffi_goToHesperus", Stage.RETURN_TO_HESPERUS_EARLY);
183
184 setName("False Idols");
187
188 // Spawn a PL patrol or two to spice up things around Olinadu pre Menes' party
189 beginStageTrigger(Stage.ATTEND_A_PARTY);
190 triggerCreateFleet(FleetSize.SMALL, FleetQuality.DEFAULT, Factions.PERSEAN, FleetTypes.PATROL_MEDIUM, olinadu.getPlanetEntity());
192 triggerSpawnFleetAtPickedLocation("$gaDHO_arrayFleet", null);
194 triggerSetFleetMissionRef("$bffi_ref");
195 endTrigger();
196
197 // And a couple PL patrols for after the party.
198 beginStageTrigger(Stage.TALK_TO_ENGINEER);
199 triggerCreateFleet(FleetSize.SMALL, FleetQuality.DEFAULT, Factions.PERSEAN, FleetTypes.PATROL_MEDIUM, olinadu.getPlanetEntity());
202 triggerSetFleetMissionRef("$bffi_ref");
203 triggerSpawnFleetAtPickedLocation("$bffi_postRaidPatrol", null);
204 //triggerOrderFleetPatrol(false, olinadu.getPlanetEntity(), olinadu.getStarSystem().getJumpPoints().get(0), olinadu.getStarSystem().getJumpPoints().get(1));
205 //triggerOrderFleetInterceptPlayer(); // Could write a unique interaction, but I'd want it to have consequences... -dgb
206 endTrigger();
207
208 beginStageTrigger(Stage.TALK_TO_ENGINEER);
209 triggerCreateFleet(FleetSize.SMALL, FleetQuality.DEFAULT, Factions.PERSEAN, FleetTypes.PATROL_MEDIUM, olinadu.getPlanetEntity());
211 //triggerAutoAdjustFleetStrengthMajor();
213 //triggerFleetAllowLongPursuit();
214 triggerSetFleetMissionRef("$bffi_ref");
215 triggerSpawnFleetAtPickedLocation("$bffi_postRaidPatrol", null);
217 //triggerOrderFleetInterceptPlayer(); // Could write a unique interaction, but I'd want it to have consequences... -dgb
218 endTrigger();
219
220
221 // Spawn a Pather fleet near Chalcedon after Pond tips them off (inadvertantly or not)
222 beginWithinHyperspaceRangeTrigger(chalcedon.getPlanetEntity(), 1f, false,Stage.GO_TO_CHALCEDON);
223 triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.LUDDIC_PATH, FleetTypes.PATROL_MEDIUM, chalcedon.getPlanetEntity());
227 triggerSpawnFleetAtPickedLocation("$bffi_patherGoblins", null);
228 triggerSetFleetMissionRef("$bffi_ref");
229
230 // if player is hostile to Path, Path fleet is hostile to player.
233 }
234
237 endTrigger();
238
239 // A *serious* Luddic intercept fleet post-Chalcedon
240 // Revenge for killing Sedge and/or the same but stopping player's meddling.
241 // Maybe they demand to talk to Bornanew?
242 beginWithinHyperspaceRangeTrigger(chalcedon, 3f, true, Stage.INVESTIGATE_PATHER_STATION);
244 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
246 triggerFleetMakeFaster(true, 2, true);
249 triggerSpawnFleetAtPickedLocation("$bffi_patherIntercept", null);
252 triggerSetFleetMissionRef("$bffi_ref");
253 triggerFleetMakeImportant(null, Stage.INVESTIGATE_PATHER_STATION);
254 endTrigger();
255
256 beginStageTrigger(Stage.COMPLETED);
257 triggerMakeNonStoryCritical("asher", "chalcedon", "olinadu", "kazeron", "gilead", "hesperus", "tartessus");
258 triggerSetGlobalMemoryValue("$bffi_missionCompleted", true);
259 endTrigger();
260
261 return true;
262 }
263
264 protected void updateInteractionDataImpl() {
265 set("$bffi_stage", getCurrentStage());
266 set("$bffi_patherStationSystem", patherBaseSystem.getName());
267 }
268
269 @Override
270 protected boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog,
271 List<Token> params, final Map<String, MemoryAPI> memoryMap) {
272
273 if ("spawnPatherBase".equals(action)) {
274 //new LuddicPathBaseIntel(patherBaseSystem, Factions.LUDDIC_PATH);
275
277
278
279 /* Don't need to actually simulate all of this.
280 patherStation.getMarket().addIndustry("heavyindustry");
281 MarketAPI patherMarket = patherStation.getMarket();
282 String itemId = "corrupted_nanoforge";
283 InstallableItemEffect effect = ItemEffectsRepo.ITEM_EFFECTS.get(itemId);
284 Industry ind = patherMarket.getIndustry("heavyindustry");
285 ind.setSpecialItem(new SpecialItemData(itemId, null));
286 */
287
289 mem.set("$bffi_patherStationTarget", true);
291
293
294 //makeImportant(patherStation, , Stage.INVESTIGATE_PATHER_STATION);
295 Misc.makeImportant(patherStation.getEntity(), "$bffi_investigatePatherStation");
296 Misc.addDefeatTrigger(patherStationFleet, "BFFIpatherStationDefeated");
297
298 /*patherStationFleet.addEventListener(new BaseFleetEventListener() {
299 @Override
300 public void reportFleetDespawnedToListener(CampaignFleetAPI fleet, FleetDespawnReason reason, Object param) {
301 if (reason == FleetDespawnReason.DESTROYED_BY_BATTLE) {
302 // TODO something.
303 //fleet.getMemoryWithoutUpdate().unset("$gaATG_hegScanFleet");
304 //encounterGateHegemony.getMemoryWithoutUpdate().unset("$GAATGhegemonyScanFleet");
305 }
306 }
307 });*/
308 return true;
309 }
310 else if ("cleanUpPatherBase".equals(action)) {
311
312 Misc.makeUnimportant(patherStation.getEntity(), "$bffi_investigatePatherStation");
313 // Is this implicit?
314 return true;
315 }
316 else if ("patherBaseLosses".equals(action))
317 {
318 // ui_cargo_special_tech_drop
319 Global.getSoundPlayer().playSound("explosion_from_damage", 1, 1, Global.getSoundPlayer().getListenerPos(), new Vector2f());
320 return true;
321 }
322 else if ("shootEm".equals(action))
323 {
324 Global.getSoundPlayer().playSound("storyevent_diktat_execution", 1, 1, Global.getSoundPlayer().getListenerPos(), new Vector2f());
325 return true;
326 }
327 else if ("ulmusPondMaskOff".equals(action)) { // unused, actually.
328 ulmus_pond.setFaction("luddic_path"); // Whaaaaa????
329 return true;
330 }
331 else if ("setCourseChalcedon".equals(action)) {
333 return true;
334 }
335 /*else if ("transponderOff".equals(action)) {
336 Global.getSector().getPlayerFleet().getAbility(Abilities.TRANSPONDER).deactivate();
337 return true;
338 }
339 else if ("transponderOn".equals(action)) {
340 Global.getSector().getPlayerFleet().getAbility(Abilities.TRANSPONDER).activate();
341 return true;
342 }*/
343 else if ("doCleanup".equals(action))
344 {
345 Global.getSector().getMemoryWithoutUpdate().unset("$bffi_jethroCalledOutPond");
346 //Global.getSector().getMemoryWithoutUpdate().unset("$bffi_intendToTalkHorus");
347 // Jeez, anything else?
348 return true;
349 }
350
351 return super.callAction(action, ruleId, dialog, params, memoryMap);
352 }
353
354// if ("THEDUEL".equals(action)) {
355// TextPanelAPI text = dialog.getTextPanel();
356// text.setFontOrbitronUnnecessarilyLarge();
357// Color color = Misc.getBasePlayerColor();
358// color = Global.getSector().getFaction(Factions.HEGEMONY).getBaseUIColor();
359// text.addPara("THE DUEL", color);
360// text.setFontInsignia();
361// text.addImage("misc", "THEDUEL");
362// return true;
363// }
364/*
365
366 else if ("didMazalotRaid".equals(action))
367 {
368 RecentUnrest.get(mazalot).add(10, "Raided Mazalot and caused a Luddic uprising");
369 return true;
370 }*/
371
372
373 /*
374 @Override
375 public void createSmallDescription(TooltipMakerAPI info, float width, float height) {
376 Color h = Misc.getHighlightColor();
377 Color g = Misc.getGrayColor();
378 float pad = 3f;
379 float opad = 10f;
380
381 FactionAPI faction = getFactionForUIColors();
382 PersonAPI person = getPerson();
383
384 //info.addImage(Global.getSettings().getSpriteName("illustrations", "luddic_shrine"), width, opad);
385
386 addDescriptionForCurrentStage(info, width, height);
387
388 addBulletPoints(info, ListInfoMode.IN_DESC);
389 }
390 */
391
392 @Override
393 public void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height) {
394 float opad = 10f;
395 //Color h = Misc.getHighlightColor();
396
397 //Color h2 = Misc.getDarkHighlightColor();
398 //FactionAPI church = Global.getSector().getFaction(Factions.LUDDIC_CHURCH);
399
400 //info.addImage(robed_man.getPortraitSprite(), width, 128, opad);
401
402 if (currentStage == Stage.PICK_UP_BORNANEW) {
403 info.addPara("Pick up Jethro Bornanew from Gilead.", opad);
404 addStandardMarketDesc("Go to " + gilead.getOnOrAt(), gilead, info, opad);
405 }
406 else if (currentStage == Stage.MEET_MENES_YARIBAY) {
407 info.addPara("Go to Olinadu and contact Menes Yaribay, the planetary administrator.", opad);
408 addStandardMarketDesc("Go to " + olinadu.getOnOrAt(), olinadu, info, opad);
409 }
410 else if (currentStage == Stage.TALK_TO_HORUS) {
411 info.addPara("Go to Kazeron and talk to Horus Yaribay about his cousin Menes.", opad);
412 addStandardMarketDesc("Go to " + kazeron.getOnOrAt(), kazeron, info, opad);
413 }
414 else if (currentStage == Stage.ATTEND_A_PARTY) {
415
416 if(Global.getSector().getMemoryWithoutUpdate().contains("$bffi_intendToSteal")) {
417 info.addPara("Attend Menes Yaribay's 'gathering' on Olinadu and find a way to steal the false relic.", opad);
418 addStandardMarketDesc("Go to " + olinadu.getOnOrAt(), olinadu, info, opad);
419 }
420 else if(Global.getSector().getMemoryWithoutUpdate().contains("$bffi_horusToParty")) {
421 info.addPara("Attend Menes Yaribay's 'gathering' on Olinadu with Horus Yaribay, the patriarch of Gens Yaribay.", opad);
422 addStandardMarketDesc("Go to " + olinadu.getOnOrAt(), olinadu, info, opad);
423 }
424 else {
425 info.addPara("Attend Menes Yaribay's 'gathering' on Olinadu and acquire the false relic.", opad);
426 addStandardMarketDesc("Go to " + olinadu.getOnOrAt(), olinadu, info, opad);
427 }
428 }
429 else if (currentStage == Stage.TALK_TO_ENGINEER) {
430 info.addPara("Bring the false relic to Asher so that a nanoforge engineer in the employ of the Church can examine it.", opad);
431 addStandardMarketDesc("Go to " + asher.getOnOrAt(), asher, info, opad);
432 }
433 else if (currentStage == Stage.TALK_TO_ULMUS_POND) {
434 info.addPara("Go to Olinadu and confront Ulmus Pond to get a confession.", opad);
435 addStandardMarketDesc("Go to " + asher.getOnOrAt(), asher, info, opad);
436 }
437 else if (currentStage == Stage.GO_TO_CHALCEDON) {
438 info.addPara("Go to Chalcedon and use Bornanew's intel to track down where Ulmus Pond is hiding.", opad);
439 addStandardMarketDesc("Go to " + chalcedon.getOnOrAt(), chalcedon, info, opad);
440 }
441 else if (currentStage == Stage.INVESTIGATE_PATHER_STATION) {
442 //info.addPara("Investigate the Pather Station in the " + patherStation.getSystem().getName() + " system and try to find out where their scan of the relic came from.", opad);
443 //addStandardMarketDesc("Go to the Pather station " + patherStation.getMarket().getOnOrAt(), patherStation.getMarket(), info, opad);
444 info.addPara(getGoToSystemTextShort(patherStation.getMarket().getStarSystem()) + " and investigate. Find where the glove came from and how it was made. Ensure no more will be created.",opad);
445 }
446 else if (currentStage == Stage.ARREST_THE_CURATE) {
447 info.addPara("Go to the Cathedral of Holy Exodus, on Tartessus, and arrest Subcurate Cedra Keepfaith.", opad);
448 addStandardMarketDesc("Go to " + tartessus.getOnOrAt(), tartessus, info, opad);
449 }
450 else if (currentStage == Stage.DELIVER_KEEPFAITH) {
451 info.addPara("Deliver Cedra Keepfaith to the Knights of Ludd on Hesperus to face their justice.", opad);
452 addStandardMarketDesc("Go to " + hesperus.getOnOrAt(), hesperus, info, opad);
453 }
454 else if (currentStage == Stage.GO_TO_HESPERUS) {
455 if(Global.getSector().getMemoryWithoutUpdate().contains("$bffi_keepfaithEscapedTartessus")){
456 info.addPara("Report back to Excubitor Orbis Gideon Oak on Hesperus with news of Bornanew's quest.", opad);
457 addStandardMarketDesc("Go to " + hesperus.getOnOrAt(), hesperus, info, opad);
458 }
459 else { //Global.getSector().getMemoryWithoutUpdate().contains("$bffi_returnBornanewBody"))
460 info.addPara("Return Jethro Bornanew's body to the Knights of Ludd on Hesperus so he may rest with his fellow Knights.", opad);
461 addStandardMarketDesc("Go to " + hesperus.getOnOrAt(), hesperus, info, opad);
462 }
463 }
464 else if (currentStage == Stage.RETURN_TO_HESPERUS_EARLY) {
465 info.addPara("Report back to Excubitor Orbis Gideon Oak on Hesperus with news of Bornanew's quest.", opad);
466 addStandardMarketDesc("Go to " + hesperus.getOnOrAt(), hesperus, info, opad);
467 }
468
469 /*else if (currentStage == Stage.GO_TO_MAZALOT) {
470 info.addPara("A Pather, Sedge, claims that Jethro Bornanew travelled to Mazalot. Find him, or find where he has gone from there.", opad);
471 addStandardMarketDesc("Go to " + mazalot.getOnOrAt(), mazalot, info, opad);
472 }
473 else if (currentStage == Stage.CONTACT_VIRENS) {
474 info.addPara("Nile Virens runs the Luddic Path on Mazalot. If anyone knows where Bornanew is, it would be him or his organization. He might be persuaded to help by force or diplomacy.", opad);
475 addStandardMarketDesc("Contact Nile Virens " + mazalot.getOnOrAt(), mazalot, info, opad);
476 info.addImage(nile_virens.getPortraitSprite(), width, 128, opad);
477 info.addImage(nile_virens.getFaction().getCrest(), width, 128, opad);
478 }
479 else if (currentStage == Stage.CONTACT_BORNANEW) {
480 info.addPara("Nile Virens has provided you with the location of Jethro Bornanew, or so he claims. This consists of coordinates for a location on the surface of Mazalot, outside of a Luddic-majority settlement.", opad);
481 addStandardMarketDesc("Contact Jethro Bornanew " + mazalot.getOnOrAt(), mazalot, info, opad);
482 //info.addImage(bornanew.getPortraitSprite(), width, 128, opad);
483 }
484 else if (currentStage == Stage.RETURN_TO_GILEAD) {
485 info.addPara("Return with Jethro Bornanew to the office of Archcurate Jaspis.", opad);
486 addStandardMarketDesc("Go to " + gilead.getOnOrAt(), gilead, info, opad);
487 }
488 else if (currentStage == Stage.RETURN_TO_GILEAD2) {
489 info.addPara("Return to the office of Archcurate Jaspis with news of Jethro Bornanew's 'death'.", opad);
490 addStandardMarketDesc("Go to " + gilead.getOnOrAt(), gilead, info, opad);
491 }*/
492
493 }
494
495 @Override
496 public boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad) {
497 //Color h = Misc.getHighlightColor();
498
499 if (currentStage == Stage.PICK_UP_BORNANEW) {
500 info.addPara("Send a shuttle down to pick Novice Bornanew up from Gilead", tc, pad);
501 return true;
502 }
503 else if (currentStage == Stage.MEET_MENES_YARIBAY) {
504 info.addPara("Go to Olinadu and talk to the administrator, Menes Yaribay", tc, pad);
505 return true;
506 }
507 else if (currentStage == Stage.TALK_TO_HORUS) {
508 info.addPara("Go to Kazeron and talk to Horus Yaribay about Menes", tc, pad);
509 return true;
510 }
511 else if (currentStage == Stage.ATTEND_A_PARTY) {
512 if(Global.getSector().getMemoryWithoutUpdate().contains("$bffi_intendToSteal")) {
513 info.addPara("Attend the 'gathering' organized by Menes Yaribay on Olinadu", tc, pad);
514 }
515 else {
516 info.addPara("Attend the 'gathering' organized by Menes Yaribay on Olinadu", tc, pad);
517 }
518
519 return true;
520 }
521 else if (currentStage == Stage.TALK_TO_ENGINEER) {
522 info.addPara("Bring the false relic to Asher to be examined by a nanoforge engineer", tc, pad);
523 return true;
524 }
525 else if (currentStage == Stage.TALK_TO_ULMUS_POND) {
526 info.addPara("Go to Olinadu and talk to Ulmus Pond", tc, pad);
527 return true;
528 }
529 else if (currentStage == Stage.GO_TO_CHALCEDON) {
530 info.addPara("Go to Chalcedon and find Ulmus Pond", tc, pad);
531 return true;
532 }
533 else if (currentStage == Stage.INVESTIGATE_PATHER_STATION) {
534 info.addPara("Go to " + patherStation.getSystem().getName() + " and find the source of the 'relic'.", tc, pad);
535 return true;
536 }
537 else if (currentStage == Stage.ARREST_THE_CURATE) {
538 info.addPara("Go to the Cathedral of Holy Exodus on Tartessus and arrest Subcurate Cedra Keepfaith", tc, pad);
539 return true;
540 }
541 else if (currentStage == Stage.DELIVER_KEEPFAITH) {
542 info.addPara("Bring Cedra Keeptfaith to Hesperus to face the justice of the Knights of Ludd", tc, pad);
543 return true;
544 }
545 else if (currentStage == Stage.GO_TO_HESPERUS) {
546 if(Global.getSector().getMemoryWithoutUpdate().contains("$global.bffi_keepfaithEscapedTartessus"))
547 {
548 info.addPara("Report back to Excubitor Orbis Gideon Oak on Hesperus", tc, pad);
549 }
550 else { //Global.getSector().getMemoryWithoutUpdate().contains("$bffi_returnBornanewBody"))
551 info.addPara("Return Jethro Bornanew's body to the Knights of Ludd on Hesperus", tc, pad);
552 }
553 return true;
554 }
555 else if (currentStage == Stage.RETURN_TO_HESPERUS_EARLY) {
556 info.addPara("Report back to Excubitor Orbis Gideon Oak on Hesperus", tc, pad);
557 return true;
558 }
559
560 /*
561 Color h = Misc.getHighlightColor();
562 if (currentStage == Stage.DROP_OFF) {
563 info.addPara("Deliver " + getWithoutArticle(thing) + " to specified location in the " +
564 system.getNameWithLowercaseTypeShort(), tc, pad);
565 return true;
566 }
567 */
568 return false;
569 }
570
571 //@Override
572 //public String getBaseName() {
573 // return "False Idols";
574 //}
575
576 @Override
577 public String getPostfixForState() {
578 if (startingStage != null) {
579 return "";
580 }
581 return super.getPostfixForState();
582 }
583
584 @Override
586 if (patherStation != null && currentStage == Stage.INVESTIGATE_PATHER_STATION) {
587 return patherStation.getEntity();
588 }
589 return super.getMapLocation(map);
590 }
591}
592
593
594
595
596
static SoundPlayerAPI getSoundPlayer()
Definition Global.java:49
static SectorAPI getSector()
Definition Global.java:65
static final String SYSTEM_ALREADY_USED_FOR_STORY
Definition Tags.java:391
void connectWithGlobalFlag(Object from, Object to, String flag)
void makeImportant(PersonAPI person, String flag, Enum ... stages)
static void addStandardMarketDesc(String prefix, MarketAPI market, TooltipMakerAPI info, float pad)
void triggerFleetMakeFaster(boolean navigationSkill, int numTugs, boolean allowLongPursuit)
void beginWithinHyperspaceRangeTrigger(SectorEntityToken entity, float rangeLY, boolean requirePlayerInHyperspace, Object ... stages)
void triggerPickLocationTowardsEntity(SectorEntityToken entity, float arc, float dist)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog, List< Token > params, final Map< String, MemoryAPI > memoryMap)
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
static void makeImportant(SectorEntityToken entity, String reason)
Definition Misc.java:4051
static void addDefeatTrigger(CampaignFleetAPI fleet, String trigger)
Definition Misc.java:5920
static void makeUnimportant(SectorEntityToken entity, String reason)
Definition Misc.java:4077
static CampaignFleetAPI getStationFleet(MarketAPI market)
Definition Misc.java:4571
SoundAPI playSound(String id, float pitch, float volume, Vector2f loc, Vector2f vel)
List< SectorEntityToken > getJumpPoints()
void addScript(EveryFrameScript script)
void layInCourseFor(SectorEntityToken target)
FactionAPI getFaction(String factionId)
void set(String key, Object value)
LabelAPI addPara(String format, float pad, Color hl, String... highlights)