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.CombatEngineAPI;
11import com.fs.starfarer.api.combat.CombatEngineLayers;
12import com.fs.starfarer.api.combat.EmpArcEntityAPI;
13import com.fs.starfarer.api.combat.EmpArcEntityAPI.EmpArcParams;
14import com.fs.starfarer.api.combat.MutableShipStatsAPI;
15import com.fs.starfarer.api.combat.ShipAPI;
16import com.fs.starfarer.api.combat.ShipAPI.HullSize;
17import com.fs.starfarer.api.combat.ViewportAPI;
18import com.fs.starfarer.api.impl.combat.NegativeExplosionVisual;
19import com.fs.starfarer.api.impl.combat.NegativeExplosionVisual.NEParams;
20import com.fs.starfarer.api.impl.combat.dweller.DwellerCombatPlugin.WobblyPart;
21import com.fs.starfarer.api.impl.combat.dweller.DwellerShroud.DwellerShroudParams;
22import com.fs.starfarer.api.util.IntervalUtil;
23import com.fs.starfarer.api.util.Misc;
38 NEParams p =
new NEParams();
39 p.hitGlowSizeMult = 0.75f;
45 p.color =
new Color(255,55,255,155);
46 p.blackColor =
new Color(255,155,255,255);
47 p.color =
new Color(255,55,55,155);
48 p.blackColor =
new Color(255,155,155,255);
52 p.spawnHitGlowAt = 0f;
53 p.withHitGlow =
false;
63 public void advance(
float amount) {
64 super.advance(amount);
71 EmpArcParams params =
new EmpArcParams();
72 params.segmentLengthMult = 4f;
73 params.glowSizeMult = 2.5f;
75 if ((
float) Math.random() < 0.1f) {
76 params.glowSizeMult = 7f;
84 params.flickerRateMult = 0.5f + (float) Math.random() * 0.5f;
86 params.fadeOutDist = 30f;
87 params.minFadeOutMult = 5f;
88 params.flickerRateMult *= 0.3f;
89 params.movementDurOverride = 0.3f;
92 fringe =
new Color(150, 30, 40, 255);
93 Color core = Color.white;
94 fringe =
new Color(150, 30, 40, 255);
95 core =
new Color(255, 150, 190, 255);
97 fringe =
new Color(150, 30, 30, 255);
98 core =
new Color(255, 150, 150, 255);
100 float thickness = 80f;
104 float r = radius * 1.1f;
105 r = r * 0.5f + r * 0.5f * (float) Math.random();
108 Vector2f to =
new Vector2f(loc);
111 boolean goingOutside =
false;
112 if ((
float) Math.random() < 0.4f &&
false) {
121 from, ship, to, ship, thickness, fringe, core, params);
157 super.renderImpl(x, y,
alphaMult, angle, layer);
184 super.initBeforeShipCreation(hullSize, stats,
id);
207 List<DwellerShipPart> parts = plugin.
getParts();
211 WobblyPart part =
new WobblyPart(
"shrouded_eye_base_dark", 1f, 5, 5, 1f,
new Vector2f(0, 0), 0f);
217 part =
new WobblyPart(
"shrouded_eye_iris", 0.6f, 3, 3, 1f,
new Vector2f(0, 0), 0f);
219 part.additiveBlend =
true;
220 part.alphaMult = 0.5f;
224 PlasmaEyePart eyePart =
new PlasmaEyePart(
new Vector2f(0, 0), 0f, ship, 110f);
239 params.maxOffset = 130f;
245 params.negativeParticleClearCenterAreaRadius = 50f;
static SoundPlayerAPI getSoundPlayer()
static CombatEngineAPI getCombatEngine()
void modifyFlat(String source, float value)
void modifyPercent(String source, float value)
void modifyMult(String source, float value)
void modifyMult(String source, float value)
void modifyFlat(String source, float value)
void init(CombatEntityAPI entity)
void render(CombatEngineLayers layer, ViewportAPI viewport)
void advance(float amount)
static Color STANDARD_PART_GLOW_COLOR
List< DwellerShipPart > getParts()
static Color SHROUD_OVERLOAD_FRINGE_COLOR
static float BEAM_RANGE_BONUS
static float HARD_FLUX_DISSIPATION_PERCENT
void modifyBaselineShroudParams(ShipAPI ship, DwellerShroudParams params)
void initBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id)
DwellerCombatPlugin createPlugin(ShipAPI ship)
void advance(float amount)
static Vector2f getPointAtRadius(Vector2f from, float r)
static Vector2f getPointWithinRadius(Vector2f from, float r)
void playLoop(String id, Object playingEntity, float pitch, float volume, Vector2f loc, Vector2f vel)
EmpArcEntityAPI spawnEmpArcVisual(Vector2f from, CombatEntityAPI fromAnchor, Vector2f to, CombatEntityAPI toAnchor, float thickness, Color fringe, Color core)
ViewportAPI getViewport()
void addNebulaParticle(Vector2f loc, Vector2f vel, float size, float endSizeMult, float rampUpFraction, float fullBrightnessFraction, float totalDuration, Color color)
void setSingleFlickerMode()
void setFadedOutAtStart(boolean fadedOutAtStart)
void setRenderGlowAtEnd(boolean renderGlowAtEnd)
void setRenderGlowAtStart(boolean renderGlowAtStart)
void setCoreWidthOverride(float coreWidthOverride)
boolean isOverloadedOrVenting()
StatBonus getBallisticWeaponFluxCostMod()
StatBonus getMissileWeaponFluxCostMod()
StatBonus getEnergyWeaponFluxCostMod()
MutableStat getBeamWeaponDamageMult()
MutableStat getShieldUnfoldRateMult()
MutableStat getHardFluxDissipationFraction()
StatBonus getBeamWeaponRangeBonus()
FluxTrackerAPI getFluxTracker()
ShipSystemAPI getSystem()
void setAlphaMult(float alphaMult)