1package com.fs.starfarer.api.impl.combat.threat;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.combat.CombatEngineAPI;
8import com.fs.starfarer.api.combat.CombatEntityAPI;
9import com.fs.starfarer.api.combat.DamageType;
10import com.fs.starfarer.api.combat.DamagingProjectileAPI;
11import com.fs.starfarer.api.combat.EmpArcEntityAPI;
12import com.fs.starfarer.api.combat.EmpArcEntityAPI.EmpArcParams;
13import com.fs.starfarer.api.combat.EveryFrameWeaponEffectPlugin;
14import com.fs.starfarer.api.combat.OnFireEffectPlugin;
15import com.fs.starfarer.api.combat.OnHitEffectPlugin;
16import com.fs.starfarer.api.combat.ShipAPI;
17import com.fs.starfarer.api.combat.WeaponAPI;
18import com.fs.starfarer.api.combat.listeners.ApplyDamageResultAPI;
19import com.fs.starfarer.api.impl.campaign.ids.Stats;
20import com.fs.starfarer.api.util.Misc;
40 float pierceChance = 0f;
41 if (target instanceof
ShipAPI) {
42 pierceChance = ((
ShipAPI)target).getHardFluxLevel() - 0.1f;
49 EmpArcParams params =
new EmpArcParams();
50 params.segmentLengthMult = 8f;
51 params.zigZagReductionFactor = 0.5f;
52 params.flickerRateMult = 1f;
53 params.fadeOutDist = 1000f;
54 params.minFadeOutMult = 1f;
55 params.glowSizeMult = 0.5f;
56 params.glowAlphaMult = 0.75f;
58 for (
int i = 0; i < numArcs; i++) {
59 boolean piercedShield = shieldHit && (float) Math.random() < pierceChance;
62 if (!shieldHit || piercedShield) {
64 projectile.
getSource(), point, target, target,
69 "voltaic_discharge_emp_impact",
static final String SHIELD_PIERCED_MULT
void advance(float amount, CombatEngineAPI engine, WeaponAPI weapon)
void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target, Vector2f point, boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine)
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
EmpArcEntityAPI spawnEmpArcPierceShields(ShipAPI damageSource, Vector2f point, CombatEntityAPI pointAnchor, CombatEntityAPI empTargetEntity, DamageType damageType, float damAmount, float empDamAmount, float maxRange, String impactSoundId, float thickness, Color fringe, Color core)
ProjectileSpecAPI getProjectileSpec()
void setRenderGlowAtStart(boolean renderGlowAtStart)