16 public void apply(MutableShipStatsAPI stats, String
id, State state,
float effectLevel) {
18 if (stats.getEntity() instanceof ShipAPI) {
19 ship = (ShipAPI) stats.getEntity();
25 if (effectLevel > 0) {
26 float jitterLevel = effectLevel;
28 boolean firstTime =
false;
29 final String fightersKey = ship.getId() +
"_recall_device_target";
30 List<ShipAPI> fighters =
null;
38 if (fighters ==
null) {
39 fighters =
new ArrayList<ShipAPI>();
42 for (ShipAPI fighter : fighters) {
43 if (fighter.isHulk())
continue;
45 float maxRangeBonus = fighter.getCollisionRadius() * 1f;
46 float jitterRangeBonus = 5f + jitterLevel * maxRangeBonus;
53 if (fighter.isAlive()) {
54 fighter.setPhased(
true);
57 if (state == State.IN) {
58 float alpha = 1f - effectLevel * 0.5f;
59 fighter.setExtraAlphaMult(alpha);
62 if (effectLevel == 1) {
63 if (fighter.getWing() !=
null && fighter.getWing().getSource() !=
null) {
64 fighter.getWing().getSource().makeCurrentIntervalFast();
65 fighter.getWing().getSource().land(fighter);
67 fighter.setExtraAlphaMult(1);
89 public void unapply(MutableShipStatsAPI stats, String
id) {
91 if (stats.getEntity() instanceof ShipAPI) {
92 ship = (ShipAPI) stats.getEntity();
97 final String fightersKey = ship.getId() +
"_recall_device_target";