Starsector API
Loading...
Searching...
No Matches
RiftTorpedoEffect.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat;
2
3import java.awt.Color;
4
5import org.lwjgl.util.vector.Vector2f;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.combat.CombatEngineAPI;
9import com.fs.starfarer.api.combat.CombatEntityAPI;
10import com.fs.starfarer.api.combat.DamagingProjectileAPI;
11import com.fs.starfarer.api.combat.MissileAPI;
12import com.fs.starfarer.api.combat.OnFireEffectPlugin;
13import com.fs.starfarer.api.combat.OnHitEffectPlugin;
14import com.fs.starfarer.api.combat.WeaponAPI;
15import com.fs.starfarer.api.combat.listeners.ApplyDamageResultAPI;
16import com.fs.starfarer.api.impl.combat.NegativeExplosionVisual.NEParams;
17import com.fs.starfarer.api.loading.MissileSpecAPI;
18
24public class RiftTorpedoEffect implements OnFireEffectPlugin, OnHitEffectPlugin {
25
26 public void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target, Vector2f point, boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine) {
28 Object o = projectile.getWeapon().getSpec().getProjectileSpec();
29 if (o instanceof MissileSpecAPI) {
30 MissileSpecAPI spec = (MissileSpecAPI) o;
31 color = spec.getExplosionColor();
32 }
33
35 p.fadeOut = 2f;
36 p.hitGlowSizeMult = 1f;
37 // want a red rift, but still blue for subtracting from the red clouds
38 // or not - actually looks better with the red being inverted and subtracted
39 // despite this not matching the trail
40 //p.invertForDarkening = NSProjEffect.STANDARD_RIFT_COLOR;
42
43 Vector2f vel = new Vector2f();
44 if (target != null) vel.set(target.getVelocity());
45 Global.getSoundPlayer().playSound("rifttorpedo_explosion", 1f, 1f, point, vel);
46 }
47
48 public void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine) {
49 RiftTrailEffect trail = new RiftTrailEffect((MissileAPI) projectile, "rifttorpedo_loop");
50 ((MissileAPI) projectile).setEmpResistance(1000);
51 ((MissileAPI) projectile).setEccmChanceOverride(1f);
52 Global.getCombatEngine().addPlugin(trail);
53 }
54}
55
56
57
58
static SoundPlayerAPI getSoundPlayer()
Definition Global.java:43
static CombatEngineAPI getCombatEngine()
Definition Global.java:63
static void spawnStandardRift(DamagingProjectileAPI explosion, NEParams params)
static NEParams createStandardRiftParams(String minelayerId, float baseRadius)
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target, Vector2f point, boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine)
SoundAPI playSound(String id, float pitch, float volume, Vector2f loc, Vector2f vel)