23 public void onHit(DamagingProjectileAPI projectile, CombatEntityAPI target,
24 Vector2f point,
boolean shieldHit, ApplyDamageResultAPI damageResult, CombatEngineAPI engine) {
25 boolean withEMP =
false;
26 if (target instanceof ShipAPI) {
27 ShipAPI ship = (ShipAPI) target;
28 if (!ship.isFighter()) {
29 float pierceChance = 1f;
30 pierceChance *= ship.getMutableStats().getDynamic().getValue(Stats.SHIELD_PIERCED_MULT);
31 boolean piercedShield = shieldHit && (float) Math.random() < pierceChance;
33 if (!shieldHit || piercedShield) {
34 float emp = projectile.getEmpAmount();
35 float dam = projectile.getDamageAmount();
37 engine.spawnEmpArcPierceShields(projectile.getSource(), point, target, target,
38 projectile.getDamageType(),
42 "mote_attractor_impact_emp_arc",
46 new Color(255,255,255,255)
60 damage, DamageType.ENERGY, 0f,
false,
false, projectile.getSource(),
true);
62 }
else if (target instanceof MissileAPI) {
65 damage, DamageType.ENERGY, 0f,
false,
false, projectile.getSource(),
true);