1package com.fs.starfarer.api.impl.combat.dweller;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.combat.BaseEveryFrameCombatPlugin;
9import com.fs.starfarer.api.combat.CombatEngineAPI;
10import com.fs.starfarer.api.combat.CombatEntityAPI;
11import com.fs.starfarer.api.combat.CombatFleetManagerAPI;
12import com.fs.starfarer.api.combat.DamagingProjectileAPI;
13import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
14import com.fs.starfarer.api.combat.OnFireEffectPlugin;
15import com.fs.starfarer.api.combat.ShipAPI;
16import com.fs.starfarer.api.combat.WeaponAPI;
17import com.fs.starfarer.api.impl.combat.threat.RoilingSwarmEffect.SwarmMember;
18import com.fs.starfarer.api.input.InputEventAPI;
19import com.fs.starfarer.api.util.Misc;
20import com.fs.starfarer.api.util.WeightedRandomPicker;
41 this.disturber = disturber;
44 this.numMembers = numMembers;
48 public void advance(
float amount, List<InputEventAPI> events) {
60 Vector2f useDir = dir;
61 if (disturber !=
null) {
67 for (
int i = 0; i < numMembers; i++) {
69 if (pick ==
null)
break;
70 float accel = ConvulsiveLungeSystemScript.PARTICLE_WINDUP_ACCEL * amount * 3f;
71 accel *= 1f + (float) Math.random();
72 pick.vel.x += useDir.x * accel;
73 pick.vel.y += useDir.y * accel;
86 if (ship ==
null)
return;
116 if (shroud !=
null) {
117 shroud.custom1 = weapon.
getShip();
121 if (sourceShroud !=
null) {
126 new DisturbShroudPlugin(1f, dir, vortex, offset, sourceShroud,
static CombatEngineAPI getCombatEngine()
static DwellerShroud getShroudFor(CombatEntityAPI entity)
int getNumMembersToMaintain()
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
static String VORTEX_WING
WeightedRandomPicker< SwarmMember > getPicker(boolean preferNonFlashing, boolean preferNonPicked, Vector2f towards)
CombatEntityAPI getAttachedTo()
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static float getAngleDiff(float from, float to)
static Vector2f normalise(Vector2f v)
CombatFleetManagerAPI getFleetManager(FleetSide side)
void removeEntity(CombatEntityAPI entity)
void removePlugin(EveryFrameCombatPlugin plugin)
void addPlugin(EveryFrameCombatPlugin plugin)
ShipAPI spawnShipOrWing(String specId, Vector2f location, float facing)
void setSuppressDeploymentMessages(boolean suppressDeploymentMessages)