36 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
40 setGiverRank(Ranks.CITIZEN);
41 setGiverPost(pickOne(Ranks.POST_AGENT, Ranks.POST_SMUGGLER, Ranks.POST_GANGSTER,
42 Ranks.POST_FENCE, Ranks.POST_CRIMINAL));
43 setGiverImportance(pickImportance());
44 setGiverFaction(Factions.PIRATES);
45 setGiverTags(Tags.CONTACT_UNDERWORLD);
46 findOrCreateGiver(createdAt,
false,
false);
50 thing = pickOne(
"an apparently inert data chip",
51 "a rad-shielded salvors' TriPad",
52 "a cloudy, damaged data crystal",
53 "a small EM-shielded safe",
54 "a hardcopy book made of paper",
55 "a sewing kit with strangely curved needles",
56 "a single rose in a miniaturized stasis field",
57 "a small packet of seeds embossed with a Luddic sigil",
58 "an aged, twisted piece of wood",
59 "an irradiated bulkhead in a shielded crate",
60 "a black Volturnian lobster shell",
61 "a biosample in sealed cylinder",
62 "a peculiar vial of blood",
63 "a powdered substance in a triple-sealed container",
64 "a single vacuum-desiccated finger",
65 "a tiny unicorn pendant",
66 "a delicate crane made of folded paper",
67 "a scratched golden ring",
68 "a gravimatic trap holding some kind of glowing mote",
69 "a battered Hegemony officer's pistol",
70 "a large brilliant-cut diamond",
71 "a captain's safe cut from its bulkhead",
72 "a glowing blue crystal in a sealed tube"
75 PersonAPI person = getPerson();
76 if (person ==
null)
return false;
79 if (!setPersonMissionRef(person,
"$ddro_ref")) {
84 setGiverIsPotentialContactOnSuccess();
89 requireSystemNot(createdAt.getStarSystem());
90 requireSystemInterestingAndNotUnsafeOrCore();
91 preferSystemInInnerSector();
92 preferSystemUnexplored();
93 preferSystemInDirectionOfOtherMissions();
96 if (
system ==
null)
return false;
98 target = spawnMissionNode(
new LocData(EntityLocationType.HIDDEN_NOT_NEAR_STAR,
null,
system));
99 if (!setEntityMissionRef(
target,
"$ddro_ref"))
return false;
101 makeImportant(
target,
"$ddro_target", Stage.DROP_OFF);
104 setStartingStage(Stage.DROP_OFF);
105 setSuccessStage(Stage.COMPLETED);
106 setFailureStage(Stage.FAILED);
108 setStageOnMemoryFlag(Stage.COMPLETED,
target,
"$ddro_completed");
112 setCreditReward(CreditReward.HIGH);
115 triggerComplicationBegin(Stage.DROP_OFF, ComplicationSpawn.APPROACHING_OR_ENTERING,
117 "the " + getWithoutArticle(
thing),
"it",
118 "the " + getWithoutArticle(
thing) +
" given to you by " + person.getNameString(),
120 true, ComplicationRepImpact.NONE,
null);
121 triggerComplicationEnd(
true);
129 super.notifyEnding();
132 PersonAPI person = getPerson();
133 if (person ==
null || person.getMarket() ==
null)
return;
134 String patrolFaction = person.getMarket().getFactionId();
135 if (patrolFaction.equals(person.getFaction().getId()) ||
136 Misc.isPirateFaction(person.getMarket().getFaction()) ||
137 Factions.PLAYER.equals(patrolFaction)) {
145 e.
triggerCreateFleet(FleetSize.LARGE, FleetQuality.DEFAULT, patrolFaction, FleetTypes.PATROL_LARGE,
new Vector2f());
147 "the dead drop coordinates",
"they",
148 "the dead drop coordinates given to you by " + person.getNameString(),
150 true, ComplicationRepImpact.LOW,
153 e.triggerMakeLowRepImpact();
154 e.triggerSetPatrol();
163 set(
"$ddro_barEvent", isBarEvent());
164 set(
"$ddro_manOrWoman", getPerson().getManOrWoman());
165 set(
"$ddro_heOrShe", getPerson().getHeOrShe());
166 set(
"$ddro_reward", Misc.getWithDGS(getCreditsReward()));
168 set(
"$ddro_aOrAnThing",
thing);
169 set(
"$ddro_thing", getWithoutArticle(
thing));
171 set(
"$ddro_personName", getPerson().getNameString());
172 set(
"$ddro_systemName",
system.getNameWithLowercaseTypeShort());
173 set(
"$ddro_dist", getDistanceLY(
target));
188 Color h = Misc.getHighlightColor();
189 if (currentStage == Stage.DROP_OFF) {
190 info.addPara(
"Deliver " + getWithoutArticle(
thing) +
" to specified location in the " +
191 system.getNameWithLowercaseTypeShort(), tc, pad);