Starsector API
All Classes Namespaces Files Functions Variables
CanisterFlakPlugin.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat;
2
3import com.fs.starfarer.api.combat.CombatEngineAPI;
4import com.fs.starfarer.api.combat.DamagingProjectileAPI;
5import com.fs.starfarer.api.combat.MissileAPI;
6import com.fs.starfarer.api.combat.OnFireEffectPlugin;
7import com.fs.starfarer.api.combat.WeaponAPI;
8
9public class CanisterFlakPlugin implements OnFireEffectPlugin {
10
12 }
13
14 public void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine) {
15 float speedMult = 0.25f + 0.75f * (float) Math.random();
16 projectile.getVelocity().scale(speedMult);
17
18 float angVel = (float) (Math.signum((float) Math.random() - 0.5f) *
19 (0.5f + Math.random()) * 720f);
20 projectile.setAngularVelocity(angVel);
21
22 if (projectile instanceof MissileAPI) {
23 MissileAPI missile = (MissileAPI) projectile;
24 float flightTimeMult = 0.25f + 0.75f * (float) Math.random();
25 missile.setMaxFlightTime(missile.getMaxFlightTime() * flightTimeMult);
26 }
27
28 if (weapon != null) {
29 float delay = 0.25f + 0.75f * (float) Math.random();
30 weapon.setRefireDelay(delay);
31 }
32
33 }
34}
35
36
37
38
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)