1package com.fs.starfarer.api.impl.combat;
3import java.util.HashMap;
4import java.util.LinkedHashMap;
8import org.lwjgl.util.vector.Vector2f;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.combat.CombatEngineAPI;
12import com.fs.starfarer.api.combat.DamagingProjectileAPI;
13import com.fs.starfarer.api.combat.OnFireEffectPlugin;
14import com.fs.starfarer.api.combat.ShipAPI;
15import com.fs.starfarer.api.combat.WeaponAPI;
16import com.fs.starfarer.api.loading.MuzzleFlashSpec;
17import com.fs.starfarer.api.loading.ProjectileWeaponSpecAPI;
18import com.fs.starfarer.api.util.Misc;
38 if (ship ==
null)
return;
58 float sign = Math.signum(offset.y);
59 offset =
new Vector2f(offset);
61 Vector2f.add(offset, p, offset);
68 float velMult,
float velAdd) {
69 if (spec ==
null)
return;
79 float size = range * (float) Math.random() + min;
80 float theta = (float) (Math.random() * Math.toRadians(spread) + Math.toRadians(angle - spread/2f));
81 float r = (float) (Math.random() * length);
82 Vector2f dir =
new Vector2f((
float)Math.cos(theta), (
float)Math.sin(theta));
85 Vector2f loc =
new Vector2f(point.x + x, point.y + y);
86 Vector2f vel =
new Vector2f(x * velMult + shipVel.x + dir.x * velAdd,
87 y * velMult + shipVel.y + dir.y * velAdd);
88 if (velAdd > 0 ||
true) {
90 Vector2f.add(vel, rand, vel);
94 dur *= 0.75f + (float) Math.random() * 0.5f;
static CombatEngineAPI getCombatEngine()
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
static HashMap< String, Vector2f > SECOND_MUZZLE_FLASH_OFFSET_MAP
static void spawnMuzzleFlash(MuzzleFlashSpec spec, Vector2f point, float angle, Vector2f shipVel, float velMult, float velAdd)
void setLength(float length)
float getParticleSizeRange()
void setSpread(float spread)
void setParticleCount(int particleCount)
float getParticleDuration()
float getParticleSizeMin()
static Vector2f rotateAroundOrigin(Vector2f v, float angle)
static Vector2f getPointWithinRadius(Vector2f from, float r)
void addNebulaParticle(Vector2f loc, Vector2f vel, float size, float endSizeMult, float rampUpFraction, float fullBrightnessFraction, float totalDuration, Color color)
ShipHullSpecAPI getHullSpec()