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.BeamAPI;
9import com.fs.starfarer.api.combat.BeamEffectPlugin;
10import com.fs.starfarer.api.combat.CombatEngineAPI;
11import com.fs.starfarer.api.combat.MissileAPI;
12import com.fs.starfarer.api.combat.ShipAPI;
13import com.fs.starfarer.api.combat.WeaponAPI.WeaponType;
14import com.fs.starfarer.api.util.Misc;
20 protected boolean done =
false;
48 Vector2f vel =
new Vector2f();
57 public void spawnHitDarkening(Color color, Color undercolor, Vector2f point, Vector2f vel,
float size,
float baseDuration) {
64 for (
int i = 0; i < 5; i++) {
65 float dur = baseDuration + baseDuration * (float) Math.random();
71 v.scale(nSize + nSize * (
float) Math.random() * 0.5f);
73 Vector2f.add(vel, v, v);
75 float maxSpeed = nSize * 1.5f * 0.2f;
76 float minSpeed = nSize * 1f * 0.2f;
77 float overMin = v.length() - minSpeed;
79 float durMult = 1f - overMin / (maxSpeed - minSpeed);
80 if (durMult < 0.1f) durMult = 0.1f;
81 dur *= 0.5f + 0.5f * durMult;
84 0.5f / dur, 0f, dur, c);
87 float dur = baseDuration;
90 for (
int i = 0; i < 12; i++) {
91 Vector2f loc =
new Vector2f(point);
93 float s = size * 3f * (0.5f + (float) Math.random() * 0.5f);
99 Color c =
new Color(255 - from.getRed(),
100 255 - from.getGreen(),
101 255 - from.getBlue(), 127);
113 "riftlance_minelayer",
115 (
float) Math.random() * 360f,
null);
116 if (source !=
null) {
118 source, WeaponType.ENERGY,
false, mine.
getDamage());
124 float fadeInTime = 0.05f;
static CombatEngineAPI getCombatEngine()
static Color EXPLOSION_UNDERCOLOR
void advance(float amount, CombatEngineAPI engine, BeamAPI beam)
static Color getColorForDarkening(Color from)
void spawnHitDarkening(Color color, Color undercolor, Vector2f point, Vector2f vel, float size, float baseDuration)
void spawnMine(ShipAPI source, Vector2f mineLoc)
static float MINE_SPAWN_CHANCE
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static Color scaleAlpha(Color color, float factor)
static Color interpolateColor(Color from, Color to, float progress)
static Vector2f getPointWithinRadius(Vector2f from, float r)
CombatEntityAPI getDamageTarget()
Vector2f getRayEndPrevFrame()
float getLengthPrevFrame()
ViewportAPI getViewport()
CombatEntityAPI spawnProjectile(ShipAPI ship, WeaponAPI weapon, String weaponId, Vector2f point, float angle, Vector2f shipVelocity)
void addNegativeNebulaParticle(Vector2f loc, Vector2f vel, float size, float endSizeMult, float rampUpFraction, float fullBrightnessFraction, float totalDuration, Color color)
void applyDamageModifiersToSpawnedProjectileWithNullWeapon(ShipAPI source, WeaponType type, boolean isBeam, DamageAPI damage)
void addNebulaParticle(Vector2f loc, Vector2f vel, float size, float endSizeMult, float rampUpFraction, float fullBrightnessFraction, float totalDuration, Color color)
void addDamagedAlready(CombatEntityAPI c)
void fadeOutThenIn(float inDur)
void setNoMineFFConcerns(boolean noFFConcerns)
void setFlightTime(float flightTime)
boolean isNearViewport(Vector2f loc, float nearDistance)
float getBeamChargedownTime()