1package com.fs.starfarer.api.impl.combat;
3import java.util.Iterator;
6import org.lwjgl.util.vector.Vector2f;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.combat.BeamAPI;
10import com.fs.starfarer.api.combat.CombatEngineAPI;
11import com.fs.starfarer.api.combat.CombatEntityAPI;
12import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
13import com.fs.starfarer.api.combat.MissileAPI;
14import com.fs.starfarer.api.combat.ShipAPI;
15import com.fs.starfarer.api.combat.WeaponAPI;
16import com.fs.starfarer.api.combat.WeaponAPI.WeaponType;
17import com.fs.starfarer.api.util.IntervalUtil;
18import com.fs.starfarer.api.util.Misc;
19import com.fs.starfarer.api.util.WeightedRandomPicker;
34 List<BeamAPI> beams = weapon.
getBeams();
35 if (beams.isEmpty())
return;
55 Vector2f.add(from, to, to);
73 (
float) Math.random() * 360f,
null);
76 source, WeaponType.ENERGY,
false, mine.
getDamage());
80 float fadeInTime = 0.05f;
96 float f = 0.25f + (float) Math.random() * 0.75f;
98 loc.scale(length * f);
99 Vector2f.add(from, loc, loc);
111 while (iter.hasNext()) {
112 Object o = iter.next();
114 !(o instanceof
ShipAPI))
continue;
116 if (other.
getOwner() == owner)
continue;
117 if (other instanceof
ShipAPI) {
130 return picker.
pick();
static CombatEngineAPI getCombatEngine()
void spawnMine(ShipAPI source, Vector2f mineLoc)
Vector2f pickNoTargetDest(BeamAPI beam, WeaponAPI weapon, CombatEngineAPI engine)
static float TARGET_RANGE
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)
CombatEntityAPI findTarget(BeamAPI beam, WeaponAPI weapon, CombatEngineAPI engine)
float getIntervalDuration()
void advance(float amount)
void setElapsed(float elapsed)
static Vector2f closestPointOnSegmentToPoint(Vector2f p1, Vector2f p2, Vector2f p3)
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static float getTargetingRadius(Vector2f from, CombatEntityAPI target, boolean considerShield)
static Vector2f getPointWithinRadius(Vector2f from, float r)
static float getAngleInDegrees(Vector2f v)
Vector2f getRayEndPrevFrame()
float getLengthPrevFrame()
Iterator< Object > getCheckIterator(Vector2f loc, float checkWidth, float checkHeight)
CombatEntityAPI spawnProjectile(ShipAPI ship, WeaponAPI weapon, String weaponId, Vector2f point, float angle, Vector2f shipVelocity)
CollisionGridAPI getAllObjectGrid()
void applyDamageModifiersToSpawnedProjectileWithNullWeapon(ShipAPI source, WeaponType type, boolean isBeam, DamageAPI damage)
void addDamagedAlready(CombatEntityAPI c)
void fadeOutThenIn(float inDur)
void setNoMineFFConcerns(boolean noFFConcerns)
void setFlightTime(float flightTime)
List< BeamAPI > getBeams()