001package com.fs.starfarer.api.impl.combat; 002 003import org.lwjgl.util.vector.Vector2f; 004 005import com.fs.starfarer.api.combat.CombatEngineAPI; 006import com.fs.starfarer.api.combat.CombatEntityAPI; 007import com.fs.starfarer.api.combat.DamageAPI; 008import com.fs.starfarer.api.combat.DamagingProjectileAPI; 009import com.fs.starfarer.api.combat.MissileAPI; 010import com.fs.starfarer.api.combat.OnFireEffectPlugin; 011import com.fs.starfarer.api.combat.ShipAPI; 012import com.fs.starfarer.api.combat.WeaponAPI; 013import com.fs.starfarer.api.combat.listeners.DamageDealtModifier; 014 015public class SquallOnFireEffect implements OnFireEffectPlugin, DamageDealtModifier { 016 017 public static float DAMAGE = 150; 018 019 protected String weaponId = null; 020 021 public void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine) { 022 ShipAPI ship = weapon.getShip(); 023 if (!ship.hasListenerOfClass(SquallOnFireEffect.class)) { 024 ship.addListener(this); 025 weaponId = weapon.getId(); 026 } 027 } 028 029 public String modifyDamageDealt(Object param, CombatEntityAPI target, DamageAPI damage, Vector2f point, boolean shieldHit) { 030 if (shieldHit && param instanceof MissileAPI) { 031 MissileAPI m = (MissileAPI) param; 032 if (m.getWeaponSpec() != null && m.getWeaponSpec().getWeaponId().equals(weaponId)) { 033 float base = damage.getBaseDamage(); 034 damage.setDamage(base + DAMAGE); 035 return "squall"; 036 } 037 } 038 return null; 039 } 040 041 042}