30 public static class Level0
implements DescriptionSkillEffect {
31 public String getString() {
40 "The base chance to be recoverable is %d%% for disabled enemy ships, and %d%% for your ships. " +
41 "The base chance for weapons from disabled enemy ships to be recovered is %d%%, and %d%% for weapons from your ships. " +
42 "Ships that have broken apart have half the chance to be recoverable and always suffer lasting structural damage.",
43 (
int)baseS, (int) baseSO, (
int)baseW, (int)baseWO);
48 public Color[] getHighlightColors() {
49 Color h = Misc.getHighlightColor();
50 return new Color[] {h, h, h, h};
52 public String[] getHighlights() {
58 return new String [] {baseS, baseSO, baseW, baseWO};
60 public Color getTextColor() {
65 public static class Level1
implements FleetStatsSkillEffect {
66 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
71 public void unapply(MutableFleetStatsAPI stats, String
id) {
72 stats.getDynamic().getMod(Stats.OWN_WEAPON_RECOVERY_MOD).unmodify(
id);
73 stats.getDynamic().getMod(Stats.OWN_WING_RECOVERY_MOD).unmodify(
id);
76 public String getEffectDescription(
float level) {
80 public String getEffectPerLevelDescription() {
84 public ScopeDescription getScopeDescription() {
85 return ScopeDescription.FLEET;
89 public static class Level1B
implements FleetStatsSkillEffect {
90 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
95 public void unapply(MutableFleetStatsAPI stats, String
id) {
96 stats.getDynamic().getMod(Stats.ENEMY_WEAPON_RECOVERY_MOD).unmodify(
id);
97 stats.getDynamic().getMod(Stats.ENEMY_WING_RECOVERY_MOD).unmodify(
id);
100 public String getEffectDescription(
float level) {
104 public String getEffectPerLevelDescription() {
108 public ScopeDescription getScopeDescription() {
109 return ScopeDescription.FLEET;
113 public static class Level2
implements FleetStatsSkillEffect {
114 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
115 stats.getDynamic().getMod(Stats.SHIP_RECOVERY_MOD).modifyFlat(
id,
SHIP_RECOVERY_BONUS * 0.01f);
118 public void unapply(MutableFleetStatsAPI stats, String
id) {
119 stats.getDynamic().getMod(Stats.SHIP_RECOVERY_MOD).unmodify(
id);
122 public String getEffectDescription(
float level) {
123 return "+" + (int) (
SHIP_RECOVERY_BONUS) +
"% chance to recover disabled ships after battle";
126 public String getEffectPerLevelDescription() {
130 public ScopeDescription getScopeDescription() {
131 return ScopeDescription.FLEET;
136 public static class Level2A
implements ShipSkillEffect {
137 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
141 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
142 stats.getCrewLossMult().unmodify(
id);
145 public String getEffectDescription(
float level) {
149 public String getEffectPerLevelDescription() {
153 public ScopeDescription getScopeDescription() {
154 return ScopeDescription.ALL_SHIPS;
158 public static class Level2B
implements FleetStatsSkillEffect {
159 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
160 stats.getDynamic().getStat(Stats.NON_COMBAT_CREW_LOSS_MULT).modifyMult(
id, 1f -
CREW_LOSS_REDUCTION / 100f);
163 public void unapply(MutableFleetStatsAPI stats, String
id) {
164 stats.getDynamic().getStat(Stats.NON_COMBAT_CREW_LOSS_MULT).unmodify(
id);
167 public String getEffectDescription(
float level) {
171 public String getEffectPerLevelDescription() {
175 public ScopeDescription getScopeDescription() {
176 return ScopeDescription.FLEET;
181 public static class Level3
implements FleetStatsSkillEffect {
182 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
183 stats.getDynamic().getMod(Stats.SHIP_DMOD_REDUCTION).modifyFlat(
id,
DMOD_REDUCTION);
186 public void unapply(MutableFleetStatsAPI stats, String
id) {
187 stats.getDynamic().getMod(Stats.SHIP_DMOD_REDUCTION).unmodify(
id);
190 public String getEffectDescription(
float level) {
193 return "Recovered ships have fewer d-mods on average";
196 public String getEffectPerLevelDescription() {
200 public ScopeDescription getScopeDescription() {
201 return ScopeDescription.FLEET;
205 public static class Level3B
implements FleetStatsSkillEffect {
206 public void apply(MutableFleetStatsAPI stats, String
id,
float level) {
209 stats.getDynamic().getStat(Stats.FUEL_SALVAGE_VALUE_MULT_FLEET).modifyFlat(
id,
FUEL_SALVAGE_BONUS * 0.01f);
212 public void unapply(MutableFleetStatsAPI stats, String
id) {
215 stats.getDynamic().getStat(Stats.FUEL_SALVAGE_VALUE_MULT_FLEET).unmodify(
id);
218 public String getEffectDescription(
float level) {
221 return "+" + (int) max +
"% fuel salvaged";
224 public String getEffectPerLevelDescription() {
228 public ScopeDescription getScopeDescription() {
229 return ScopeDescription.FLEET;