90 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
92 if (!setGlobalReference(
"$sdtu_ref",
"$sdtu_inProgress")) {
96 setPersonOverride(
null);
98 ram = getImportantPerson(People.RAM);
99 if (
ram ==
null)
return false;
101 hyder = getImportantPerson(People.HYDER);
102 if (
hyder ==
null)
return false;
104 caden = getImportantPerson(People.CADEN);
105 if (
caden ==
null)
return false;
107 macario = getImportantPerson(People.MACARIO);
108 if (
macario ==
null)
return false;
111 umbra =getMarket(
"umbra");
112 if (
umbra ==
null)
return false;
113 if (!
umbra.getFactionId().equals(
"pirates"))
return false;
115 volturn = getMarket(
"volturn");
116 if (
volturn ==
null)
return false;
117 if (!
volturn.getFactionId().equals(
"sindrian_diktat"))
return false;
119 sindria = getMarket(
"sindria");
120 if (
sindria ==
null)
return false;
121 if (!
sindria.getFactionId().equals(
"sindrian_diktat"))
return false;
126 setStartingStage(Stage.MEET_RAM);
127 addSuccessStages(Stage.COMPLETED);
145 makeImportant(
volturn,
"$sdtu_meetRamOnVolturn", Stage.MEET_RAM);
146 makeImportant(
hyder,
"$sdtu_meetHyder", Stage.MEET_HYDER);
147 makeImportant(
macario,
"$sdtu_didHyderMeeting", Stage.RETURN_TO_MACARIO);
148 makeImportant(
umbra,
"$sdtu_extractAgent", Stage.EXTRACT_AGENT);
149 makeImportant(
caden,
"$sdtu_meetCaden", Stage.MEET_CADEN);
150 makeImportant(
macario,
"$sdtu_didCadenMeeting", Stage.AGAIN_WTH_MACARIO);
152 makeImportant(
macario,
"$sdtu_deliverNews", Stage.DELIVER_NEWS);
154 connectWithGlobalFlag(Stage.MEET_RAM, Stage.INTERCEPT_FLEET,
"$sdtu_interceptFleet");
155 connectWithGlobalFlag(Stage.INTERCEPT_FLEET, Stage.MEET_HYDER,
"$sdtu_meetHyder");
156 connectWithGlobalFlag(Stage.MEET_HYDER, Stage.RETURN_TO_MACARIO,
"$sdtu_reportToMacario1");
157 connectWithGlobalFlag(Stage.RETURN_TO_MACARIO, Stage.EXTRACT_AGENT,
"$sdtu_extractAgent");
158 connectWithGlobalFlag(Stage.EXTRACT_AGENT, Stage.MEET_CADEN,
"$sdtu_meetCaden");
159 connectWithGlobalFlag(Stage.MEET_CADEN, Stage.AGAIN_WTH_MACARIO,
"$sdtu_reportToMacario2");
160 connectWithGlobalFlag(Stage.AGAIN_WTH_MACARIO, Stage.EMERGENCY_INTERCEPT,
"$sdtu_emergencyIntercept");
161 connectWithGlobalFlag(Stage.EMERGENCY_INTERCEPT, Stage.DELIVER_NEWS,
"$sdtu_deliverNews");
163 setStageOnGlobalFlag(Stage.COMPLETED,
"$sdtu_completed");
165 setRepFactionChangesNone();
166 setRepPersonChangesNone();
170 beginStageTrigger(Stage.INTERCEPT_FLEET);
171 triggerCreateFleet(FleetSize.SMALL, FleetQuality.DEFAULT, Factions.DIKTAT, FleetTypes.PATROL_MEDIUM,
sindria.getStarSystem());
172 triggerMakeNonHostile();
173 triggerMakeNoRepImpact();
174 triggerMakeFleetIgnoredByOtherFleets();
175 triggerMakeFleetIgnoreOtherFleetsExceptPlayer();
176 triggerMakeFleetIgnoreOtherFleetsExceptPlayer();
177 triggerPickLocationAroundEntity(
volturn.getPlanetEntity(), 800f);
178 triggerSetFleetMissionRef(
"$sdtu_ref");
179 triggerFleetMakeImportant(
null, Stage.INTERCEPT_FLEET);
180 triggerFleetAddDefeatTrigger(
"sdtuPatrolDefeated");
181 triggerSaveGlobalFleetRef(
"$sdtu_traitorPatrol");
183 triggerOrderFleetPatrol(
sindria.getStarSystem());
184 triggerSpawnFleetAtPickedLocation(
"$sdtu_interceptFleet",
null);
189 beginStageTrigger(Stage.EXTRACT_AGENT);
190 triggerCreateFleet(FleetSize.LARGE, FleetQuality.DEFAULT, Factions.PIRATES, FleetTypes.PATROL_MEDIUM,
umbra.getPlanetEntity());
191 triggerFleetSetName(
"ARC Raider Flotilla");
192 triggerSetFleetFaction(Factions.PIRATES);
193 triggerAutoAdjustFleetStrengthMajor();
194 triggerSetStandardAggroPirateFlags();
196 triggerPickLocationTowardsPlayer(
umbra.getPlanetEntity(), 90f, getUnits(0.25f));
197 triggerPickLocationAroundEntity(
umbra.getPlanetEntity(), 200f);
198 triggerSpawnFleetAtPickedLocation(
"$sdtu_antisFleet",
null);
199 triggerSetFleetMissionRef(
"$sdtu_ref");
203 beginStageTrigger(Stage.MEET_CADEN);
204 triggerCreateFleet(FleetSize.LARGER, FleetQuality.DEFAULT, Factions.PIRATES, FleetTypes.PATROL_LARGE,
umbra.getPlanetEntity());
205 triggerFleetSetName(
"ARC Raider Patrol");
206 triggerSetFleetFaction(Factions.PIRATES);
207 triggerAutoAdjustFleetStrengthMajor();
208 triggerSetStandardAggroPirateFlags();
210 triggerPickLocationAroundEntity(
umbra.getPlanetEntity(), 500f);
211 triggerSpawnFleetAtPickedLocation(
"$sdtu_antisRevengeFleet",
null);
212 triggerSetFleetMissionRef(
"$sdtu_ref");
216 beginStageTrigger(Stage.COMPLETED);
217 triggerSetGlobalMemoryValue(
"$sdtu_missionCompleted",
true);
238 protected boolean callAction(String action, String ruleId,
final InteractionDialogAPI dialog,
239 List<Token> params,
final Map<String, MemoryAPI> memoryMap) {
251 if (
"spawnDebris".equals(action)) {
252 StarSystemAPI system =
sindria.getStarSystem();
253 DebrisFieldParams p =
new DebrisFieldParams(
258 p.source = DebrisFieldSource.MIXED;
259 p.baseSalvageXP = 500;
260 debris = Misc.addDebrisField(system, p, StarSystemGenerator.random);
261 SalvageSpecialAssigner.assignSpecialForDebrisField(
debris);
262 debris.getMemoryWithoutUpdate().set(
"$sdtuAgentDebris",
true);
264 List<SectorEntityToken> jumpPoints = system.getJumpPoints();
265 debris.setCircularOrbit(jumpPoints.get(jumpPoints.size()-1), 90, 200, 100);
268 Misc.makeImportant(
debris, getMissionId());
271 beginStageTrigger(Stage.EMERGENCY_INTERCEPT);
272 triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.VERY_HIGH, Factions.MERCENARY, FleetTypes.MERC_PRIVATEER, system);
273 triggerSetFleetFaction(Factions.INDEPENDENT);
274 triggerFleetSetName(
"Mercenary Bounty Hunter");
275 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
276 triggerMakeHostileAndAggressive();
277 triggerMakeNoRepImpact();
280 triggerPickLocationAroundEntity(
debris, 500f);
281 triggerSpawnFleetAtPickedLocation(
"$sdtu_merc",
null);
282 triggerOrderFleetPatrol(
true,
debris);
286 }
else if (
"makeDerbisUnimportant".equals(action)) {
290 Misc.makeUnimportant(
debris, getMissionId());
294 else if (
"shootEm".equals(action))
299 else if (
"endMusic".equals(action))
306 else if (
"playMusicMacario".equals(action))
311 else if (
"playMusicCaden".equals(action))
316 else if (
"playMusicHyder".equals(action))
321 else if (
"playMusicSons".equals(action))
326 else if (
"resumeMusic".equals(action))
332 else if (
"giveKineticBlasters".equals(action)) {
334 cargo.addWeapons(
"kineticblaster", 3);
336 AddRemoveCommodity.addStackGainText(stack, dialog.getTextPanel());
339 else if (
"giveGigacannon".equals(action)) {
341 cargo.addWeapons(
"gigacannon", 2);
343 AddRemoveCommodity.addStackGainText(stack, dialog.getTextPanel());
346 else if (
"giveExecutor".equals(action)){
347 String variantId =
"executor_Hull";
350 Global.
getSector().getPlayerFleet().getFleetData().addFleetMember(member);
351 AddShip.addShipGainText(member, dialog.getTextPanel());
354 else if (
"replacePatrolLeader".equals(action)) {
361 CampaignFleetAPI fleet = (CampaignFleetAPI)dialog.getInteractionTarget();
363 fleet.getAI().addAssignmentAtStart(FleetAssignment.STANDING_DOWN, fleet, 0.5f + 0.5f * (
float) Math.random(),
null);
367 BattleAPI b = pf.getBattle();
376 else if (
"tryMakeHyderImportant".equals(action)){
377 for (CampaignFleetAPI fleet :
volturn.getStarSystem().getFleets()) {
378 if (fleet.getName().equals(
"Askonia System Defense Armada")){
379 Misc.makeImportant(fleet,
"$sdtu_ref");
384 else if (
"tryMakeHyderUnimportant".equals(action)){
385 for (CampaignFleetAPI fleet :
volturn.getStarSystem().getFleets()) {
386 if (fleet.getName().equals(
"Askonia System Defense Armada")){
387 Misc.makeUnimportant(fleet,
"$sdtu_ref");
392 else if (
"tryMakeCadenImportant".equals(action)){
393 for (CampaignFleetAPI fleet :
volturn.getStarSystem().getFleets()) {
394 if (fleet.getName().equals(
"Lion's Guard Grand Armada")){
395 Misc.makeImportant(fleet,
"$sdtu_ref");
400 else if (
"tryMakeCadenUnimportant".equals(action)){
401 for (CampaignFleetAPI fleet :
volturn.getStarSystem().getFleets()) {
402 if (fleet.getName().equals(
"Lion's Guard Grand Armada")){
403 Misc.makeUnimportant(fleet,
"$sdtu_ref");
408 else if (
"makeMercHostile".equals(action)){
409 for (CampaignFleetAPI fleet :
volturn.getStarSystem().getFleets()) {
410 if (fleet.getMemoryWithoutUpdate().contains(
"$sdtu_merc")){
412 fleet.getMemoryWithoutUpdate().set(MemFlags.MEMORY_KEY_ALLOW_LONG_PURSUIT,
true);
414 Misc.makeHostile(fleet);
416 AbilityPlugin eb = fleet.getAbility(Abilities.EMERGENCY_BURN);
417 if (eb !=
null && eb.isUsable()) eb.activate();
425 return super.callAction(action, ruleId, dialog, params, memoryMap);
470 Color h = Misc.getHighlightColor();
471 if (currentStage == Stage.MEET_RAM) {
472 info.addPara(
"Meet Yannick Ram at his safehouse on Volturn.", tc, pad);
475 if (currentStage == Stage.INTERCEPT_FLEET) {
476 info.addPara(
"Intercept the traitor's patrol fleet in the Askonia system.", tc, pad);
479 else if (currentStage == Stage.MEET_HYDER) {
480 info.addPara(
"Speak with Oxana Hyder. She commands the Askonia System Defense Armada.", tc, pad);
483 else if (currentStage == Stage.RETURN_TO_MACARIO) {
484 info.addPara(
"Talk to Macario, on Sindria, about Hyder.", tc, pad);
487 else if (currentStage == Stage.EXTRACT_AGENT) {
488 info.addPara(
"Extract the double agent from Umbra.", tc, pad);
491 else if (currentStage == Stage.MEET_CADEN) {
492 info.addPara(
"Speak with Horacio Caden. He commands the Lion's Guard Grand Armada.", tc, pad);
495 else if (currentStage == Stage.AGAIN_WTH_MACARIO) {
496 info.addPara(
"Talk to Macario, on Sindria, about Caden.", tc, pad);
499 else if (currentStage == Stage.EMERGENCY_INTERCEPT) {
500 info.addPara(
"Intercept Macario's agent at the given location.", tc, pad);
503 else if (currentStage == Stage.DELIVER_NEWS) {
504 info.addPara(
"Return to Macario, on Sindria, with news of his agent's death.", tc, pad);