60 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
63 setGiverRank(Ranks.CITIZEN);
64 setGiverPost(pickOne(Ranks.POST_SMUGGLER, Ranks.POST_GANGSTER,
65 Ranks.POST_FENCE, Ranks.POST_CRIMINAL));
66 setGiverImportance(pickImportance());
67 setGiverFaction(Factions.PIRATES);
68 setGiverTags(Tags.CONTACT_UNDERWORLD);
70 setGiverRank(Ranks.CITIZEN);
71 setGiverPost(pickOne(Ranks.POST_TRADER, Ranks.POST_COMMODITIES_AGENT,
72 Ranks.POST_MERCHANT, Ranks.POST_INVESTOR, Ranks.POST_PORTMASTER));
73 setGiverImportance(pickImportance());
74 setGiverTags(Tags.CONTACT_TRADE);
76 findOrCreateGiver(createdAt,
false,
false);
79 PersonAPI person = getPerson();
80 if (person ==
null)
return false;
81 MarketAPI market = person.getMarket();
82 if (market ==
null)
return false;
84 if (!setPersonMissionRef(person,
"$cheapCom_ref")) {
89 setGiverIsPotentialContactOnSuccess();
92 PersonImportance importance = person.getImportance();
93 boolean canOfferRemote = importance.ordinal() >= PersonImportance.MEDIUM.ordinal();
94 boolean preferExpensive = getQuality() >= PersonImportance.HIGH.getValue();
96 if (canOfferRemote && rollProbability(
PROB_REMOTE)) {
101 CommodityOnMarketAPI com =
null;
103 requireMarketIs(market);
104 requireCommodityIsNotPersonnel();
105 requireCommodityDeficitAtMost(0);
106 requireCommodityAvailableAtLeast(1);
107 requireCommoditySurplusAtLeast(1);
109 preferCommodityIllegal();
111 requireCommodityLegal();
113 if (preferExpensive) {
114 preferCommodityTags(ReqMode.ALL, Commodities.TAG_EXPENSIVE);
116 com = pickCommodity();
119 if (com ==
null && canOfferRemote) {
125 requireMarketIsNot(market);
126 requireMarketFaction(market.getFactionId());
128 requireMarketIs(
"jangala");
130 requireCommodityIsNotPersonnel();
131 requireCommodityDeficitAtMost(0);
132 requireCommodityAvailableAtLeast(1);
133 requireCommoditySurplusAtLeast(1);
134 preferMarketInDirectionOfOtherMissions();
136 preferCommodityIllegal();
138 requireMarketFactionNotHostileTo(Factions.PLAYER);
139 requireCommodityLegal();
141 if (preferExpensive) {
142 preferCommodityTags(ReqMode.ALL, Commodities.TAG_EXPENSIVE);
144 com = pickCommodity();
149 com =
Global.
getSector().getEconomy().getMarket(
"jangala").getCommodityData(Commodities.ORGANICS);
153 if (com ==
null)
return false;
158 quantity = getRoundNumber(value / com.getCommodity().getBasePrice());
159 if (com.isIllegal()) {
177 makeImportant(
remoteContact,
"$cheapCom_hasCommodity", Stage.TALK_TO_PERSON);
179 setStartingStage(Stage.TALK_TO_PERSON);
180 setSuccessStage(Stage.COMPLETED);
181 setFailureStage(Stage.FAILED);
183 setStageOnMemoryFlag(Stage.COMPLETED,
remoteContact,
"$cheapCom_completed");
188 if (getQuality() < 0.5f) {
189 setRepFactionChangesVeryLow();
191 setRepFactionChangesLow();
193 setRepPersonChangesMedium();