Starsector API
Loading...
Searching...
No Matches
BlinkerEffect.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat;
2
3import java.util.Random;
4
5import com.fs.starfarer.api.combat.CombatEngineAPI;
6import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
7import com.fs.starfarer.api.combat.ShipAPI;
8import com.fs.starfarer.api.combat.WeaponAPI;
9
10public class BlinkerEffect implements EveryFrameWeaponEffectPlugin {
11
12 private float elapsed = 0;
13 boolean on = true;
14 public void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon) {
15 if (engine.isPaused()) return;
16 elapsed += amount;
17
18 if (elapsed > 0.5f) {
19 on = !on;
20 elapsed -= 0.5f;
21 }
22
23 ShipAPI ship = weapon.getShip();
24 if (ship.isHulk()) on = false;
25
26 if (ship.getFluxTracker().isVenting()) {
27 on = false;
28 } else if (ship.getFluxTracker().isOverloaded()) {
29 on = new Random().nextInt(4) == 3;
30 }
31
32 if (on) {
33 weapon.getAnimation().setFrame(0);
34 } else {
35 weapon.getAnimation().setFrame(1);
36 }
37 }
38}
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)