26 if (!(point.
custom instanceof RemnantStationFleetManager))
return;
29 RemnantStationFleetManager fm = (RemnantStationFleetManager) point.
custom;
34 if (fm.getSource() !=
null && fm.getSource().getStarSystem() !=
null &&
35 fm.getSource().getStarSystem().hasTag(Tags.THEME_REMNANT_SUPPRESSED)) {
40 difficulty += (int) Math.min(fm.getTotalLost() * mult, max);
41 difficulty += random.nextInt(4);
42 if (difficulty > 10) difficulty = 10;
44 FleetCreatorMission m =
new FleetCreatorMission(random);
49 FleetSize size = FleetSize.MEDIUM;
50 FleetQuality quality = FleetQuality.VERY_HIGH;
51 OfficerQuality oQuality = OfficerQuality.AI_MIXED;
52 OfficerNum oNum = OfficerNum.ALL_SHIPS;
53 String type = FleetTypes.PATROL_SMALL;
55 if (difficulty <= 1) {
56 size = FleetSize.VERY_SMALL;
57 type = FleetTypes.PATROL_SMALL;
58 oQuality = OfficerQuality.AI_GAMMA;
59 }
else if (difficulty <= 2) {
60 size = FleetSize.SMALL;
61 type = FleetTypes.PATROL_SMALL;
62 oQuality = OfficerQuality.AI_GAMMA;
63 }
else if (difficulty <= 5) {
64 size = FleetSize.MEDIUM;
65 type = FleetTypes.PATROL_SMALL;
66 oQuality = OfficerQuality.AI_BETA_OR_GAMMA;
67 }
else if (difficulty <= 7) {
68 size = FleetSize.LARGE;
69 type = FleetTypes.PATROL_MEDIUM;
70 oQuality = OfficerQuality.AI_BETA_OR_GAMMA;
71 }
else if (difficulty == 8) {
72 size = FleetSize.LARGE;
73 type = FleetTypes.PATROL_LARGE;
74 oQuality = OfficerQuality.AI_MIXED;
75 }
else if (difficulty == 9) {
76 size = FleetSize.LARGER;
77 type = FleetTypes.PATROL_LARGE;
78 oQuality = OfficerQuality.AI_ALPHA;
80 size = FleetSize.VERY_LARGE;
81 type = FleetTypes.PATROL_LARGE;
82 oQuality = OfficerQuality.AI_ALPHA;
85 m.triggerCreateFleet(size, quality, Factions.REMNANTS, type, loc);
86 m.triggerSetFleetOfficers(oNum, oQuality);
87 m.triggerSetRemnantConfigActive();
88 m.triggerFleetUnsetAllowLongPursuit();
90 CampaignFleetAPI fleet = m.createFleet();
92 point.
where.addEntity(fleet);
93 fleet.setLocation(point.
loc.x, point.
loc.y);
94 Vector2f spawnLoc = Misc.getPointWithinRadius(point.
loc, 1000f);
95 SectorEntityToken e = point.
where.createToken(spawnLoc);
96 String actionText =
"patrolling";
97 if (difficulty <= 2) actionText =
"reconnoitering";
98 fleet.addAssignment(FleetAssignment.PATROL_SYSTEM, e, 30f * random.nextFloat(), actionText);
99 fleet.addAssignment(FleetAssignment.GO_TO_LOCATION, fm.getSource(), 1000f,
"returning to " + fm.getSource().getName());
100 fleet.addAssignment(FleetAssignment.ORBIT_PASSIVE, fm.getSource(), 3f + random.nextFloat() * 2f,
"uploading encrypted data");
101 fleet.addAssignment(FleetAssignment.GO_TO_LOCATION_AND_DESPAWN, fm.getSource(), 10f);
102 fleet.addScript(
new AutoDespawnScript(fleet));