37 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
40 setGiverRank(Ranks.CITIZEN);
41 setGiverPost(pickOne(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);
49 PersonAPI person = getPerson();
50 if (person ==
null)
return false;
51 MarketAPI market = person.getMarket();
52 if (market ==
null)
return false;
53 if (market.isPlayerOwned())
return false;
55 if (!setPersonMissionRef(person,
"$hijack_ref")) {
60 setGiverIsPotentialContactOnSuccess();
65 ShipPickParams params =
new ShipPickParams(ShipPickMode.PRIORITY_THEN_ALL);
68 ShipVariantAPI variant =
null;
69 for (
int i = 0; i < 10; i++) {
70 List<ShipRolePick> picks = market.getFaction().pickShip(role, params,
null, genRandom);
71 if (picks.isEmpty())
return false;
72 String variantId = picks.get(0).variantId;
75 if (variant.getHullSpec().hasTag(Tags.NO_SELL)) {
81 if (variant ==
null)
return false;
84 assignShipName(
member, Factions.INDEPENDENT);
86 float quality = ShipQuality.getShipQuality(market, market.getFaction().getId());
87 float averageDmods = DefaultFleetInflater.getAverageDmodsForQuality(quality);
88 int addDmods = DefaultFleetInflater.getNumDModsToAdd(variant, averageDmods, genRandom);
97 setRepFactionChangesTiny();
98 setRepPersonChangesVeryLow();
100 switch (
member.getHullSpec().getHullSize()) {
103 setRepFactionChangesVeryLow();
104 setRepPersonChangesLow();
133 protected boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List<Token> params,
134 Map<String, MemoryAPI> memoryMap) {
135 if (
"showShip".equals(action)) {
136 dialog.getVisualPanel().showFleetMemberInfo(
member,
true);
138 }
else if (
"showPerson".equals(action)) {
139 dialog.getVisualPanel().showPersonInfo(getPerson(),
true);