58 data.difficulty = difficulty;
60 mission.requireMarketSizeAtLeast(4);
61 mission.requireMarketNotHidden();
62 mission.requireMarketHasSpaceport();
63 mission.requireMarketNotInHyperspace();
64 mission.requireMarketFactionCustom(ReqMode.NOT_ANY, Factions.CUSTOM_DECENTRALIZED);
65 mission.requireMarketFactionNot(Factions.PIRATES);
66 mission.requireMarketFactionNotPlayer();
67 mission.requireMarketLocationNot(createdAt.getContainingLocation());
68 MarketAPI target = mission.pickMarket();
70 if (target ==
null || target.getStarSystem() ==
null)
return null;
73 StarSystemAPI system = target.getStarSystem();
78 if (difficulty > 6) num = 2;
79 if (difficulty > 8) num = 3;
80 float protectorDiff = difficulty - 3;
82 FleetSize size = FleetSize.MEDIUM;
83 FleetQuality quality = FleetQuality.DEFAULT;
84 String type = FleetTypes.PATROL_MEDIUM;
85 OfficerQuality oQuality = OfficerQuality.DEFAULT;
86 OfficerNum oNum = OfficerNum.DEFAULT;
88 for (
int i = 0; i < num; i++) {
89 float diff = difficulty;
90 if (i > 0) diff = protectorDiff;
93 size = FleetSize.TINY;
94 type = FleetTypes.PATROL_SMALL;
95 }
else if (diff <= 3) {
96 size = FleetSize.VERY_SMALL;
97 type = FleetTypes.PATROL_SMALL;
98 }
else if (diff <= 4) {
99 size = FleetSize.SMALL;
100 type = FleetTypes.PATROL_SMALL;
101 }
else if (difficulty <= 5) {
102 size = FleetSize.MEDIUM;
103 type = FleetTypes.PATROL_MEDIUM;
105 size = FleetSize.LARGE;
106 type = FleetTypes.PATROL_LARGE;
110 mission.triggerCreateFleet(size, quality, target.getFactionId(), type, data.
system);
111 mission.triggerSetFleetOfficers(oNum, oQuality);
112 mission.triggerAutoAdjustFleetSize(size, size.next());
113 mission.triggerFleetAllowLongPursuit();
114 mission.triggerFleetSetAllWeapons();
116 mission.triggerSetPatrol();
119 mission.triggerSpawnFleetNear(target.getPrimaryEntity(),
null,
null);
120 mission.triggerFleetSetPatrolActionText(
"patrolling");
121 mission.triggerOrderFleetPatrol(data.
system,
true, Tags.JUMP_POINT, Tags.OBJECTIVE);
122 mission.triggerOrderExtraPatrolPoints(target.getPrimaryEntity());
124 mission.triggerSpawnFleetNear(data.
fleet,
null,
null);
125 mission.triggerFleetSetPatrolActionText(
"guarding " + data.
fleet.getName().toLowerCase());
126 mission.triggerFleetSetPatrolLeashRange(100f);
127 mission.triggerOrderFleetPatrol(data.
system,
true, data.
fleet);
130 CampaignFleetAPI fleet =
createFleet(mission, data);
136 if (data.
fleet ==
null)
return null;