1package com.fs.starfarer.api.impl.combat;
5import org.lwjgl.util.vector.Vector2f;
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.ProximityExplosionEffect;
12import com.fs.starfarer.api.impl.combat.NegativeExplosionVisual.NEParams;
13import com.fs.starfarer.api.loading.MissileSpecAPI;
14import com.fs.starfarer.api.util.Misc;
20 public void onExplosion(DamagingProjectileAPI explosion, DamagingProjectileAPI originalProjectile) {
21 Float sizeMult =
null;
22 if (originalProjectile.getCustomData() !=
null) {
23 sizeMult = (Float) originalProjectile.getCustomData().get(
SIZE_MULT_KEY);
25 if (sizeMult ==
null) sizeMult = 1f;
40 explosion.addDamagedAlready(explosion.getSource());
42 CombatEntityAPI prev =
null;
43 for (
int i = 0; i < 2; i++) {
44 NEParams p = params.clone();
45 p.radius *= 0.75f + 0.5f * (float) Math.random();
47 p.withHitGlow = prev ==
null;
49 Vector2f loc =
new Vector2f(explosion.getLocation());
51 loc = Misc.getPointAtRadius(loc, p.radius * 0.4f);
54 e.getLocation().set(loc);
57 float dist = Misc.getDistance(prev.getLocation(), loc);
58 Vector2f vel = Misc.getUnitVectorAtDegreeAngle(Misc.getAngleInDegrees(loc, prev.getLocation()));
59 vel.scale(dist / (p.fadeIn + p.fadeOut) * 0.7f);
60 e.getVelocity().set(vel);
70 Color color =
new Color(100,100,255,255);
72 if (o instanceof MissileSpecAPI) {
73 MissileSpecAPI spec = (MissileSpecAPI) o;
74 color = spec.getGlowColor();
81 NEParams p =
new NEParams();
83 p.hitGlowSizeMult = .75f;
85 p.spawnHitGlowAt = 0f;
103 p.color = borderColor;
static SettingsAPI getSettings()
static CombatEngineAPI getCombatEngine()
static Color EXPLOSION_UNDERCOLOR
static void spawnStandardRift(DamagingProjectileAPI explosion, NEParams params)
static NEParams createStandardRiftParams(String minelayerId, float baseRadius)
static String SIZE_MULT_KEY
static NEParams createStandardRiftParams(Color borderColor, float radius)
void onExplosion(DamagingProjectileAPI explosion, DamagingProjectileAPI originalProjectile)
WeaponSpecAPI getWeaponSpec(String weaponId)