55 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
57 if (!setGlobalReference(
"$lke_ref",
"$lke_inProgress")) {
63 if (!
chalcedon.getFactionId().equals(Factions.LUDDIC_PATH))
return false;
66 if (
gilead ==
null)
return false;
67 if (!
gilead.getFactionId().equals(Factions.LUDDIC_CHURCH))
return false;
70 if (
mazalot ==
null)
return false;
71 if (!
mazalot.getFactionId().equals(Factions.PERSEAN))
return false;
73 bornanew = getImportantPerson(People.BORNANEW);
76 jaspis = getImportantPerson(People.JASPIS);
84 setStartingStage(Stage.GO_TO_CHALCEDON);
85 makeImportant(
chalcedon,
"$lke_searchForBornanew", Stage.GO_TO_CHALCEDON);
87 setStageOnGlobalFlag(Stage.CONTACT_RECRUITER,
"$lke_contactRecruiter");
88 makeImportant(
chalcedon,
"$lke_contactRecruiter", Stage.CONTACT_RECRUITER);
90 setStageOnGlobalFlag(Stage.GO_TO_MAZALOT,
"$lke_gotBornanewLead");
91 makeImportant(
mazalot,
"$lke_searchForBornanew2", Stage.GO_TO_MAZALOT);
93 setStageOnGlobalFlag(Stage.CONTACT_VIRENS,
"$lke_contactVirens");
94 makeImportant(
mazalot,
"$lke_contactVirens", Stage.CONTACT_VIRENS);
96 setStageOnGlobalFlag(Stage.CONTACT_BORNANEW,
"$lke_contactBornanew");
97 makeImportant(
mazalot,
"$lke_contactBornanew", Stage.CONTACT_BORNANEW);
99 setStageOnGlobalFlag(Stage.RETURN_TO_GILEAD,
"$lke_foundBornanew");
100 makeImportant(
gilead,
"$lke_returnWithBornanew", Stage.RETURN_TO_GILEAD);
101 makeImportant(
jaspis,
"$lke_returnWithBornanew", Stage.RETURN_TO_GILEAD);
103 setStageOnGlobalFlag(Stage.RETURN_TO_GILEAD2,
"$lke_foundBornanew2");
104 makeImportant(
gilead,
"$lke_returnWithBornanewNews", Stage.RETURN_TO_GILEAD2);
105 makeImportant(
jaspis,
"$lke_returnWithBornanewNews", Stage.RETURN_TO_GILEAD2);
107 setStageOnGlobalFlag(Stage.COMPLETED,
"$lke_completed");
108 addSuccessStages(Stage.COMPLETED);
111 setName(
"Knight Errant");
112 setRepFactionChangesNone();
113 setRepPersonChangesNone();
115 beginStageTrigger(Stage.COMPLETED);
116 triggerMakeNonStoryCritical(
"chalcedon",
"mazalot",
"gilead");
117 triggerSetGlobalMemoryValue(
"$lke_completed",
true);
123 beginWithinHyperspaceRangeTrigger(
chalcedon.getPlanetEntity(), 1f,
false,Stage.GO_TO_CHALCEDON);
124 triggerCreateFleet(FleetSize.LARGE, FleetQuality.DEFAULT, Factions.LUDDIC_PATH, FleetTypes.PATROL_LARGE,
chalcedon.getPlanetEntity());
125 triggerSetFleetFaction(Factions.LUDDIC_PATH);
126 triggerPickLocationAroundEntity(
chalcedon.getPlanetEntity(), 800f);
127 triggerOrderFleetPatrol(
chalcedon.getPlanetEntity());
128 triggerSpawnFleetAtPickedLocation(
"$lke_patherGoblins",
null);
129 triggerSetFleetMissionRef(
"$lke_ref");
142 beginWithinHyperspaceRangeTrigger(
chalcedon, 3f,
true, Stage.GO_TO_MAZALOT);
143 triggerCreateFleet(FleetSize.LARGER, FleetQuality.HIGHER, Factions.LUDDIC_PATH, FleetTypes.PATROL_LARGE,
mazalot.getLocationInHyperspace());
144 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
145 triggerMakeHostileAndAggressive();
146 triggerMakeLowRepImpact();
147 triggerFleetMakeFaster(
true, 2,
true);
148 triggerSetFleetAlwaysPursue();
149 triggerPickLocationTowardsEntity(
chalcedon.getStarSystem().getHyperspaceAnchor(), 30f, getUnits(1.5f));
150 triggerSpawnFleetAtPickedLocation(
"$lke_patherIntercept",
null);
151 triggerOrderFleetInterceptPlayer();
152 triggerOrderFleetEBurn(1f);
153 triggerSetFleetMissionRef(
"$lke_ref");
154 triggerFleetMakeImportant(
null, Stage.GO_TO_MAZALOT);
166 protected boolean callAction(String action, String ruleId,
final InteractionDialogAPI dialog,
167 List<Token> params,
final Map<String, MemoryAPI> memoryMap) {
179 if (
"postMissionCleanup".equals(action)) {
182 Global.
getSector().getMemoryWithoutUpdate().unset(
"$global.lke_foundBornanew");
184 mazalot.getMemoryWithoutUpdate().unset(
"$market.dardanWontTalkLKE");
188 else if (
"shootEm".equals(action))
193 else if (
"resumeMusic".equals(action))
199 else if (
"endMusic".equals(action))
206 else if (
"playMusicCombat".equals(action))
211 else if (
"playMusicSedge".equals(action))
216 else if (
"playMusicVirens".equals(action))
221 else if (
"playMusicJethro".equals(action))
226 else if (
"playMusicDardan".equals(action))
231 else if (
"didMazalotRaid".equals(action))
233 RecentUnrest.get(
mazalot).add(10,
"Raided Mazalot and caused a Luddic uprising");
236 else if (
"doCleanup".equals(action))
239 Global.
getSector().getMemoryWithoutUpdate().unset(
"$lke_gotVirensContactFreebie");
240 Global.
getSector().getMemoryWithoutUpdate().unset(
"$lke_didMazBarAgentEncounter");
241 chalcedon.getMemoryWithoutUpdate().unset(
"$lkeBuggedVIPs");
242 mazalot.getMemoryWithoutUpdate().unset(
"$lke_wontTellLied");
243 mazalot.getMemoryWithoutUpdate().unset(
"$lke_askedPMChurch");
244 mazalot.getMemoryWithoutUpdate().unset(
"$lkeSetUpVirensMeeting");
245 mazalot.getMemoryWithoutUpdate().unset(
"$dardanWontTalkLKE");
250 return super.callAction(action, ruleId, dialog, params, memoryMap);
282 if (currentStage == Stage.GO_TO_CHALCEDON) {
283 info.addPara(
"Find Bornanew. His last mission was the infiltration of a Pather cell; someone must known something about where he is.", opad);
286 else if (currentStage == Stage.CONTACT_RECRUITER) {
287 info.addPara(
"You have been told to meet with someone in a spacer bar on the surface of Chalcedon, presumably a recruiter for the Luddic Path.", opad);
290 else if (currentStage == Stage.GO_TO_MAZALOT) {
291 info.addPara(
"A Pather, Sedge, claims that Jethro Bornanew travelled to Mazalot. Find him, or find where he has gone from there.", opad);
292 addStandardMarketDesc(
"Go to " +
mazalot.getOnOrAt(),
mazalot, info, opad);
294 else if (currentStage == Stage.CONTACT_VIRENS) {
295 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);
296 addStandardMarketDesc(
"Contact Nile Virens " +
mazalot.getOnOrAt(),
mazalot, info, opad);
297 info.addImage(
nile_virens.getPortraitSprite(), width, 128, opad);
298 info.addImage(
nile_virens.getFaction().getCrest(), width, 128, opad);
300 else if (currentStage == Stage.CONTACT_BORNANEW) {
301 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);
302 addStandardMarketDesc(
"Contact Jethro Bornanew " +
mazalot.getOnOrAt(),
mazalot, info, opad);
305 else if (currentStage == Stage.RETURN_TO_GILEAD) {
306 info.addPara(
"Return with Jethro Bornanew to the office of Archcurate Jaspis.", opad);
307 addStandardMarketDesc(
"Go to " +
gilead.getOnOrAt(),
gilead, info, opad);
309 else if (currentStage == Stage.RETURN_TO_GILEAD2) {
310 info.addPara(
"Return to the office of Archcurate Jaspis with news of Jethro Bornanew's 'death'.", opad);
311 addStandardMarketDesc(
"Go to " +
gilead.getOnOrAt(),
gilead, info, opad);
320 if (currentStage == Stage.GO_TO_CHALCEDON) {
321 info.addPara(
"Go to Chalcedon and find Jethro Bornanew", tc, pad);
324 else if (currentStage == Stage.CONTACT_RECRUITER) {
325 info.addPara(
"Go to the spacer bar on Chalcedon and speak with the Luddic Path recruiter", tc, pad);
328 else if (currentStage == Stage.GO_TO_MAZALOT) {
329 info.addPara(
"Go to Mazalot and find Jethro Bornanew", tc, pad);
332 else if (currentStage == Stage.CONTACT_VIRENS) {
333 info.addPara(
"Talk to or raid Nile Virens on Mazalot", tc, pad);
336 else if (currentStage == Stage.CONTACT_BORNANEW) {
337 info.addPara(
"Go to the alleged location of Jethro Bornanew on Mazalot", tc, pad);
340 else if (currentStage == Stage.RETURN_TO_GILEAD) {
341 info.addPara(
"Return to Gilead with Bornanew", tc, pad);
344 else if (currentStage == Stage.RETURN_TO_GILEAD2) {
345 info.addPara(
"Return to Gilead with news of Bornanew's 'death'.", tc, pad);