Starsector API
Loading...
Searching...
No Matches
SquallOnFireEffect.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat;
2
3import org.lwjgl.util.vector.Vector2f;
4
5import com.fs.starfarer.api.combat.CombatEngineAPI;
6import com.fs.starfarer.api.combat.CombatEntityAPI;
7import com.fs.starfarer.api.combat.DamageAPI;
8import com.fs.starfarer.api.combat.DamagingProjectileAPI;
9import com.fs.starfarer.api.combat.MissileAPI;
10import com.fs.starfarer.api.combat.OnFireEffectPlugin;
11import com.fs.starfarer.api.combat.ShipAPI;
12import com.fs.starfarer.api.combat.WeaponAPI;
13import com.fs.starfarer.api.combat.listeners.DamageDealtModifier;
14
15public class SquallOnFireEffect implements OnFireEffectPlugin, DamageDealtModifier {
16
17 public static float DAMAGE = 150;
18
19 protected String weaponId = null;
20
21 public void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine) {
22 ShipAPI ship = weapon.getShip();
23 if (!ship.hasListenerOfClass(SquallOnFireEffect.class)) {
24 ship.addListener(this);
25 weaponId = weapon.getId();
26 }
27 }
28
29 public String modifyDamageDealt(Object param, CombatEntityAPI target, DamageAPI damage, Vector2f point, boolean shieldHit) {
30 if (shieldHit && param instanceof MissileAPI) {
31 MissileAPI m = (MissileAPI) param;
32 if (m.getWeaponSpec() != null && m.getWeaponSpec().getWeaponId().equals(weaponId)) {
33 float base = damage.getBaseDamage();
34 damage.setDamage(base + DAMAGE);
35 return "squall";
36 }
37 }
38 return null;
39 }
40
41
42}
void onFire(DamagingProjectileAPI projectile, WeaponAPI weapon, CombatEngineAPI engine)
String modifyDamageDealt(Object param, CombatEntityAPI target, DamageAPI damage, Vector2f point, boolean shieldHit)