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.CombatEngineAPI;
7import com.fs.starfarer.api.combat.ShipAIPlugin;
8import com.fs.starfarer.api.combat.ShipAPI;
9import com.fs.starfarer.api.combat.ShipCommand;
10import com.fs.starfarer.api.combat.ShipSystemAIScript;
11import com.fs.starfarer.api.combat.ShipSystemAPI;
12import com.fs.starfarer.api.combat.ShipwideAIFlags;
13import com.fs.starfarer.api.combat.ShipwideAIFlags.AIFlags;
14import com.fs.starfarer.api.util.IntervalUtil;
15import com.fs.starfarer.api.util.Misc;
42 public void advance(
float amount, Vector2f missileDangerDir, Vector2f collisionDangerDir,
ShipAPI target) {
56 if (
tracker.intervalElapsed()) {
70 boolean missilesInOpenArc =
false;
72 if (missileDangerDir !=
null &&
false) {
77 boolean inRange =
false;
78 boolean inArc =
false;
79 boolean isFarFromArc =
false;
95 boolean ffDanger =
false;
108 if (target ==
null || !inRange || isFarFromArc || missilesInOpenArc || ffDanger) {
113 if (activeTimeRemaining < 3f) {
124 if (fluxLevel > 0.9f || activeTimeRemaining < minFireTime) {
128 if (inRange && inArc && !missilesInOpenArc && !ffDanger) {
static SettingsAPI getSettings()
void setFlag(AIFlags flag)
float systemFluxPerSecond
DarkenedGazeSystemScript script
void init(ShipAPI ship, ShipSystemAPI system, ShipwideAIFlags flags, CombatEngineAPI engine)
void advance(float amount, Vector2f missileDangerDir, Vector2f collisionDangerDir, ShipAPI target)
static float SHIELD_OPENING
void advance(float amount)
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static float getTargetingRadius(Vector2f from, CombatEntityAPI target, boolean considerShield)
static boolean isInArc(float direction, float arc, Vector2f from, Vector2f to)
static float getAngleInDegrees(Vector2f v)
float getFriendlyFireDanger(ShipAPI shooter, CombatEntityAPI target, Vector2f from, Vector2f to, float weaponSpeed, float burstFireDuration, float weaponRange)
boolean isOverloadedOrVenting()
default void setTargetOverride(ShipAPI target)
FluxTrackerAPI getFluxTracker()
void giveCommand(ShipCommand command, Object param, int groupNumber)
ShipSystemStatsScript getScript()
float getCooldownRemaining()
ShipSystemSpecAPI getSpecAPI()