19 public static class Level1A
implements ShipSkillEffect {
20 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
22 if (hullSize == HullSize.FRIGATE) bonus =
EW_FRIGATES;
24 if (hullSize == HullSize.CRUISER || hullSize == HullSize.CAPITAL_SHIP) bonus =
EW_OTHER;
26 stats.getDynamic().getMod(Stats.ELECTRONIC_WARFARE_FLAT).modifyFlat(
id, bonus);
29 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
30 stats.getDynamic().getMod(Stats.ELECTRONIC_WARFARE_FLAT).unmodify(
id);
32 public String getEffectDescription(
float level) {
34 return "+" + (int)
EW_FRIGATES +
"% to ECM rating* of fleet when piloting a frigate, " +
36 "+" + (int)
EW_OTHER +
"% for larger hulls";
41 public String getEffectPerLevelDescription() {
44 public ScopeDescription getScopeDescription() {
45 return ScopeDescription.PILOTED_SHIP;
49 public static class Level1
implements ShipSkillEffect {
50 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
51 stats.getMaxRecoilMult().modifyMult(
id, 1f - (0.01f *
RECOIL_BONUS));
52 stats.getRecoilPerShotMult().modifyMult(
id, 1f - (0.01f *
RECOIL_BONUS));
55 stats.getRecoilDecayMult().modifyMult(
id, 1f - (0.01f *
RECOIL_BONUS));
58 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
59 stats.getMaxRecoilMult().unmodify(
id);
60 stats.getRecoilPerShotMult().unmodify(
id);
61 stats.getRecoilDecayMult().unmodify(
id);
64 public String getEffectDescription(
float level) {
68 public String getEffectPerLevelDescription() {
72 public ScopeDescription getScopeDescription() {
73 return ScopeDescription.PILOTED_SHIP;
77 public static class Level2
implements ShipSkillEffect {
78 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
83 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
84 stats.getAutofireAimAccuracy().unmodify(
id);
88 public String getEffectDescription(
float level) {
92 public String getEffectPerLevelDescription() {
96 public ScopeDescription getScopeDescription() {
97 return ScopeDescription.PILOTED_SHIP;
101 public static class Level3
implements ShipSkillEffect {
102 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
103 stats.getBallisticWeaponRangeBonus().modifyPercent(
id,
RANGE_BONUS);
104 stats.getEnergyWeaponRangeBonus().modifyPercent(
id,
RANGE_BONUS);
107 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
108 stats.getBallisticWeaponRangeBonus().unmodify(
id);
109 stats.getEnergyWeaponRangeBonus().unmodify(
id);
112 public String getEffectDescription(
float level) {
113 return "+" + (int)(
RANGE_BONUS) +
"% ballistic and energy weapon range";
116 public String getEffectPerLevelDescription() {
120 public ScopeDescription getScopeDescription() {
121 return ScopeDescription.PILOTED_SHIP;
125 public static class Level3A
implements ShipSkillEffect {
126 public void apply(MutableShipStatsAPI stats, HullSize hullSize, String
id,
float level) {
131 public void unapply(MutableShipStatsAPI stats, HullSize hullSize, String
id) {
132 stats.getBallisticWeaponRangeBonus().unmodify(
id);
133 stats.getEnergyWeaponRangeBonus().unmodify(
id);
136 public String getEffectDescription(
float level) {
140 public String getEffectPerLevelDescription() {
144 public ScopeDescription getScopeDescription() {
145 return ScopeDescription.PILOTED_SHIP;