1package com.fs.starfarer.api.impl.combat.dweller;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.combat.CombatEngineAPI;
11import com.fs.starfarer.api.combat.CombatEntityAPI;
12import com.fs.starfarer.api.combat.DamagingProjectileAPI;
13import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
14import com.fs.starfarer.api.combat.MissileAIPlugin;
15import com.fs.starfarer.api.combat.MissileAPI;
16import com.fs.starfarer.api.combat.OnFireEffectPlugin;
17import com.fs.starfarer.api.combat.OnHitEffectPlugin;
18import com.fs.starfarer.api.combat.ShipAPI;
19import com.fs.starfarer.api.combat.WeaponAPI;
20import com.fs.starfarer.api.combat.listeners.ApplyDamageResultAPI;
21import com.fs.starfarer.api.impl.campaign.ids.Tags;
22import com.fs.starfarer.api.impl.combat.NegativeExplosionVisual.NEParams;
23import com.fs.starfarer.api.impl.combat.RiftCascadeEffect;
24import com.fs.starfarer.api.impl.combat.RiftCascadeMineExplosion;
25import com.fs.starfarer.api.impl.combat.RiftLanceEffect;
26import com.fs.starfarer.api.impl.combat.RiftTrailEffect;
27import com.fs.starfarer.api.input.InputEventAPI;
28import com.fs.starfarer.api.loading.MissileSpecAPI;
29import com.fs.starfarer.api.util.WeightedRandomPicker;
54 public static class AssayingRiftCount {
56 float totalElapsed = 0;
58 public void update() {
60 if (totalElapsed >= elapsed)
return;
62 totalElapsed = elapsed;
80 String key =
"AssayingRiftSharedDataKey";
81 AssayingRiftCount data = (AssayingRiftCount) engine.
getCustomData().get(key);
83 data =
new AssayingRiftCount();
89 boolean disable = data.count >=
MAX_RIFTS;
101 if (!shieldHit && target instanceof
ShipAPI) {
110 if (!targetShip.
isHulk()) {
114 if (other.isHulk())
continue;
115 if (other.isFighter())
continue;
116 if (other.getOwner() != source.
getOwner())
continue;
121 if (otherShroud ==
null)
continue;
123 float missingHp = other.getMaxHitpoints() - other.getHitpoints();
124 if (missingHp < HEAL_AMOUNT * 0.7f && missingHp > 0f) {
125 healNeedLess.
add(other, missingHp);
127 healTargets.
add(other, missingHp);
132 if (toHeal ==
null) toHeal = healNeedLess.
pick();
133 if (toHeal !=
null) {
143 p.hitGlowSizeMult = 1f;
147 Vector2f vel =
new Vector2f();
162 boolean exploded =
false;
165 public void advance(
float amount, List<InputEventAPI> events) {
168 if (!exploded && !missile.didDamage() && missile.wasRemoved()) {
169 onHit(missile,
null, missile.getLocation(),
false,
null, engine);
185 protected Color getUndercolor() {
189 protected Color getDarkeningColor() {
193 protected float getBaseParticleDuration() {
static SoundPlayerAPI getSoundPlayer()
static CombatEngineAPI getCombatEngine()
static Color STANDARD_RIFT_COLOR
static void spawnStandardRift(DamagingProjectileAPI explosion, NEParams params)
static NEParams createStandardRiftParams(String minelayerId, float baseRadius)
static Color getColorForDarkening(Color from)
void advance(float amount, List< InputEventAPI > events)
void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target, Vector2f point, boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine)
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
static String HUNGERING_RIFT_HEAL_MULT_STAT
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)
static String HUNGERING_RIFT_HEAL_MOD_HUMAN_SHIPS
static String ASSAYING_RIFT
static float getHealMult(ShipAPI toHeal)
static DwellerShroud getShroudFor(CombatEntityAPI entity)
static Color SHROUD_COLOR
SoundAPI playSound(String id, float pitch, float volume, Vector2f loc, Vector2f vel)
Map< String, Object > getCustomData()
List< MissileAPI > getMissiles()
float getTotalElapsedTime(boolean includePaused)
void addPlugin(EveryFrameCombatPlugin plugin)
MissileAIPlugin createProximityFuseAI(MissileAPI missile)
List< ShipAPI > getShips()
void advance(float amount)
void setEccmChanceOverride(float eccmChanceOverride)
void setEmpResistance(int empResistance)
DynamicStatsAPI getDynamic()
ShipHullSpecAPI getHullSpec()
MutableShipStatsAPI getMutableStats()
void setHitpoints(float value)
boolean hasTag(String tag)
void setForceDisabled(boolean forceDisabled)
Color getExplosionColor()
Object getProjectileSpec()
float getValue(String id)