191 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
193 if (!setGlobalReference(
"$gaVIP_ref")) {
197 requireMarketFaction(ALLOWED_FACTIONS.toArray(
new String [0]));
198 requireMarketLocationNot(
"galatia");
199 requireMarketNotHidden();
200 requireMarketNotInHyperspace();
201 preferMarketInDirectionOfOtherMissions();
206 destination = pickMarket();
207 variation = Variation.BASIC;
208 if (rollProbability(PROB_KANTA)) {
209 MarketAPI kantasDen =
Global.
getSector().getEconomy().getMarket(
"kantas_den");
210 if (kantasDen !=
null) {
211 destination = kantasDen;
212 variation = Variation.KANTA;
213 kantaRelationFirstName =
Global.
getSector().getFaction(Factions.PIRATES).createRandomPerson(genRandom).getName().getFirst();
216 if (destination ==
null)
return false;
218 faction = destination.getFaction();
219 subjectRelation = pickSubject(faction.getId());
220 if (subjectRelation ==
null)
return false;
222 event = pickEvent(faction.getId());
223 if (event ==
null)
return false;
225 if (variation == Variation.BASIC) {
226 target = findOrCreatePerson(faction.getId(), destination,
true, Ranks.CITIZEN,
227 Ranks.POST_ADMINISTRATOR, Ranks.POST_BASE_COMMANDER, Ranks.POST_STATION_COMMANDER,
228 Ranks.POST_OUTPOST_COMMANDER, Ranks.POST_PORTMASTER, Ranks.POST_FACTION_LEADER
232 }
else if (variation == Variation.KANTA) {
234 PersonDataAPI pd =
Global.
getSector().getImportantPeople().getData(
"kanta");
235 if (pd !=
null) target = pd.getPerson();
237 if (target ==
null)
return false;
240 system = destination.getStarSystem();
242 setStartingStage(Stage.DELIVER_VIP);
243 addSuccessStages(Stage.COMPLETED);
244 addFailureStages(Stage.FAILED);
245 addNoPenaltyFailureStages(Stage.FAILED_DECIV);
248 if (variation == Variation.KANTA) {
249 setGlobalFlag(
"$gaVIP_workingForKanta",
true, Stage.DELIVER_VIP);
252 makeImportant(destination,
"$gaVIP_target", Stage.DELIVER_VIP);
254 setStageOnGlobalFlag(Stage.COMPLETED,
"$gaVIP_delivered");
255 setStageOnGlobalFlag(Stage.FAILED,
"$gaVIP_failed");
256 connectWithMarketDecivilized(Stage.DELIVER_VIP, Stage.FAILED_DECIV, destination);
258 setTimeLimit(Stage.FAILED, MISSION_DAYS,
null);
259 if (variation == Variation.BASIC) {
261 setCreditReward(CreditReward.AVERAGE);
262 setRepPenaltyPerson(RepRewards.VERY_HIGH);
263 setRepPenaltyFaction(RepRewards.HIGH);
266 setCreditReward(CreditReward.HIGH);
267 setRepPenaltyPerson(RepRewards.EXTREME);
268 setRepPenaltyFaction(RepRewards.HIGH);
271 setDefaultGARepRewards();
278 piratePayment = genRoundNumber(40000, 60000);
279 mercPayment = getCreditsReward() / 2;
281 if (variation == Variation.BASIC && rollProbability(PROB_PIRATE_KIDNAPPER)) {
282 beginWithinHyperspaceRangeTrigger(destination, 3f,
false, Stage.DELIVER_VIP);
283 triggerCreateFleet(FleetSize.LARGE, FleetQuality.HIGHER, Factions.PIRATES, FleetTypes.PATROL_MEDIUM, system);
284 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
285 triggerAutoAdjustFleetStrengthMajor();
286 triggerSetStandardAggroPirateFlags();
287 triggerFleetAllowLongPursuit();
288 triggerSetFleetAlwaysPursue();
289 triggerPickLocationTowardsPlayer(system.getHyperspaceAnchor(), 90f, getUnits(1.5f));
290 triggerSpawnFleetAtPickedLocation(
"$gaVIP_pirate",
null);
291 triggerOrderFleetInterceptPlayer();
292 triggerFleetMakeImportant(
null, Stage.DELIVER_VIP);
296 if (variation == Variation.KANTA && rollProbability(PROB_MERC_KIDNAPPER)) {
297 mercFactionId = pickOne(MERC_FACTIONS.toArray(
new String[0]));
299 theMercFaction = mercFaction.getDisplayNameWithArticle();
301 beginWithinHyperspaceRangeTrigger(destination, 3f,
true, Stage.DELIVER_VIP);
302 triggerCreateFleet(FleetSize.VERY_LARGE, FleetQuality.VERY_HIGH, Factions.MERCENARY, FleetTypes.PATROL_LARGE, system);
303 triggerSetFleetFaction(Factions.INDEPENDENT);
304 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
305 triggerAutoAdjustFleetStrengthMajor();
306 triggerMakeHostileAndAggressive();
307 triggerFleetMakeFaster(
true, 2,
true);
309 triggerFleetAllowLongPursuit();
310 triggerSetFleetAlwaysPursue();
311 triggerPickLocationTowardsPlayer(system.getHyperspaceAnchor(), 90f, getUnits(1.5f));
312 triggerSpawnFleetAtPickedLocation(
"$gaVIP_merc",
null);
313 triggerOrderFleetInterceptPlayer();
314 triggerFleetMakeImportant(
null, Stage.DELIVER_VIP);
343 if (getCurrentStage() !=
null) {
344 set(
"$gaVIP_stage", ((Enum)getCurrentStage()).name());
346 set(
"$gaVIP_starName", system.getNameWithNoType());
347 set(
"$gaVIP_marketName", destination.getName());
348 set(
"$gaVIP_systemName", system.getNameWithLowercaseTypeShort());
350 set(
"$gaVIP_subjectRelation", subjectRelation);
351 set(
"$gaVIP_kantaRelationFirstName", kantaRelationFirstName);
352 set(
"$gaVIP_VIP", target);
353 set(
"$gaVIP_VIP_faction", target.getFaction().getId());
354 set(
"$gaVIP_VIPName", target.getNameString());
355 set(
"$gaVIP_VIPhisOrHer", target.getHisOrHer());
356 set(
"$gaVIP_VIPPost", target.getPost().toLowerCase());
357 set(
"$gaVIP_event", event);
359 set(
"$gaVIP_reward", Misc.getWithDGS(getCreditsReward()));
360 set(
"$gaVIP_piratePayment", Misc.getWithDGS(piratePayment));
361 set(
"$gaVIP_mercPayment", Misc.getWithDGS(mercPayment));
362 set(
"$gaVIP_theMercFaction", theMercFaction);
363 set(
"$gaVIP_mercFactionId", mercFactionId);
364 set(
"$gaVIP_timeLimit", (int)MISSION_DAYS);
365 set(
"$gaVIP_variation", variation);