1package com.fs.starfarer.api.impl.combat;
3import java.util.ArrayList;
4import java.util.Iterator;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.combat.CombatEngineAPI;
9import com.fs.starfarer.api.combat.DamagingProjectileAPI;
10import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
11import com.fs.starfarer.api.combat.OnFireEffectPlugin;
12import com.fs.starfarer.api.combat.ShipAPI;
13import com.fs.starfarer.api.combat.WeaponAPI;
18public class VPDriverEffect implements OnFireEffectPlugin, EveryFrameWeaponEffectPlugin {
26 protected List<DamagingProjectileAPI>
shots;
28 public void advance(
float amount, CombatEngineAPI engine, WeaponAPI weapon) {
29 if (
shots ==
null)
return;
34 Iterator<DamagingProjectileAPI> iter =
shots.iterator();
35 while (iter.hasNext()) {
36 DamagingProjectileAPI shot = iter.next();
37 if (shot.isExpired() || shot.isFading()) iter.remove();
57 ShipAPI ship = weapon.getShip();
58 if (ship ==
null)
return 1f;
61 switch (weapon.getSpec().getType()) {
63 rofMult = ship.getMutableStats().getBallisticRoFMult().getModifiedValue();
66 rofMult = ship.getMutableStats().getMissileRoFMult().getModifiedValue();
69 rofMult = ship.getMutableStats().getEnergyRoFMult().getModifiedValue();
75 public void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine) {
77 shots =
new ArrayList<DamagingProjectileAPI>();
79 shots.add(0, projectile);
static SettingsAPI getSettings()
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
static float MIN_COOLDOWN
static float getRoFMult(WeaponAPI weapon)
List< DamagingProjectileAPI > shots
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)
float getFloat(String key)