36 data.difficulty = difficulty;
37 data.stage = bountyStage;
40 mission.requireMarketSizeAtLeast(4);
41 mission.requireMarketNotHidden();
42 mission.requireMarketHasSpaceport();
43 mission.requireMarketNotInHyperspace();
44 mission.requireMarketFactionCustom(ReqMode.NOT_ANY, Factions.CUSTOM_DECENTRALIZED);
45 mission.requireMarketFactionNot(Factions.PIRATES);
46 mission.requireMarketFactionNotPlayer();
47 mission.requireMarketLocationNot(createdAt.getContainingLocation());
48 MarketAPI target = mission.pickMarket();
50 if (target ==
null || target.getStarSystem() ==
null)
return null;
53 StarSystemAPI system = target.getStarSystem();
57 FleetSize size = FleetSize.SMALL;
58 FleetQuality quality = FleetQuality.DEFAULT;
59 OfficerQuality oQuality = OfficerQuality.LOWER;
60 OfficerNum oNum = OfficerNum.FEWER;
61 String type = FleetTypes.TRADE;
63 if (difficulty <= 3) {
64 size = FleetSize.TINY;
65 type = FleetTypes.TRADE_SMALL;
70 mission.triggerCreateFleet(size, quality, Factions.INDEPENDENT, type, data.
system);
71 mission.triggerSetFleetOfficers(oNum, oQuality);
72 mission.triggerSetFleetNoCommanderSkills();
73 mission.triggerSetFleetComposition(1f, 0.2f, 0f, 0f, 0f);
74 mission.triggerSetFleetProbabilityCombatFreighters(0f);
75 mission.triggerPickLocationAtInSystemJumpPoint(data.
system);
76 mission.triggerSpawnFleetAtPickedLocation(
null,
null);
78 String expensive = mission.pickOne(Commodities.LUXURY_GOODS,
79 Commodities.RARE_METALS, Commodities.VOLATILES, Commodities.LOBSTER);
80 String cheap = mission.pickOne(Commodities.DOMESTIC_GOODS, Commodities.FOOD, Commodities.ORGANICS);
82 mission.triggerAddCommodityFractionDrop(expensive, 0.25f);
83 mission.triggerAddCommodityFractionDrop(cheap, 0.25f);
84 mission.triggerFleetSetPatrolActionText(
"waiting for customs inspection");
85 mission.triggerOrderFleetPatrol(data.
system,
true, target.getPrimaryEntity());
86 mission.triggerFleetSetPatrolLeashRange(800f);
89 if (data.
fleet ==
null)
return null;
91 data.custom1 = target;
102 FleetSize size = FleetSize.SMALL;
103 FleetQuality quality = FleetQuality.DEFAULT;
104 OfficerQuality oQuality = OfficerQuality.DEFAULT;
105 OfficerNum oNum = OfficerNum.DEFAULT;
106 String type = FleetTypes.PATROL_MEDIUM;
110 if (difficulty > 6) num = 2;
112 for (
int i = 0; i < num; i++) {
113 if (difficulty <= 2) {
114 size = FleetSize.TINY;
115 type = FleetTypes.PATROL_SMALL;
116 }
else if (difficulty <= 3) {
117 size = FleetSize.VERY_SMALL;
118 type = FleetTypes.PATROL_SMALL;
119 }
else if (difficulty <= 4) {
120 size = FleetSize.SMALL;
121 type = FleetTypes.PATROL_SMALL;
122 }
else if (difficulty <= 5) {
123 size = FleetSize.MEDIUM;
124 type = FleetTypes.PATROL_MEDIUM;
126 size = FleetSize.LARGE;
127 type = FleetTypes.PATROL_LARGE;
130 MarketAPI market = (MarketAPI) data.
custom1;
131 mission.beginWithinHyperspaceRangeTrigger(market, 1f,
false, data.
stage);
132 mission.triggerCreateFleet(size, quality, market.getFactionId(), type, market.getPrimaryEntity());
133 mission.triggerSetFleetOfficers(oNum, oQuality);
134 mission.triggerSetPatrol();
135 mission.triggerSpawnFleetNear(data.
fleet,
null,
null);
136 mission.triggerFleetSetPatrolActionText(
"guarding " + data.
fleet.getName().toLowerCase());
137 mission.triggerFleetSetPatrolLeashRange(100f);
138 mission.triggerOrderFleetPatrol(data.
system,
true, data.
fleet);
139 mission.endTrigger();