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}