1package com.fs.starfarer.api.impl.combat.dweller;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.combat.CollisionClass;
11import com.fs.starfarer.api.combat.DamageType;
12import com.fs.starfarer.api.combat.DamagingProjectileAPI;
13import com.fs.starfarer.api.combat.ShipAPI;
14import com.fs.starfarer.api.impl.combat.RiftLanceEffect;
15import com.fs.starfarer.api.impl.combat.RiftTrailEffect;
16import com.fs.starfarer.api.impl.combat.dweller.DwellerCombatPlugin.DCPPlugin;
17import com.fs.starfarer.api.impl.combat.dweller.DwellerCombatPlugin.WobblyPart;
18import com.fs.starfarer.api.impl.combat.dweller.DwellerShroud.DwellerShroudParams;
19import com.fs.starfarer.api.impl.combat.threat.RoilingSwarmEffect.SwarmMember;
20import com.fs.starfarer.api.loading.DamagingExplosionSpec;
39 protected boolean exploded =
false;
41 public boolean notifyAboutToTakeHullDamage(Object param,
ShipAPI ship, Vector2f point,
float damageAmount) {
65 List<DwellerShipPart> parts = plugin.
getParts();
73 boolean mirror = (float) Math.random() > 0.5f;
79 WobblyPart part =
new WobblyPart(
"shrouded_vortex_base", 2f * scale, 1f,
new Vector2f(0, 0), 0f);
85 part =
new WobblyPart(
"shrouded_vortex_base2", 3f * scale, 3, 3, 1f,
new Vector2f(0, 0), 0f);
89 part.alphaMult = 0.5f;
120 params.maxOffset = 50f;
121 params.initialMembers = 30;
122 params.baseMembersToMaintain = params.initialMembers;
124 params.baseSpriteSize *= 0.65f;
127 params.flashFrequency /= 3f;
132 params.negativeParticleAreaMult = 1.25f;
133 params.negativeParticleDurMult *= 0.5f;
134 params.negativeParticleSizeMult *= 1.4f;
138 params.negativeParticleGenRate *= 0.5f;
140 params.overloadGlowSizeMult *= 0.5f;
155 super.initInCombat(ship);
159 protected Color getUndercolor() {
165 protected Color getDarkeningColor() {
170 protected float getBaseParticleSize() {
174 protected float getBaseParticleDuration() {
228 new Color(255,255,255,0),
229 new Color(255,100,100,0)
static CombatEngineAPI getCombatEngine()
static Color getColorForDarkening(Color from)
static DwellerCombatPlugin getDwellerPluginFor(CombatEntityAPI entity)
boolean notifyAboutToTakeHullDamage(Object param, ShipAPI ship, Vector2f point, float damageAmount)
List< DwellerShipPart > getParts()
static DwellerShroud getShroudFor(CombatEntityAPI entity)
static Color SHROUD_COLOR
static String TAG_MIRRORED_VORTEX
static DamageType EXPLOSION_DAMAGE_TYPE
void initInCombat(ShipAPI ship)
DamagingExplosionSpec createExplosionSpec(ShipAPI ship)
static String ID_BODY_TWO
void modifyBaselineShroudParams(ShipAPI ship, DwellerShroudParams params)
static float EXPLOSION_DAMAGE
static String ID_BODY_ONE
void advance(DwellerCombatPlugin plugin, float amount)
DwellerCombatPlugin createPlugin(ShipAPI ship)
void setMirror(boolean mirror)
List< SwarmMember > getMembers()
void setSoundSetId(String soundSetId)
void setDamageType(DamageType damageType)
void setUseDetailedExplosion(boolean useDetailedExplosion)
static float getShipExplosionRadius(ShipAPI ship)
DamagingProjectileAPI spawnDamagingExplosion(DamagingExplosionSpec spec, ShipAPI source, Vector2f location)
void addPlugin(EveryFrameCombatPlugin plugin)
float getCollisionRadius()