Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void levelCommander(PersonAPI commander, CampaignFleetAPI fleet, CommanderType commanderType, String faction, float level)
- {
- FactionStyle factionStyle = FactionStyle.getStyle(faction);
- commander.getStats().addXP(levelUp.getXPForLevel((int)(level * factionStyle.xpMult * Global.getSettings().getFloat("aiLevelFactor"))));
- commander.getStats().levelUpIfNeeded();
- commander.getStats().addAptitudePoints(2);
- commander.getStats().addSkillPoints(6);
- SSP_FleetInjector.CommanderType.AptitudeData apt = commanderType.getAptitudes(commander.getStats().getAptitudePoints(), factionStyle);
- SSP_LevelUpper.levelUp(commander, fleet, apt.combat, apt.leadership, apt.technology, faction);
- }
- public static void levelFleet(CampaignFleetAPI fleet, CrewType crewType, FleetStyle fleetStyle, String faction)
- {
- FactionStyle factionStyle = FactionStyle.getStyle(faction);
- List<FleetMemberAPI> members = fleet.getFleetData().getMembersListCopy();
- int crew = 0;
- for (FleetMemberAPI member : members) {
- crew += (int)((member.getMinCrew() + member.getMaxCrew() * 0.25F) / 1.25F);
- }
- SSP_FleetInjector.CrewType.CrewData data = crewType.getCrewData(crew, factionStyle);
- SSP_LevelUpper.levelCrew(fleet, crew, data.green, data.regular, data.veteran, data.elite);
- fleet.forceSync();
- SSP_LevelUpper.flavorCaptains(fleet, fleetStyle.cowardly * factionStyle.cowardly, fleetStyle.cautious * factionStyle.cautious, fleetStyle.steady * factionStyle.steady, fleetStyle.aggressive * factionStyle.aggressive, fleetStyle.suicidal * factionStyle.suicidal, fleetStyle.fearless * factionStyle.fearless);
- for (FleetMemberAPI member : members) {
- member.getStats().getAutofireAimAccuracy().modifyFlat("ssp_AIFleetBonus", fleet.getCommanderStats().getSkillLevel("command_experience") * 0.05F);
- }
- }
- /**
- * Used by Starsector Plus
- * @param fleet
- * @param market
- * @param stability
- * @param qualityFactor
- * @param type
- */
- public static void injectFleet(CampaignFleetAPI fleet, MarketAPI market, Float stability, Float qualityFactor, String type) {
- boolean haveSSP = ExerelinUtils.isSSPInstalled();
- if (!haveSSP) return;
- String faction = fleet.getFaction().getId();
- if (!INJECTOR_AFFECTED_FACTIONS.contains(faction)) {
- return;
- }
- MemoryAPI memory = fleet.getMemoryWithoutUpdate();
- int maxFP = memory.contains("$maxFP") ? ((Integer)memory.get("$maxFP")).intValue() : fleet.getFleetPoints();
- if ((type != null) && (!type.isEmpty())) {
- switch (type)
- {
- case "exerelinInvasionFleet":
- levelCommander(fleet.getCommander(), fleet, CommanderType.ELITE, faction, (maxFP + 100.0F) / ((float)Math.random() * 3.0F + 6.0F));
- SSP_FleetFactory.createGenericFleet(fleet, faction, qualityFactor, maxFP);
- levelFleet(fleet, CrewType.ELITE, FleetStyle.ELITE, faction);
- break;
- case "exerelinInvasionSupportFleet":
- levelCommander(fleet.getCommander(), fleet, CommanderType.WAR, faction, (maxFP + 100.0F) / ((float)Math.random() * 3.0F + 6.0F));
- SSP_FleetFactory.createGenericFleet(fleet, faction, qualityFactor, maxFP);
- levelFleet(fleet, CrewType.MILITARY, FleetStyle.MILITARY, faction);
- break;
- case "exerelinResponseFleet":
- levelCommander(fleet.getCommander(), fleet, CommanderType.WAR, faction, (maxFP + 100.0F) / ((float)Math.random() * 3.0F + 6.0F));
- SSP_FleetFactory.createGenericFleet(fleet, faction, qualityFactor, maxFP);
- levelFleet(fleet, CrewType.MILITARY, FleetStyle.MILITARY, faction);
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement