47 public void modifyFleet(SDMParams p, CampaignFleetAPI fleet, Random random,
boolean withOverride) {
49 Misc.addDefeatTrigger(fleet,
"PK14thDefeated");
51 fleet.setNoFactionInName(
true);
52 fleet.setName(
"Remnants of Task Force Safeguard");
54 AICoreOfficerPlugin plugin = Misc.getAICoreOfficerPlugin(Commodities.ALPHA_CORE);
56 fleet.getFleetData().clear();
57 fleet.getFleetData().setShipNameRandom(random);
60 FleetMemberAPI member = fleet.getFleetData().addFleetMember(
"legion_xiv_Automated");
62 member.setId(
"xivtf_" + random.nextLong());
63 PersonAPI person = plugin.createPerson(Commodities.ALPHA_CORE, fleet.getFaction().getId(), random);
64 person.getStats().setSkipRefresh(
true);
65 person.getStats().setSkillLevel(Skills.CARRIER_GROUP, 1);
66 person.getStats().setSkillLevel(Skills.FIGHTER_UPLINK, 1);
67 person.getStats().setSkipRefresh(
false);
69 member.setCaptain(person);
70 ShipVariantAPI v = member.getVariant().clone();
71 v.setSource(VariantSource.REFIT);
72 v.addTag(Tags.TAG_NO_AUTOFIT);
73 v.addTag(Tags.TAG_AUTOMATED_NO_PENALTY);
74 member.setVariant(v,
false,
true);
75 fleet.setCommander(person);
77 addAutomated(fleet,
"onslaught_xiv_Elite",
null, Commodities.ALPHA_CORE, random);
79 addAutomated(fleet,
"dominator_XIV_Elite",
null, Commodities.BETA_CORE, random);
80 addAutomated(fleet,
"eagle_xiv_Elite",
null, Commodities.BETA_CORE, random);
81 addAutomated(fleet,
"falcon_xiv_Elite",
null, Commodities.BETA_CORE, random);
82 addAutomated(fleet,
"falcon_xiv_Escort",
null, Commodities.BETA_CORE, random);
84 addAutomated(fleet,
"enforcer_XIV_Elite",
null, Commodities.GAMMA_CORE, random);
85 addAutomated(fleet,
"enforcer_XIV_Elite",
null, Commodities.GAMMA_CORE, random);
86 addAutomated(fleet,
"enforcer_XIV_Elite",
null, Commodities.GAMMA_CORE, random);
89 for (FleetMemberAPI curr : fleet.getFleetData().getMembersListCopy()) {
91 curr.getRepairTracker().setCR(curr.getRepairTracker().getMaxCR());
94 for (FleetMemberAPI curr : fleet.getFleetData().getMembersListCopy()) {
95 v = curr.getVariant().clone();
96 v.setSource(VariantSource.REFIT);
97 curr.setVariant(v,
false,
false);
100 if (fleet.getInflater() instanceof DefaultFleetInflater) {
101 DefaultFleetInflater dfi = (DefaultFleetInflater) fleet.getInflater();
102 DefaultFleetInflaterParams dfip = (DefaultFleetInflaterParams)dfi.getParams();
103 dfip.allWeapons =
true;
104 dfip.averageSMods = 3;
108 DModManager.assumeAllShipsAreAutomated =
true;
109 fleet.inflateIfNeeded();
110 fleet.setInflater(
null);
111 DModManager.assumeAllShipsAreAutomated =
false;
114 for (FleetMemberAPI curr : fleet.getFleetData().getMembersListCopy()) {
115 curr.getVariant().addPermaMod(HullMods.AUTOMATED);
116 curr.getVariant().setVariantDisplayName(
"Automated");
117 curr.getVariant().addTag(Tags.TAG_AUTOMATED_NO_PENALTY);
118 curr.getVariant().addTag(Tags.VARIANT_UNRESTORABLE);
119 curr.getVariant().addTag(Tags.TAG_RETAIN_SMODS_ON_RECOVERY);
120 if (curr.isCapital()) {
121 curr.getVariant().addTag(Tags.VARIANT_ALWAYS_RECOVERABLE);
126 public static void addAutomated(CampaignFleetAPI fleet, String variantId, String shipName, String aiCore, Random random) {
127 AICoreOfficerPlugin plugin = Misc.getAICoreOfficerPlugin(Commodities.ALPHA_CORE);
129 FleetMemberAPI member = fleet.getFleetData().addFleetMember(variantId);
130 member.setId(
"xivtf_" + random.nextLong());
135 if (shipName !=
null) {
136 member.setShipName(shipName);
138 if (aiCore !=
null) {
139 PersonAPI person = plugin.createPerson(aiCore, fleet.getFaction().getId(), random);
140 member.setCaptain(person);
145 if (member.getCaptain() ==
null || !member.getCaptain().isAICore())
return;
147 PersonAPI person = member.getCaptain();
148 person.getStats().setSkipRefresh(
true);
149 String aiCoreId = person.getAICoreId();
152 person.getStats().setLevel(person.getStats().getLevel() + 1);
153 person.getStats().setSkillLevel(Skills.BALLISTIC_MASTERY, 2);
156 boolean alpha = Commodities.ALPHA_CORE.equals(aiCoreId);
157 boolean beta = Commodities.BETA_CORE.equals(aiCoreId);
158 boolean gamma = Commodities.GAMMA_CORE.equals(aiCoreId);
160 if (member.isCapital() || member.isCruiser()) {
161 person.getStats().setSkillLevel(Skills.COMBAT_ENDURANCE, 0);
162 person.getStats().setSkillLevel(Skills.MISSILE_SPECIALIZATION, 2);
193 person.getStats().setSkipRefresh(
false);