29 this.severity = severity;
31 beforeDamage = 1f + 2f * (float) Math.random();
33 List<WeaponAPI> weapons = ship.getUsableWeapons();
34 for (WeaponAPI weapon : weapons) {
35 disableTargets.add(weapon);
37 List<ShipEngineAPI> engines = ship.getEngineController().getShipEngines();
38 for (ShipEngineAPI engine : engines) {
39 if (!engine.isSystemActivated()) {
40 disableTargets.add(engine);
44 disableAttempts = Math.max(1, Math.round((0.25f + 0.75f * severity) * (
float) disableTargets.getItems().size() * 0.25f));
47 disableAttempts *= 2f;
90 public void advance(
float amount, List<InputEventAPI> events) {
91 if (engine.isPaused())
return;
93 if (!engine.isEntityInPlay(ship))
return;
98 if (elapsed > beforeDamage) {
99 tracker.advance(amount);
100 if (tracker.intervalElapsed()) {
104 if (ship.isHulk() || disableAttempts <= 0) {
105 engine.removePlugin(
this);