1package com.fs.starfarer.api.impl.combat.threat;
3import com.fs.starfarer.api.combat.MutableShipStatsAPI;
4import com.fs.starfarer.api.combat.ShipAIConfig;
5import com.fs.starfarer.api.combat.ShipAPI;
6import com.fs.starfarer.api.combat.ShipwideAIFlags.AIFlags;
7import com.fs.starfarer.api.combat.WeaponAPI;
8import com.fs.starfarer.api.combat.WeaponAPI.WeaponType;
9import com.fs.starfarer.api.impl.campaign.ids.Personalities;
10import com.fs.starfarer.api.util.Misc;
40 if (effectLevel > 0) {
42 config.alwaysStrafeOffensively =
true;
43 config.backingOffWhileNotVentingAllowed =
false;
44 config.turnToFaceWithUndamagedArmor =
false;
45 config.burnDriveIgnoreEnemies =
true;
52 if (effectLevel <= 0f)
return;
66 public StatusData
getStatusData(
int index, State state,
float effectLevel) {
67 if (effectLevel <= 0f)
return null;
70 return new StatusData(
"improved maneuverability",
false);
71 }
else if (index == 1) {
72 return new StatusData(
"+" + (
int)
SPEED_BONUS +
" top speed",
false);
73 }
else if (index == 2) {
75 }
else if (index == 3) {
76 return new StatusData(
"rapid charge regen",
false);
97 if (dist < range + extra) {
100 float overseerDistFactor = 0f;
101 if (distToOverseer < 1000f) {
103 overseerDistFactor = (1f - Math.max(0f, distToOverseer - min) / (1000f - min)) * 0.25f;
105 return Math.min(1f, 0.5f + Math.min(0.5f, ship.
getFluxLevel() * 1f) + overseerDistFactor);
116 if (w.isDecorative())
continue;
117 if (w.getType() == WeaponType.MISSILE)
continue;
118 max = Math.max(max, w.getRange());
void modifyFlat(String source, float value)
void modifyMult(String source, float value)
void copyFrom(ShipAIConfig other)
void setFlag(AIFlags flag)
Object getCustom(AIFlags flag)
static final String RECKLESS
void setStandardJitter(ShipAPI ship, State state, float effectLevel)
void makeAllGroupsAutofireOneFrame(ShipAPI ship)
static float AMMO_REGEN_MULT
StatusData getStatusData(int index, State state, float effectLevel)
void applyImpl(ShipAPI ship, MutableShipStatsAPI stats, String id, State state, float effectLevel)
static float FLUX_DISSIPATION_MULT
float getCurrentUsefulnessLevel(ShipAPI overseer, ShipAPI ship)
static float getNonMissileWeaponRange(ShipAPI ship)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
float getCollisionRadius()
MutableStat getBallisticAmmoRegenMult()
MutableStat getDeceleration()
MutableStat getEnergyAmmoRegenMult()
MutableStat getMaxSpeed()
MutableStat getFluxDissipation()
MutableStat getAcceleration()
List< WeaponAPI > getAllWeapons()
ShipwideAIFlags getAIFlags()
ShipSystemAPI getSystem()
ShipEngineControllerAPI getEngineController()
void extendFlame(Object key, float extendLengthFraction, float extendWidthFraction, float extendGlowFraction)