Starsector API
Loading...
Searching...
No Matches
RealityDisruptorEffect.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat;
2
3import org.lwjgl.util.vector.Vector2f;
4
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.combat.CombatEngineAPI;
7import com.fs.starfarer.api.combat.CombatEntityAPI;
8import com.fs.starfarer.api.combat.DamagingProjectileAPI;
9import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
10import com.fs.starfarer.api.combat.MissileAPI;
11import com.fs.starfarer.api.combat.OnFireEffectPlugin;
12import com.fs.starfarer.api.combat.OnHitEffectPlugin;
13import com.fs.starfarer.api.combat.WeaponAPI;
14import com.fs.starfarer.api.combat.listeners.ApplyDamageResultAPI;
15
20public class RealityDisruptorEffect implements OnFireEffectPlugin, OnHitEffectPlugin, EveryFrameWeaponEffectPlugin {
21
22
23 protected CombatEntityAPI chargeGlowEntity;
26 }
27
28 //protected IntervalUtil interval = new IntervalUtil(0.1f, 0.2f);
29 public void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon) {
30 //interval.advance(amount);
31
32 boolean charging = weapon.getChargeLevel() > 0 && weapon.getCooldownRemaining() <= 0;
33 if (charging && chargeGlowEntity == null) {
35 chargeGlowEntity = Global.getCombatEngine().addLayeredRenderingPlugin(chargeGlowPlugin);
36 } else if (!charging && chargeGlowEntity != null) {
37 chargeGlowEntity = null;
38 chargeGlowPlugin = null;
39 }
40 }
41
42
43 public void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target, Vector2f point, boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine) {
44
45 }
46
47 public void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine) {
48 if (chargeGlowPlugin != null) {
50 chargeGlowPlugin = null;
51 chargeGlowEntity = null;
52
53 MissileAPI missile = (MissileAPI) projectile;
54 missile.setMine(true);
55 missile.setNoMineFFConcerns(true);
56 missile.setMineExplosionRange(RealityDisruptorChargeGlow.MAX_ARC_RANGE + 50f);
57 missile.setMinePrimed(true);
58 missile.setUntilMineExplosion(0f);
59 }
60
61// RiftTrailEffect trail = new RiftTrailEffect((MissileAPI) projectile);
62// ((MissileAPI) projectile).setEmpResistance(1000);
63// Global.getCombatEngine().addPlugin(trail);
64
65
66// RealityDisruptorEffect effect = new RealityDisruptorEffect(projectile);
67// CombatEntityAPI e = engine.addLayeredRenderingPlugin(effect);
68// e.getLocation().set(projectile.getLocation());
69 }
70
71
72
73
74}
75
76
77
78
static CombatEngineAPI getCombatEngine()
Definition Global.java:63
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target, Vector2f point, boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine)