1package com.fs.starfarer.api.impl.campaign.skills;
5import com.fs.starfarer.api.characters.DescriptionSkillEffect;
6import com.fs.starfarer.api.characters.FleetStatsSkillEffect;
7import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
8import com.fs.starfarer.api.characters.ShipSkillEffect;
9import com.fs.starfarer.api.characters.SkillSpecAPI;
10import com.fs.starfarer.api.combat.MutableShipStatsAPI;
11import com.fs.starfarer.api.combat.ShipAPI.HullSize;
12import com.fs.starfarer.api.fleet.FleetMemberAPI;
13import com.fs.starfarer.api.fleet.MutableFleetStatsAPI;
14import com.fs.starfarer.api.impl.campaign.DModManager;
15import com.fs.starfarer.api.impl.campaign.ids.Stats;
16import com.fs.starfarer.api.ui.TooltipMakerAPI;
17import com.fs.starfarer.api.util.Misc;
30 public String getString() {
31 return "*Maximum effect reached " +
35 public Color[] getHighlightColors() {
38 return new Color[] {h};
40 public String[] getHighlights() {
41 return new String [] {
"" + (int)
MAX_DMODS};
43 public Color getTextColor() {
74 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
75 stats.getDynamic().getMod(Stats.DEPLOYMENT_POINTS_MOD).unmodify(
id);
76 stats.getDynamic().getMod(Stats.DMOD_REDUCE_MAINTENANCE).unmodify(
id);
78 stats.getMaxCombatReadiness().unmodify(
id);
86 public void createCustomDescription(MutableCharacterStatsAPI stats, SkillSpecAPI skill,
87 TooltipMakerAPI info,
float width) {
90 info.addPara(
"Deployment point cost of ships reduced by %s per d-mod*", 0f,
93 info.addPara(
"(D) hull deployment cost reduction also applies to maintenance cost,"
94 +
" but maximum CR is reduced by %s per d-mod*", 0f,
97 info.addPara(
"(D) hull deployment cost reduction also applies to maintenance cost",
hc, 0f);
103 public static class Level2
implements FleetStatsSkillEffect {
104 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
105 stats.getDynamic().getMod(Stats.SHIP_DMOD_REDUCTION).modifyFlat(
id, -
EXTRA_DMODS);
108 public void unapply(MutableFleetStatsAPI stats, String
id) {
109 stats.getDynamic().getMod(Stats.SHIP_DMOD_REDUCTION).unmodify(
id);
112 public String getEffectDescription(
float level) {
114 return "Recovered ships have more d-mods than normal";
117 public String getEffectPerLevelDescription() {
121 public ScopeDescription getScopeDescription() {
122 return ScopeDescription.FLEET;
void modifyFlat(String source, float value)
void modifyMult(String source, float value)
void modifyFlat(String source, float value)
static int getNumDMods(ShipVariantAPI variant)
static final String DEPLOYMENT_POINTS_MOD
static final String DMOD_REDUCE_MAINTENANCE
void init(MutableCharacterStatsAPI stats, SkillSpecAPI skill)
static float MINUS_DP_PERCENT_PER_DMOD
static float MINUS_CR_PER_DMOD
static Color getHighlightColor()
static Color getDarkHighlightColor()
MutableStat getMaxCombatReadiness()
DynamicStatsAPI getDynamic()
FleetMemberAPI getFleetMember()
ShipVariantAPI getVariant()
StatBonus getMod(String id)