67 DwellerShroudParams
params =
new DwellerShroudParams();
82 params.spriteCat =
"dweller";
83 params.spriteKey =
"dweller_pieces";
85 params.despawnSound =
null;
89 params.memberRespawnRate = 100f;
91 params.memberExchangeClass =
null;
92 params.flockingClass =
null;
96 params.baseSpriteSize = 256f;
97 params.baseSpriteSize = 128f * 1.5f * 0.67f;
98 params.maxTurnRate = 120f;
106 params.flashCoreRadiusMult = 0f;
108 params.flashRadius = 300f;
109 params.flashRadius = 150f;
110 params.renderFlashOnSameLayer =
true;
111 params.flashRateMult = 0.25f;
115 params.flashFrequency = 17f;
116 params.numToFlash = 2;
118 params.flashProbability = 1f;
120 params.swarmLeadsByFractionOfVelocity = 0f;
122 params.alphaMult = 1f;
123 params.alphaMultBase = 1f;
124 params.alphaMultFlash = 1f;
144 params.maxOffset = radius;
145 params.initialMembers = numMembers;
146 params.baseMembersToMaintain =
params.initialMembers;
181 super.advance(amount);
189 params.springStretchMult = 1f;
190 params.flashProbability = 0.25f;
194 params.springStretchMult = 10f;
195 params.flashProbability = 1f;
196 params.despawnDist = 0f;
209 EmpArcParams
params =
new EmpArcParams();
210 params.segmentLengthMult = 4f;
212 params.glowSizeMult *=
shroudParams.overloadGlowSizeMult;
218 params.flickerRateMult = 0.5f + (float) Math.random() * 0.5f;
220 Color fringe = this.params.flashFringeColor;
225 Color core = Color.white;
230 float r = this.params.maxOffset;
231 r = r * 0.5f + r * 0.5f * (float) Math.random();
236 angle = angle + 90f * ((float) Math.random() - 0.5f);
238 float dist = this.params.maxOffset;
239 dist = dist * 0.5f + dist * 0.5f * (float) Math.random();
243 Vector2f to = Vector2f.add(from, dir,
new Vector2f());
267 boolean smallerDark =
false;
272 if (smallerDark) num = 8;
276 if (smallerDark) num = 4;
281 if (
shroudParams.negativeParticleColorOverride !=
null) {
284 if (
shroudParams.negativeParticleAlphaIntOverride >= 0) {
288 float baseDuration = 2f;
290 float speed = vel.length();
293 maxSpeed = Math.min(maxSpeed,
shroudParams.negativeParticleSpeedCap);
294 if (speed > maxSpeed && speed > 1f) {
295 vel.scale(maxSpeed / speed);
299 float baseSize = params.maxOffset * 2f;
303 float size = baseSize * 0.33f;
312 for (
int i = 0; i < num; i++) {
315 float min =
shroudParams.negativeParticleClearCenterAreaRadius;
318 Math.max(min, baseSize * 0.75f * (smallerDark ? 0.85f : 1f) *
shroudParams.negativeParticleAreaMult),
Misc.
random);
324 float dur = baseDuration + baseDuration * (float) Math.random();
329 v.scale(nSize + nSize * (
float) Math.random() * 0.5f);
331 Vector2f.add(vel, v, v);
333 float maxSpeed = nSize * 1.5f * 0.2f;
334 float minSpeed = nSize * 1f * 0.2f;
335 float overMin = v.length() - minSpeed;
337 float durMult = 1f - overMin / (maxSpeed - minSpeed);
338 if (durMult < 0.1f) durMult = 0.1f;
339 dur *= 0.5f + 0.5f * durMult;
347 !
shroudParams.negativeParticleFilter.isParticleOk(
this, pt)) {
352 0.5f / dur, 0f, dur, c);