34 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
38 setGiverRank(Ranks.CITIZEN);
39 setGiverPost(pickOne(Ranks.POST_AGENT, Ranks.POST_SMUGGLER, Ranks.POST_GANGSTER,
40 Ranks.POST_FENCE, Ranks.POST_CRIMINAL));
41 setGiverImportance(pickImportance());
42 setGiverFaction(Factions.PIRATES);
43 setGiverTags(Tags.CONTACT_UNDERWORLD);
44 findOrCreateGiver(createdAt,
true,
false);
47 PersonAPI person = getPerson();
48 if (person ==
null)
return false;
50 if (!setPersonMissionRef(person,
"$jabr_ref")) {
55 setGiverIsPotentialContactOnSuccess();
58 PersonImportance importance = person.getImportance();
59 int minMarketSize = 3;
60 int maxMarketSize = 9;
65 danger = RaidDangerLevel.MINIMAL;
70 danger = RaidDangerLevel.LOW;
75 danger = RaidDangerLevel.MEDIUM;
80 danger = RaidDangerLevel.HIGH;
85 danger = RaidDangerLevel.EXTREME;
89 requireMarketIsNot(createdAt);
90 requireMarketNotHidden();
91 requireMarketNotInHyperspace();
92 requireMarketFactionNotPlayer();
93 preferMarketSizeAtLeast(minMarketSize);
94 preferMarketSizeAtMost(maxMarketSize);
95 preferMarketInDirectionOfOtherMissions();
99 if (
market ==
null)
return false;
100 if (!setMarketMissionRef(
market,
"$jabr_ref")) {
104 int marines = getMarinesRequiredForCustomObjective(
market,
danger);
105 if (!isOkToOfferMissionRequiringMarines(marines)) {
109 makeImportant(
market,
"$jabr_target", Stage.JAILBREAK);
110 makeImportant(getPerson(),
"$jabr_returnHere", Stage.RETURN);
112 setStartingStage(Stage.JAILBREAK);
113 setSuccessStage(Stage.COMPLETED);
114 addFailureStages(Stage.FAILED);
116 connectWithMemoryFlag(Stage.JAILBREAK, Stage.RETURN,
market,
"$jabr_needToReturn");
117 setStageOnMemoryFlag(Stage.COMPLETED, person,
"$jabr_completed");
119 addNoPenaltyFailureStages(Stage.FAILED_DECIV);
120 connectWithMarketDecivilized(Stage.JAILBREAK, Stage.FAILED_DECIV,
market);
121 setStageOnMarketDecivilized(Stage.FAILED_DECIV, createdAt);
123 setTimeLimit(Stage.FAILED,
MISSION_DAYS,
null, Stage.RETURN);
128 int bonus = getRewardBonusForMarines(getMarinesRequiredForCustomObjective(
market,
danger));
129 setCreditRewardWithBonus(CreditReward.AVERAGE, bonus);
131 storyCost = getRoundNumber(getCreditsReward() / 2);
135 triggerComplicationBegin(Stage.RETURN, ComplicationSpawn.APPROACHING_OR_ENTERING,
136 createdAt.getStarSystem(), Factions.MERCENARY,
137 "the escapee",
"they",
"the escapee from " +
market.getName(),
139 true, ComplicationRepImpact.NONE,
null);
142 triggerComplicationEnd(
true);
157 set(
"$jabr_barEvent", isBarEvent());
158 set(
"$jabr_manOrWoman", getPerson().getManOrWoman());
159 set(
"$jabr_heOrShe", getPerson().getHeOrShe());
160 set(
"$jabr_hisOrHer", getPerson().getHisOrHer());
161 set(
"$jabr_HisOrHer", Misc.ucFirst(getPerson().getHisOrHer()));
162 set(
"$jabr_reward", Misc.getWithDGS(getCreditsReward()));
163 set(
"$jabr_storyCost", Misc.getWithDGS(
storyCost));
165 set(
"$jabr_systemName",
market.getStarSystem().getNameWithLowercaseTypeShort());
166 set(
"$jabr_marketName",
market.getName());
167 set(
"$jabr_marketOnOrAt",
market.getOnOrAt());
168 set(
"$jabr_marketFactionArticle",
market.getFaction().getPersonNamePrefixAOrAn());
169 set(
"$jabr_marketFaction",
market.getFaction().getPersonNamePrefix());
170 set(
"$jabr_factionColor",
market.getFaction().getBaseUIColor());
171 set(
"$jabr_dist", getDistanceLY(
market));
173 set(
"$jabr_danger",
danger);
174 set(
"$jabr_marines", Misc.getWithDGS(getMarinesRequiredForCustomObjective(
market,
danger)));
192 Color h = Misc.getHighlightColor();
193 if (currentStage == Stage.JAILBREAK) {
194 info.addPara(
"Conduct jailbreak " +
market.getOnOrAt() +
" " +
market.getName() +
195 " in the " +
market.getStarSystem().getNameWithLowercaseTypeShort(), tc, pad);
197 }
else if (currentStage == Stage.RETURN) {
198 info.addPara(getReturnTextShort(getPerson().getMarket().getName()), tc, pad);