1package com.fs.starfarer.api.impl.hullmods;
3import org.lwjgl.util.vector.Vector2f;
5import com.fs.starfarer.api.campaign.CampaignUIAPI.CoreUITradeMode;
6import com.fs.starfarer.api.campaign.econ.MarketAPI;
7import com.fs.starfarer.api.combat.BaseHullMod;
8import com.fs.starfarer.api.combat.BeamAPI;
9import com.fs.starfarer.api.combat.CombatEntityAPI;
10import com.fs.starfarer.api.combat.DamageAPI;
11import com.fs.starfarer.api.combat.DamagingProjectileAPI;
12import com.fs.starfarer.api.combat.MissileAPI;
13import com.fs.starfarer.api.combat.MutableShipStatsAPI;
14import com.fs.starfarer.api.combat.ShipAPI;
15import com.fs.starfarer.api.combat.WeaponAPI;
16import com.fs.starfarer.api.combat.ShipAPI.HullSize;
17import com.fs.starfarer.api.combat.WeaponAPI.AIHints;
18import com.fs.starfarer.api.combat.listeners.DamageDealtModifier;
19import com.fs.starfarer.api.impl.campaign.ids.Stats;
20import com.fs.starfarer.api.loading.WeaponSpecAPI;
49 if (ship ==
null || ship.
getVariant() ==
null)
return true;
54 if (
spec.getAIHints().contains(AIHints.PD))
return false;
61 return "Can not remove while ship has point-defense weapons installed";
67 public String modifyDamageDealt(Object param,
69 Vector2f point,
boolean shieldHit) {
73 }
else if (param instanceof BeamAPI) {
74 weapon = ((BeamAPI)param).getWeapon();
79 if (weapon ==
null)
return null;
80 if (!weapon.
hasAIHint(AIHints.PD))
return null;
82 String
id =
"pdi_dam_mod";
void modifyPercent(String source, float value)
void modifyFlat(String source, float value)
static final String SMALL_PD_MOD
static float DAMAGE_BONUS_PERCENT
void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)
String getDescriptionParam(int index, HullSize hullSize, ShipAPI ship)
boolean canBeAddedOrRemovedNow(ShipAPI ship, MarketAPI marketOrNull, CoreUITradeMode mode)
void applyEffectsAfterShipCreation(ShipAPI ship, String id)
String getCanNotBeInstalledNowReason(ShipAPI ship, MarketAPI marketOrNull, CoreUITradeMode mode)
MutableStat getModifier()
DynamicStatsAPI getDynamic()
void addListener(Object listener)
ShipVariantAPI getVariant()
Collection< String > getFittedWeaponSlots()
boolean hasHullMod(String id)
WeaponSpecAPI getWeaponSpec(String slotId)
boolean hasAIHint(AIHints hint)
StatBonus getMod(String id)