16 public static class Level1
implements ShipSkillEffect {
18 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
19 stats.getDynamic().getMod(Stats.INDIVIDUAL_SHIP_RECOVERY_MOD).modifyFlat(
id, 1000f);
22 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
23 stats.getDynamic().getMod(Stats.INDIVIDUAL_SHIP_RECOVERY_MOD).unmodify(
id);
26 public String getEffectDescription(
float level) {
27 return "If lost in combat, ship is almost always recoverable";
30 public String getEffectPerLevelDescription() {
34 public ScopeDescription getScopeDescription() {
35 return ScopeDescription.PILOTED_SHIP;
39 public static class Level2
implements ShipSkillEffect {
40 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
44 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
45 stats.getPeakCRDuration().unmodifyFlat(
id);
48 public String getEffectDescription(
float level) {
52 public String getEffectPerLevelDescription() {
56 public ScopeDescription getScopeDescription() {
57 return ScopeDescription.PILOTED_SHIP;
61 public static class Level3
implements ShipSkillEffect {
62 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
66 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
67 stats.getCRLossPerSecondPercent().unmodifyMult(
id);
70 public String getEffectDescription(
float level) {
71 return "-" + (int)(
DEGRADE_REDUCTION_PERCENT) +
"% combat readiness degradation rate after peak performance time runs out";
74 public String getEffectPerLevelDescription() {
78 public ScopeDescription getScopeDescription() {
79 return ScopeDescription.PILOTED_SHIP;
83 public static class Level4
implements ShipSkillEffect {
85 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
86 stats.getMaxCombatReadiness().modifyFlat(
id,
MAX_CR_BONUS * 0.01f,
"Reliabilty Engineering skill");
89 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
90 stats.getMaxCombatReadiness().unmodify(
id);
93 public String getEffectDescription(
float level) {
94 return "+" + (int)(
MAX_CR_BONUS) +
"% maximum combat readiness";
97 public String getEffectPerLevelDescription() {
101 public ScopeDescription getScopeDescription() {
102 return ScopeDescription.PILOTED_SHIP;
106 public static class Level5
implements ShipSkillEffect {
108 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
112 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
113 stats.getOverloadTimeMod().unmodify(
id);
116 public String getEffectDescription(
float level) {
120 public String getEffectPerLevelDescription() {
124 public ScopeDescription getScopeDescription() {
125 return ScopeDescription.PILOTED_SHIP;