1package com.fs.starfarer.api.impl.hullmods;
3import com.fs.starfarer.api.GameState;
4import com.fs.starfarer.api.Global;
5import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
6import com.fs.starfarer.api.characters.PersonAPI;
7import com.fs.starfarer.api.combat.MutableShipStatsAPI;
8import com.fs.starfarer.api.combat.ShipAPI;
9import com.fs.starfarer.api.combat.ShipAPI.HullSize;
10import com.fs.starfarer.api.fleet.FleetMemberAPI;
11import com.fs.starfarer.api.impl.campaign.ids.HullMods;
12import com.fs.starfarer.api.impl.campaign.ids.Stats;
16 private static int BURN_LEVEL_BONUS = 1;
17 private static float MAINTENANCE_PERCENT = 100;
26 boolean sMod = isSMod(stats);
28 stats.getSensorStrength().unmodify(HullMods.CIVGRADE);
29 stats.getSensorProfile().unmodify(HullMods.CIVGRADE);
31 stats.getMaxBurnLevel().modifyFlat(
id, BURN_LEVEL_BONUS);
39 stats.getMinCrewMod().modifyPercent(
id, MAINTENANCE_PERCENT);
48 return 1f + bonus / 100f;
54 MutableCharacterStatsAPI cStats =
null;
58 FleetMemberAPI member = stats.getFleetMember();
59 if (member ==
null)
return 0f;
60 PersonAPI commander = member.getFleetCommanderForStats();
61 if (commander ==
null) {
62 commander = member.getFleetCommander();
64 if (commander ==
null)
return 0f;
65 cStats = commander.getStats();
67 float bonus = cStats.getDynamic().getMod(Stats.AUXILIARY_EFFECT_ADD_PERCENT).computeEffective(0f);
68 return Math.round(bonus);
87 if (index == 0)
return "" + BURN_LEVEL_BONUS;
92 if (index == 1)
return "" + (int)Math.round(MAINTENANCE_PERCENT) +
"%";
97 return ship.getVariant().hasHullMod(HullMods.CIVGRADE) && super.isApplicableToShip(ship);
102 if (!ship.getVariant().hasHullMod(HullMods.CIVGRADE)) {
103 return "Can only be installed on civilian-grade hulls";
105 return super.getUnapplicableReason(ship);
static SettingsAPI getSettings()
static SectorAPI getSector()
static float getBonusPercent(MutableShipStatsAPI stats)
void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)
boolean isApplicableToShip(ShipAPI ship)
static float getEffectMult(MutableShipStatsAPI stats)
String getUnapplicableReason(ShipAPI ship)
String getDescriptionParam(int index, HullSize hullSize)
GameState getCurrentState()