1package com.fs.starfarer.api.impl.combat.dweller;
3import org.lwjgl.util.vector.Vector2f;
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.combat.MutableShipStatsAPI;
7import com.fs.starfarer.api.combat.ShipAPI;
8import com.fs.starfarer.api.combat.ShipCommand;
9import com.fs.starfarer.api.combat.ShipwideAIFlags.AIFlags;
10import com.fs.starfarer.api.impl.combat.BaseShipSystemScript;
11import com.fs.starfarer.api.impl.combat.threat.RoilingSwarmEffect.SwarmMember;
12import com.fs.starfarer.api.util.Misc;
45 if (state == State.IN) {
46 boolean destWasNull =
dest ==
null;
73 if (state == State.IN) {
80 boolean affect =
true;
83 p.vel.x += dir.x * accel;
84 p.vel.y += dir.y * accel;
92 if (state == State.ACTIVE) {
97 if (p.flash !=
null) {
112 float freeLength = 0f;
113 float stretch = dist - freeLength;
115 float forceMag = k * Math.abs(stretch);
117 float forceMagReduction = Math.min(Math.abs(forceMag), friction);
118 forceMag -= forceMagReduction;
119 friction -= forceMagReduction;
121 Vector2f force =
new Vector2f(dir);
122 force.scale(forceMag * Math.signum(stretch));
124 Vector2f acc =
new Vector2f(force);
131 if (state == State.OUT) {
134 }
else if (state == State.ACTIVE) {
137 if (effectLevel > 0.85f && state != State.OUT) {
147 if (effectLevel > 0f) {
163 public StatusData
getStatusData(
int index, State state,
float effectLevel) {
static CombatEngineAPI getCombatEngine()
Object getCustom(AIFlags flag)
boolean hasFlag(AIFlags flag)
static float SPRING_CONSTANT
void apply(MutableShipStatsAPI stats, String id, State state, float effectLevel)
static float PARTICLE_WINDUP_ACCEL
StatusData getStatusData(int index, State state, float effectLevel)
static float MAW_WINDUP_MULT
static boolean isMaw(ShipAPI ship)
static DwellerShroud getShroudFor(CombatEntityAPI entity)
List< SwarmMember > getMembers()
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static float getAngleInDegrees(Vector2f v)
TOGGLE_SHIELD_OR_PHASE_CLOAK
float getElapsedInLastFrame()
CombatEntityAPI getEntity()
Vector2f getMouseTarget()
void blockCommandForOneFrame(ShipCommand command)
ShipwideAIFlags getAIFlags()
void giveCommand(ShipCommand command, Object param, int groupNumber)