Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ParticleOrchestrator.cs
Go to the documentation of this file.
1using System;
7using Terraria.ID;
8using Terraria.Net;
9
11
13{
15
17
19
21
23
25
27
28 public static void RequestParticleSpawn(bool clientOnly, ParticleOrchestraType type, ParticleOrchestraSettings settings, int? overrideInvokingPlayerIndex = null)
29 {
30 settings.IndexOfPlayerWhoInvokedThis = (byte)Main.myPlayer;
31 if (overrideInvokingPlayerIndex.HasValue)
32 {
33 settings.IndexOfPlayerWhoInvokedThis = (byte)overrideInvokingPlayerIndex.Value;
34 }
35 if (clientOnly)
36 {
37 SpawnParticlesDirect(type, settings);
38 }
39 else
40 {
41 NetManager.Instance.SendToServerAndSelf(NetParticlesModule.Serialize(type, settings));
42 }
43 }
44
46 {
47 settings.IndexOfPlayerWhoInvokedThis = (byte)Main.myPlayer;
48 NetManager.Instance.BroadcastOrLoopback(NetParticlesModule.Serialize(type, settings));
49 }
50
52 {
53 settings.IndexOfPlayerWhoInvokedThis = (byte)Main.myPlayer;
54 if (Main.netMode == 1)
55 {
56 NetManager.Instance.SendToServerAndSelf(NetParticlesModule.Serialize(type, settings));
57 }
58 else
59 {
60 NetManager.Instance.BroadcastOrLoopback(NetParticlesModule.Serialize(type, settings));
61 }
62 }
63
65 {
66 return new FadingParticle();
67 }
68
73
75 {
76 return new ItemTransferParticle();
77 }
78
80 {
81 return new FlameParticle();
82 }
83
88
90 {
91 return new PrettySparkleParticle();
92 }
93
95 {
96 return new GasParticle();
97 }
98
100 {
101 if (Main.netMode != 2)
102 {
103 switch (type)
104 {
105 case ParticleOrchestraType.Keybrand:
106 Spawn_Keybrand(settings);
107 break;
108 case ParticleOrchestraType.FlameWaders:
109 Spawn_FlameWaders(settings);
110 break;
111 case ParticleOrchestraType.StellarTune:
112 Spawn_StellarTune(settings);
113 break;
114 case ParticleOrchestraType.WallOfFleshGoatMountFlames:
116 break;
117 case ParticleOrchestraType.BlackLightningHit:
118 Spawn_BlackLightningHit(settings);
119 break;
120 case ParticleOrchestraType.RainbowRodHit:
121 Spawn_RainbowRodHit(settings);
122 break;
123 case ParticleOrchestraType.BlackLightningSmall:
125 break;
126 case ParticleOrchestraType.StardustPunch:
127 Spawn_StardustPunch(settings);
128 break;
129 case ParticleOrchestraType.PrincessWeapon:
130 Spawn_PrincessWeapon(settings);
131 break;
132 case ParticleOrchestraType.PaladinsHammer:
133 Spawn_PaladinsHammer(settings);
134 break;
135 case ParticleOrchestraType.NightsEdge:
136 Spawn_NightsEdge(settings);
137 break;
138 case ParticleOrchestraType.SilverBulletSparkle:
140 break;
141 case ParticleOrchestraType.TrueNightsEdge:
142 Spawn_TrueNightsEdge(settings);
143 break;
144 case ParticleOrchestraType.ChlorophyteLeafCrystalPassive:
145 Spawn_LeafCrystalPassive(settings);
146 break;
147 case ParticleOrchestraType.ChlorophyteLeafCrystalShot:
148 Spawn_LeafCrystalShot(settings);
149 break;
150 case ParticleOrchestraType.AshTreeShake:
151 Spawn_AshTreeShake(settings);
152 break;
153 case ParticleOrchestraType.TerraBlade:
154 Spawn_TerraBlade(settings);
155 break;
156 case ParticleOrchestraType.Excalibur:
157 Spawn_Excalibur(settings);
158 break;
159 case ParticleOrchestraType.TrueExcalibur:
160 Spawn_TrueExcalibur(settings);
161 break;
162 case ParticleOrchestraType.PetExchange:
163 Spawn_PetExchange(settings);
164 break;
165 case ParticleOrchestraType.SlapHand:
166 Spawn_SlapHand(settings);
167 break;
168 case ParticleOrchestraType.WaffleIron:
169 Spawn_WaffleIron(settings);
170 break;
171 case ParticleOrchestraType.FlyMeal:
172 Spawn_FlyMeal(settings);
173 break;
174 case ParticleOrchestraType.GasTrap:
175 Spawn_GasTrap(settings);
176 break;
177 case ParticleOrchestraType.ItemTransfer:
178 Spawn_ItemTransfer(settings);
179 break;
180 case ParticleOrchestraType.ShimmerArrow:
181 Spawn_ShimmerArrow(settings);
182 break;
183 case ParticleOrchestraType.TownSlimeTransform:
184 Spawn_TownSlimeTransform(settings);
185 break;
186 case ParticleOrchestraType.LoadoutChange:
187 Spawn_LoadOutChange(settings);
188 break;
189 case ParticleOrchestraType.ShimmerBlock:
190 Spawn_ShimmerBlock(settings);
191 break;
192 case ParticleOrchestraType.Digestion:
193 Spawn_Digestion(settings);
194 break;
195 case ParticleOrchestraType.PooFly:
196 Spawn_PooFly(settings);
197 break;
198 case ParticleOrchestraType.ShimmerTownNPC:
199 Spawn_ShimmerTownNPC(settings);
200 break;
201 case ParticleOrchestraType.ShimmerTownNPCSend:
202 Spawn_ShimmerTownNPCSend(settings);
203 break;
204 }
205 }
206 }
207
209 {
210 Rectangle rect = Utils.CenteredRectangle(settings.PositionInWorld, new Vector2(30f, 60f));
211 for (float num = 0f; num < 20f; num += 1f)
212 {
213 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
214 int num2 = Main.rand.Next(20, 40);
215 prettySparkleParticle.ColorTint = Main.hslToRgb(Main.rand.NextFloat(), 1f, 0.5f, 0);
216 prettySparkleParticle.LocalPosition = Main.rand.NextVector2FromRectangle(rect);
217 prettySparkleParticle.Rotation = (float)Math.PI / 2f;
218 prettySparkleParticle.Scale = new Vector2(1f + Main.rand.NextFloat() * 2f, 0.7f + Main.rand.NextFloat() * 0.7f);
219 prettySparkleParticle.Velocity = new Vector2(0f, -1f);
220 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
221 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
222 prettySparkleParticle.TimeToLive = num2;
223 prettySparkleParticle.FadeOutEnd = num2;
224 prettySparkleParticle.FadeInEnd = num2 / 2;
225 prettySparkleParticle.FadeOutStart = num2 / 2;
226 prettySparkleParticle.AdditiveAmount = 0.35f;
227 prettySparkleParticle.DrawVerticalAxis = false;
228 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
229 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
230 prettySparkleParticle2.ColorTint = new Color(255, 255, 255, 0);
231 prettySparkleParticle2.LocalPosition = Main.rand.NextVector2FromRectangle(rect);
232 prettySparkleParticle2.Rotation = (float)Math.PI / 2f;
233 prettySparkleParticle2.Scale = prettySparkleParticle.Scale * 0.5f;
234 prettySparkleParticle2.Velocity = new Vector2(0f, -1f);
235 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
236 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
237 prettySparkleParticle2.TimeToLive = num2;
238 prettySparkleParticle2.FadeOutEnd = num2;
239 prettySparkleParticle2.FadeInEnd = num2 / 2;
240 prettySparkleParticle2.FadeOutStart = num2 / 2;
241 prettySparkleParticle2.AdditiveAmount = 1f;
242 prettySparkleParticle2.DrawVerticalAxis = false;
243 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
244 }
245 }
246
248 {
249 Rectangle rectangle = Utils.CenteredRectangle(settings.PositionInWorld, new Vector2(30f, 60f));
250 for (float num = 0f; num < 20f; num += 1f)
251 {
252 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
253 int num2 = Main.rand.Next(20, 40);
254 prettySparkleParticle.ColorTint = Main.hslToRgb(Main.rand.NextFloat(), 1f, 0.5f, 0);
255 prettySparkleParticle.LocalPosition = Main.rand.NextVector2FromRectangle(rectangle);
256 prettySparkleParticle.Rotation = (float)Math.PI / 2f;
257 prettySparkleParticle.Scale = new Vector2(1f + Main.rand.NextFloat() * 2f, 0.7f + Main.rand.NextFloat() * 0.7f);
258 prettySparkleParticle.Velocity = new Vector2(0f, -1f);
259 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
260 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
261 prettySparkleParticle.TimeToLive = num2;
262 prettySparkleParticle.FadeOutEnd = num2;
263 prettySparkleParticle.FadeInEnd = num2 / 2;
264 prettySparkleParticle.FadeOutStart = num2 / 2;
265 prettySparkleParticle.AdditiveAmount = 0.35f;
266 prettySparkleParticle.DrawVerticalAxis = false;
267 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
268 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
269 prettySparkleParticle2.ColorTint = new Color(255, 255, 255, 0);
270 prettySparkleParticle2.LocalPosition = Main.rand.NextVector2FromRectangle(rectangle);
271 prettySparkleParticle2.Rotation = (float)Math.PI / 2f;
272 prettySparkleParticle2.Scale = prettySparkleParticle.Scale * 0.5f;
273 prettySparkleParticle2.Velocity = new Vector2(0f, -1f);
274 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
275 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
276 prettySparkleParticle2.TimeToLive = num2;
277 prettySparkleParticle2.FadeOutEnd = num2;
278 prettySparkleParticle2.FadeInEnd = num2 / 2;
279 prettySparkleParticle2.FadeOutStart = num2 / 2;
280 prettySparkleParticle2.AdditiveAmount = 1f;
281 prettySparkleParticle2.DrawVerticalAxis = false;
282 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
283 }
284 for (int i = 0; i < 20; i++)
285 {
286 int num3 = Dust.NewDust(rectangle.TopLeft(), rectangle.Width, rectangle.Height, 308);
287 Main.dust[num3].velocity.Y -= 8f;
288 Main.dust[num3].velocity.X *= 0.5f;
289 Main.dust[num3].scale = 0.8f;
290 Main.dust[num3].noGravity = true;
291 switch (Main.rand.Next(6))
292 {
293 case 0:
294 Main.dust[num3].color = new Color(255, 255, 210);
295 break;
296 case 1:
297 Main.dust[num3].color = new Color(190, 245, 255);
298 break;
299 case 2:
300 Main.dust[num3].color = new Color(255, 150, 255);
301 break;
302 default:
303 Main.dust[num3].color = new Color(190, 175, 255);
304 break;
305 }
306 }
308 }
309
310 private static void Spawn_PooFly(ParticleOrchestraSettings settings)
311 {
312 int num = _poolFlies.CountParticlesInUse();
313 if (num <= 50 || !(Main.rand.NextFloat() >= Utils.Remap(num, 50f, 400f, 0.5f, 0f)))
314 {
315 LittleFlyingCritterParticle littleFlyingCritterParticle = _poolFlies.RequestParticle();
316 littleFlyingCritterParticle.Prepare(settings.PositionInWorld, 300);
317 Main.ParticleSystem_World_OverPlayers.Add(littleFlyingCritterParticle);
318 }
319 }
320
321 private static void Spawn_Digestion(ParticleOrchestraSettings settings)
322 {
323 Vector2 positionInWorld = settings.PositionInWorld;
324 int num = ((settings.MovementVector.X < 0f) ? 1 : (-1));
325 int num2 = Main.rand.Next(4);
326 for (int i = 0; i < 3 + num2; i++)
327 {
328 int num3 = Dust.NewDust(positionInWorld + Vector2.UnitX * -num * 8f - Vector2.One * 5f + Vector2.UnitY * 8f, 3, 6, 216, -num, 1f);
329 Main.dust[num3].velocity /= 2f;
330 Main.dust[num3].scale = 0.8f;
331 }
332 if (Main.rand.Next(30) == 0)
333 {
334 int num4 = Gore.NewGore(positionInWorld + Vector2.UnitX * -num * 8f, Vector2.Zero, Main.rand.Next(580, 583));
335 Main.gore[num4].velocity /= 2f;
336 Main.gore[num4].velocity.Y = Math.Abs(Main.gore[num4].velocity.Y);
337 Main.gore[num4].velocity.X = (0f - Math.Abs(Main.gore[num4].velocity.X)) * (float)num;
338 }
340 }
341
342 private static void Spawn_ShimmerBlock(ParticleOrchestraSettings settings)
343 {
344 FadingParticle fadingParticle = _poolFading.RequestParticle();
345 fadingParticle.SetBasicInfo(TextureAssets.Star[0], null, settings.MovementVector, settings.PositionInWorld);
346 float num = 45f;
347 fadingParticle.SetTypeInfo(num);
348 fadingParticle.AccelerationPerFrame = settings.MovementVector / num;
349 fadingParticle.ColorTint = Main.hslToRgb(Main.rand.NextFloat(), 0.75f, 0.8f);
350 fadingParticle.ColorTint.A = 30;
351 fadingParticle.FadeInNormalizedTime = 0.5f;
352 fadingParticle.FadeOutNormalizedTime = 0.5f;
353 fadingParticle.Rotation = Main.rand.NextFloat() * ((float)Math.PI * 2f);
354 fadingParticle.Scale = Vector2.One * (0.5f + 0.5f * Main.rand.NextFloat());
355 Main.ParticleSystem_World_OverPlayers.Add(fadingParticle);
356 }
357
358 private static void Spawn_LoadOutChange(ParticleOrchestraSettings settings)
359 {
361 if (player.active)
362 {
363 Rectangle hitbox = player.Hitbox;
364 int num = 6;
365 hitbox.Height -= num;
366 if (player.gravDir == 1f)
367 {
368 hitbox.Y += num;
369 }
370 for (int i = 0; i < 40; i++)
371 {
372 Dust dust = Dust.NewDustPerfect(Main.rand.NextVector2FromRectangle(hitbox), 16, null, 120, default(Color), Main.rand.NextFloat() * 0.8f + 0.8f);
373 dust.velocity = new Vector2(0f, (float)(-hitbox.Height) * Main.rand.NextFloat() * 0.04f).RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.1f);
374 dust.velocity += player.velocity * 2f * Main.rand.NextFloat();
375 dust.noGravity = true;
376 dust.noLight = (dust.noLightEmittence = true);
377 }
378 for (int j = 0; j < 5; j++)
379 {
380 Dust dust2 = Dust.NewDustPerfect(Main.rand.NextVector2FromRectangle(hitbox), 43, null, 254, Main.hslToRgb(Main.rand.NextFloat(), 0.3f, 0.8f), Main.rand.NextFloat() * 0.8f + 0.8f);
381 dust2.velocity = new Vector2(0f, (float)(-hitbox.Height) * Main.rand.NextFloat() * 0.04f).RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.1f);
382 dust2.velocity += player.velocity * 2f * Main.rand.NextFloat();
383 dust2.noGravity = true;
384 dust2.noLight = (dust2.noLightEmittence = true);
385 }
386 }
387 }
388
390 {
391 switch (settings.UniqueInfoPiece)
392 {
393 case 0:
394 NerdySlimeEffect(settings);
395 break;
396 case 1:
397 CopperSlimeEffect(settings);
398 break;
399 case 2:
400 ElderSlimeEffect(settings);
401 break;
402 }
403 }
404
405 private static void ElderSlimeEffect(ParticleOrchestraSettings settings)
406 {
407 for (int i = 0; i < 30; i++)
408 {
409 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld + Main.rand.NextVector2Circular(20f, 20f), 43, (settings.MovementVector * 0.75f + Main.rand.NextVector2Circular(6f, 6f)) * Main.rand.NextFloat(), 26, Color.Lerp(Main.OurFavoriteColor, Color.White, Main.rand.NextFloat()), 1f + Main.rand.NextFloat() * 1.4f);
410 dust.fadeIn = 1.5f;
411 if (dust.velocity.Y > 0f && Main.rand.Next(2) == 0)
412 {
413 dust.velocity.Y *= -1f;
414 }
415 dust.noGravity = true;
416 }
417 for (int j = 0; j < 8; j++)
418 {
419 Gore.NewGoreDirect(settings.PositionInWorld + Utils.RandomVector2(Main.rand, -30f, 30f) * new Vector2(0.5f, 1f), Vector2.Zero, 61 + Main.rand.Next(3)).velocity *= 0.5f;
420 }
421 }
422
423 private static void NerdySlimeEffect(ParticleOrchestraSettings settings)
424 {
425 Color newColor = new Color(0, 80, 255, 100);
426 for (int i = 0; i < 60; i++)
427 {
428 Dust.NewDustPerfect(settings.PositionInWorld, 4, (settings.MovementVector * 0.75f + Main.rand.NextVector2Circular(6f, 6f)) * Main.rand.NextFloat(), 175, newColor, 0.6f + Main.rand.NextFloat() * 1.4f);
429 }
430 }
431
432 private static void CopperSlimeEffect(ParticleOrchestraSettings settings)
433 {
434 for (int i = 0; i < 40; i++)
435 {
436 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld + Main.rand.NextVector2Circular(20f, 20f), 43, (settings.MovementVector * 0.75f + Main.rand.NextVector2Circular(6f, 6f)) * Main.rand.NextFloat(), 26, Color.Lerp(new Color(183, 88, 25), Color.White, Main.rand.NextFloat() * 0.5f), 1f + Main.rand.NextFloat() * 1.4f);
437 dust.fadeIn = 1.5f;
438 if (dust.velocity.Y > 0f && Main.rand.Next(2) == 0)
439 {
440 dust.velocity.Y *= -1f;
441 }
442 dust.noGravity = true;
443 }
444 }
445
446 private static void Spawn_ShimmerArrow(ParticleOrchestraSettings settings)
447 {
448 float num = 20f;
449 for (int i = 0; i < 2; i++)
450 {
451 float num2 = (float)Math.PI * 2f * Main.rand.NextFloatDirection() * 0.05f;
452 Color color = Main.hslToRgb(Main.rand.NextFloat(), 1f, 0.5f);
453 color.A /= 2;
454 Color value = color;
455 value.A = byte.MaxValue;
456 value = Color.Lerp(value, Color.White, 0.5f);
457 for (float num3 = 0f; num3 < 4f; num3 += 1f)
458 {
459 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
460 Vector2 vector = ((float)Math.PI / 2f * num3 + num2).ToRotationVector2() * 4f;
461 prettySparkleParticle.ColorTint = color;
462 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
463 prettySparkleParticle.Rotation = vector.ToRotation();
464 prettySparkleParticle.Scale = new Vector2((num3 % 2f == 0f) ? 2f : 4f, 0.5f) * 1.1f;
465 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
466 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
467 prettySparkleParticle.TimeToLive = num;
468 prettySparkleParticle.FadeOutEnd = num;
469 prettySparkleParticle.FadeInEnd = num / 2f;
470 prettySparkleParticle.FadeOutStart = num / 2f;
471 prettySparkleParticle.AdditiveAmount = 0.35f;
472 prettySparkleParticle.Velocity = -vector * 0.2f;
473 prettySparkleParticle.DrawVerticalAxis = false;
474 if (num3 % 2f == 1f)
475 {
476 prettySparkleParticle.Scale *= 0.9f;
477 prettySparkleParticle.Velocity *= 0.9f;
478 }
479 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
480 }
481 for (float num4 = 0f; num4 < 4f; num4 += 1f)
482 {
483 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
484 Vector2 vector2 = ((float)Math.PI / 2f * num4 + num2).ToRotationVector2() * 4f;
485 prettySparkleParticle2.ColorTint = value;
486 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
487 prettySparkleParticle2.Rotation = vector2.ToRotation();
488 prettySparkleParticle2.Scale = new Vector2((num4 % 2f == 0f) ? 2f : 4f, 0.5f) * 0.7f;
489 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
490 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
491 prettySparkleParticle2.TimeToLive = num;
492 prettySparkleParticle2.FadeOutEnd = num;
493 prettySparkleParticle2.FadeInEnd = num / 2f;
494 prettySparkleParticle2.FadeOutStart = num / 2f;
495 prettySparkleParticle2.Velocity = vector2 * 0.2f;
496 prettySparkleParticle2.DrawVerticalAxis = false;
497 if (num4 % 2f == 1f)
498 {
499 prettySparkleParticle2.Scale *= 1.2f;
500 prettySparkleParticle2.Velocity *= 1.2f;
501 }
502 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
503 if (i == 0)
504 {
505 for (int j = 0; j < 1; j++)
506 {
507 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld, 306, vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
508 dust.noGravity = true;
509 dust.scale = 1.4f;
510 dust.fadeIn = 1.2f;
511 dust.color = color;
512 Dust dust2 = Dust.NewDustPerfect(settings.PositionInWorld, 306, -vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
513 dust2.noGravity = true;
514 dust2.scale = 1.4f;
515 dust2.fadeIn = 1.2f;
516 dust2.color = color;
517 }
518 }
519 }
520 }
521 }
522
523 private static void Spawn_ItemTransfer(ParticleOrchestraSettings settings)
524 {
525 Vector2 vector = settings.PositionInWorld + settings.MovementVector;
526 Vector2 vector2 = Main.rand.NextVector2Circular(32f, 32f);
527 Vector2 vector3 = settings.PositionInWorld + vector2;
528 Vector2 vector4 = vector - vector3;
529 int uniqueInfoPiece = settings.UniqueInfoPiece;
530 if (ContentSamples.ItemsByType.TryGetValue(uniqueInfoPiece, out var value) && !value.IsAir)
531 {
532 uniqueInfoPiece = value.type;
533 int num = Main.rand.Next(60, 80);
534 Chest.AskForChestToEatItem(vector3 + vector4 + new Vector2(-8f, -8f), num + 10);
535 ItemTransferParticle itemTransferParticle = _poolItemTransfer.RequestParticle();
536 itemTransferParticle.Prepare(uniqueInfoPiece, num, vector3, vector3 + vector4);
537 Main.ParticleSystem_World_OverPlayers.Add(itemTransferParticle);
538 }
539 }
540
541 private static void Spawn_PetExchange(ParticleOrchestraSettings settings)
542 {
543 Vector2 positionInWorld = settings.PositionInWorld;
544 for (int i = 0; i < 13; i++)
545 {
546 Gore gore = Gore.NewGoreDirect(positionInWorld + new Vector2(-20f, -20f) + Main.rand.NextVector2Circular(20f, 20f), Vector2.Zero, Main.rand.Next(61, 64), 1f + Main.rand.NextFloat() * 0.3f);
547 gore.alpha = 100;
548 gore.velocity = ((float)Math.PI * 2f * (float)Main.rand.Next()).ToRotationVector2() * Main.rand.NextFloat() + settings.MovementVector * 0.5f;
549 }
550 }
551
552 private static void Spawn_TerraBlade(ParticleOrchestraSettings settings)
553 {
554 float num = 30f;
555 float num2 = settings.MovementVector.ToRotation() + (float)Math.PI / 2f;
556 float x = 3f;
557 for (float num3 = 0f; num3 < 4f; num3 += 1f)
558 {
559 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
560 Vector2 vector = ((float)Math.PI / 2f * num3 + num2).ToRotationVector2() * 4f;
561 prettySparkleParticle.ColorTint = new Color(0.2f, 0.85f, 0.4f, 0.5f);
562 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
563 prettySparkleParticle.Rotation = vector.ToRotation();
564 prettySparkleParticle.Scale = new Vector2(x, 0.5f) * 1.1f;
565 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
566 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
567 prettySparkleParticle.TimeToLive = num;
568 prettySparkleParticle.FadeOutEnd = num;
569 prettySparkleParticle.FadeInEnd = num / 2f;
570 prettySparkleParticle.FadeOutStart = num / 2f;
571 prettySparkleParticle.AdditiveAmount = 0.35f;
572 prettySparkleParticle.Velocity = -vector * 0.2f;
573 prettySparkleParticle.DrawVerticalAxis = false;
574 if (num3 % 2f == 1f)
575 {
576 prettySparkleParticle.Scale *= 1.5f;
577 prettySparkleParticle.Velocity *= 2f;
578 }
579 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
580 }
581 for (float num4 = -1f; num4 <= 1f; num4 += 2f)
582 {
583 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
584 _ = num2.ToRotationVector2() * 4f;
585 Vector2 vector2 = ((float)Math.PI / 2f * num4 + num2).ToRotationVector2() * 2f;
586 prettySparkleParticle2.ColorTint = new Color(0.4f, 1f, 0.4f, 0.5f);
587 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
588 prettySparkleParticle2.Rotation = vector2.ToRotation();
589 prettySparkleParticle2.Scale = new Vector2(x, 0.5f) * 1.1f;
590 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
591 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
592 prettySparkleParticle2.TimeToLive = num;
593 prettySparkleParticle2.FadeOutEnd = num;
594 prettySparkleParticle2.FadeInEnd = num / 2f;
595 prettySparkleParticle2.FadeOutStart = num / 2f;
596 prettySparkleParticle2.AdditiveAmount = 0.35f;
597 prettySparkleParticle2.Velocity = vector2.RotatedBy(1.5707963705062866) * 0.5f;
598 prettySparkleParticle2.DrawVerticalAxis = false;
599 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
600 }
601 for (float num5 = 0f; num5 < 4f; num5 += 1f)
602 {
603 PrettySparkleParticle prettySparkleParticle3 = _poolPrettySparkle.RequestParticle();
604 Vector2 vector3 = ((float)Math.PI / 2f * num5 + num2).ToRotationVector2() * 4f;
605 prettySparkleParticle3.ColorTint = new Color(0.2f, 1f, 0.2f, 1f);
606 prettySparkleParticle3.LocalPosition = settings.PositionInWorld;
607 prettySparkleParticle3.Rotation = vector3.ToRotation();
608 prettySparkleParticle3.Scale = new Vector2(x, 0.5f) * 0.7f;
609 prettySparkleParticle3.FadeInNormalizedTime = 5E-06f;
610 prettySparkleParticle3.FadeOutNormalizedTime = 0.95f;
611 prettySparkleParticle3.TimeToLive = num;
612 prettySparkleParticle3.FadeOutEnd = num;
613 prettySparkleParticle3.FadeInEnd = num / 2f;
614 prettySparkleParticle3.FadeOutStart = num / 2f;
615 prettySparkleParticle3.Velocity = vector3 * 0.2f;
616 prettySparkleParticle3.DrawVerticalAxis = false;
617 if (num5 % 2f == 1f)
618 {
619 prettySparkleParticle3.Scale *= 1.5f;
620 prettySparkleParticle3.Velocity *= 2f;
621 }
622 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle3);
623 for (int i = 0; i < 1; i++)
624 {
625 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld, 107, vector3.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
626 dust.noGravity = true;
627 dust.scale = 0.8f;
628 Dust dust2 = Dust.NewDustPerfect(settings.PositionInWorld, 107, -vector3.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
629 dust2.noGravity = true;
630 dust2.scale = 1.4f;
631 }
632 }
633 }
634
635 private static void Spawn_Excalibur(ParticleOrchestraSettings settings)
636 {
637 float num = 30f;
638 float num2 = 0f;
639 for (float num3 = 0f; num3 < 4f; num3 += 1f)
640 {
641 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
642 Vector2 vector = ((float)Math.PI / 2f * num3 + num2).ToRotationVector2() * 4f;
643 prettySparkleParticle.ColorTint = new Color(0.9f, 0.85f, 0.4f, 0.5f);
644 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
645 prettySparkleParticle.Rotation = vector.ToRotation();
646 prettySparkleParticle.Scale = new Vector2((num3 % 2f == 0f) ? 2f : 4f, 0.5f) * 1.1f;
647 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
648 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
649 prettySparkleParticle.TimeToLive = num;
650 prettySparkleParticle.FadeOutEnd = num;
651 prettySparkleParticle.FadeInEnd = num / 2f;
652 prettySparkleParticle.FadeOutStart = num / 2f;
653 prettySparkleParticle.AdditiveAmount = 0.35f;
654 prettySparkleParticle.Velocity = -vector * 0.2f;
655 prettySparkleParticle.DrawVerticalAxis = false;
656 if (num3 % 2f == 1f)
657 {
658 prettySparkleParticle.Scale *= 1.5f;
659 prettySparkleParticle.Velocity *= 1.5f;
660 }
661 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
662 }
663 for (float num4 = 0f; num4 < 4f; num4 += 1f)
664 {
665 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
666 Vector2 vector2 = ((float)Math.PI / 2f * num4 + num2).ToRotationVector2() * 4f;
667 prettySparkleParticle2.ColorTint = new Color(1f, 1f, 0.2f, 1f);
668 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
669 prettySparkleParticle2.Rotation = vector2.ToRotation();
670 prettySparkleParticle2.Scale = new Vector2((num4 % 2f == 0f) ? 2f : 4f, 0.5f) * 0.7f;
671 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
672 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
673 prettySparkleParticle2.TimeToLive = num;
674 prettySparkleParticle2.FadeOutEnd = num;
675 prettySparkleParticle2.FadeInEnd = num / 2f;
676 prettySparkleParticle2.FadeOutStart = num / 2f;
677 prettySparkleParticle2.Velocity = vector2 * 0.2f;
678 prettySparkleParticle2.DrawVerticalAxis = false;
679 if (num4 % 2f == 1f)
680 {
681 prettySparkleParticle2.Scale *= 1.5f;
682 prettySparkleParticle2.Velocity *= 1.5f;
683 }
684 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
685 for (int i = 0; i < 1; i++)
686 {
687 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld, 169, vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
688 dust.noGravity = true;
689 dust.scale = 1.4f;
690 Dust dust2 = Dust.NewDustPerfect(settings.PositionInWorld, 169, -vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
691 dust2.noGravity = true;
692 dust2.scale = 1.4f;
693 }
694 }
695 }
696
697 private static void Spawn_SlapHand(ParticleOrchestraSettings settings)
698 {
700 }
701
702 private static void Spawn_WaffleIron(ParticleOrchestraSettings settings)
703 {
705 }
706
707 private static void Spawn_FlyMeal(ParticleOrchestraSettings settings)
708 {
710 }
711
712 private static void Spawn_GasTrap(ParticleOrchestraSettings settings)
713 {
715 Vector2 movementVector = settings.MovementVector;
716 int num = 12;
717 int num2 = 10;
718 float num3 = 5f;
719 float num4 = 2.5f;
720 Color lightColorTint = new Color(0.2f, 0.4f, 0.15f);
721 Vector2 positionInWorld = settings.PositionInWorld;
722 float num5 = (float)Math.PI / 20f;
723 float num6 = (float)Math.PI / 15f;
724 for (int i = 0; i < num; i++)
725 {
726 Vector2 spinninpoint = movementVector + new Vector2(num3 + Main.rand.NextFloat() * 1f, 0f).RotatedBy((float)i / (float)num * ((float)Math.PI * 2f), Vector2.Zero);
727 spinninpoint = spinninpoint.RotatedByRandom(num5);
728 GasParticle gasParticle = _poolGas.RequestParticle();
729 gasParticle.AccelerationPerFrame = Vector2.Zero;
730 gasParticle.Velocity = spinninpoint;
731 gasParticle.ColorTint = Color.White;
732 gasParticle.LightColorTint = lightColorTint;
733 gasParticle.LocalPosition = positionInWorld + spinninpoint;
734 gasParticle.TimeToLive = 50 + Main.rand.Next(20);
735 gasParticle.InitialScale = 1f + Main.rand.NextFloat() * 0.35f;
737 }
738 for (int j = 0; j < num2; j++)
739 {
740 Vector2 spinninpoint2 = new Vector2(num4 + Main.rand.NextFloat() * 1.45f, 0f).RotatedBy((float)j / (float)num2 * ((float)Math.PI * 2f), Vector2.Zero);
741 spinninpoint2 = spinninpoint2.RotatedByRandom(num6);
742 if (j % 2 == 0)
743 {
744 spinninpoint2 *= 0.5f;
745 }
746 GasParticle gasParticle2 = _poolGas.RequestParticle();
747 gasParticle2.AccelerationPerFrame = Vector2.Zero;
748 gasParticle2.Velocity = spinninpoint2;
749 gasParticle2.ColorTint = Color.White;
750 gasParticle2.LightColorTint = lightColorTint;
751 gasParticle2.LocalPosition = positionInWorld;
752 gasParticle2.TimeToLive = 80 + Main.rand.Next(30);
753 gasParticle2.InitialScale = 1f + Main.rand.NextFloat() * 0.5f;
755 }
756 }
757
758 private static void Spawn_TrueExcalibur(ParticleOrchestraSettings settings)
759 {
760 float num = 36f;
761 float num2 = (float)Math.PI / 4f;
762 for (float num3 = 0f; num3 < 2f; num3 += 1f)
763 {
764 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
765 Vector2 v = ((float)Math.PI / 2f * num3 + num2).ToRotationVector2() * 4f;
766 prettySparkleParticle.ColorTint = new Color(1f, 0f, 0.3f, 1f);
767 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
768 prettySparkleParticle.Rotation = v.ToRotation();
769 prettySparkleParticle.Scale = new Vector2(5f, 0.5f) * 1.1f;
770 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
771 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
772 prettySparkleParticle.TimeToLive = num;
773 prettySparkleParticle.FadeOutEnd = num;
774 prettySparkleParticle.FadeInEnd = num / 2f;
775 prettySparkleParticle.FadeOutStart = num / 2f;
776 prettySparkleParticle.AdditiveAmount = 0.35f;
777 prettySparkleParticle.DrawVerticalAxis = false;
778 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
779 }
780 for (float num4 = 0f; num4 < 2f; num4 += 1f)
781 {
782 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
783 Vector2 vector = ((float)Math.PI / 2f * num4 + num2).ToRotationVector2() * 4f;
784 prettySparkleParticle2.ColorTint = new Color(1f, 0.5f, 0.8f, 1f);
785 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
786 prettySparkleParticle2.Rotation = vector.ToRotation();
787 prettySparkleParticle2.Scale = new Vector2(3f, 0.5f) * 0.7f;
788 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
789 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
790 prettySparkleParticle2.TimeToLive = num;
791 prettySparkleParticle2.FadeOutEnd = num;
792 prettySparkleParticle2.FadeInEnd = num / 2f;
793 prettySparkleParticle2.FadeOutStart = num / 2f;
794 prettySparkleParticle2.DrawVerticalAxis = false;
795 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
796 for (int i = 0; i < 1; i++)
797 {
798 if (Main.rand.Next(2) != 0)
799 {
800 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld, 242, vector.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
801 dust.noGravity = true;
802 dust.scale = 1.4f;
803 Dust dust2 = Dust.NewDustPerfect(settings.PositionInWorld, 242, -vector.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
804 dust2.noGravity = true;
805 dust2.scale = 1.4f;
806 }
807 }
808 }
809 num = 30f;
810 num2 = 0f;
811 for (float num5 = 0f; num5 < 4f; num5 += 1f)
812 {
813 PrettySparkleParticle prettySparkleParticle3 = _poolPrettySparkle.RequestParticle();
814 Vector2 vector2 = ((float)Math.PI / 2f * num5 + num2).ToRotationVector2() * 4f;
815 prettySparkleParticle3.ColorTint = new Color(0.9f, 0.85f, 0.4f, 0.5f);
816 prettySparkleParticle3.LocalPosition = settings.PositionInWorld;
817 prettySparkleParticle3.Rotation = vector2.ToRotation();
818 prettySparkleParticle3.Scale = new Vector2((num5 % 2f == 0f) ? 2f : 4f, 0.5f) * 1.1f;
819 prettySparkleParticle3.FadeInNormalizedTime = 5E-06f;
820 prettySparkleParticle3.FadeOutNormalizedTime = 0.95f;
821 prettySparkleParticle3.TimeToLive = num;
822 prettySparkleParticle3.FadeOutEnd = num;
823 prettySparkleParticle3.FadeInEnd = num / 2f;
824 prettySparkleParticle3.FadeOutStart = num / 2f;
825 prettySparkleParticle3.AdditiveAmount = 0.35f;
826 prettySparkleParticle3.Velocity = -vector2 * 0.2f;
827 prettySparkleParticle3.DrawVerticalAxis = false;
828 if (num5 % 2f == 1f)
829 {
830 prettySparkleParticle3.Scale *= 1.5f;
831 prettySparkleParticle3.Velocity *= 1.5f;
832 }
833 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle3);
834 }
835 for (float num6 = 0f; num6 < 4f; num6 += 1f)
836 {
837 PrettySparkleParticle prettySparkleParticle4 = _poolPrettySparkle.RequestParticle();
838 Vector2 vector3 = ((float)Math.PI / 2f * num6 + num2).ToRotationVector2() * 4f;
839 prettySparkleParticle4.ColorTint = new Color(1f, 1f, 0.2f, 1f);
840 prettySparkleParticle4.LocalPosition = settings.PositionInWorld;
841 prettySparkleParticle4.Rotation = vector3.ToRotation();
842 prettySparkleParticle4.Scale = new Vector2((num6 % 2f == 0f) ? 2f : 4f, 0.5f) * 0.7f;
843 prettySparkleParticle4.FadeInNormalizedTime = 5E-06f;
844 prettySparkleParticle4.FadeOutNormalizedTime = 0.95f;
845 prettySparkleParticle4.TimeToLive = num;
846 prettySparkleParticle4.FadeOutEnd = num;
847 prettySparkleParticle4.FadeInEnd = num / 2f;
848 prettySparkleParticle4.FadeOutStart = num / 2f;
849 prettySparkleParticle4.Velocity = vector3 * 0.2f;
850 prettySparkleParticle4.DrawVerticalAxis = false;
851 if (num6 % 2f == 1f)
852 {
853 prettySparkleParticle4.Scale *= 1.5f;
854 prettySparkleParticle4.Velocity *= 1.5f;
855 }
856 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle4);
857 for (int j = 0; j < 1; j++)
858 {
859 if (Main.rand.Next(2) != 0)
860 {
861 Dust dust3 = Dust.NewDustPerfect(settings.PositionInWorld, 169, vector3.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
862 dust3.noGravity = true;
863 dust3.scale = 1.4f;
864 Dust dust4 = Dust.NewDustPerfect(settings.PositionInWorld, 169, -vector3.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
865 dust4.noGravity = true;
866 dust4.scale = 1.4f;
867 }
868 }
869 }
870 }
871
872 private static void Spawn_AshTreeShake(ParticleOrchestraSettings settings)
873 {
874 float num = 10f + 20f * Main.rand.NextFloat();
875 float num2 = -(float)Math.PI / 4f;
876 float num3 = 0.2f + 0.4f * Main.rand.NextFloat();
877 Color colorTint = Main.hslToRgb(Main.rand.NextFloat() * 0.1f + 0.06f, 1f, 0.5f);
878 colorTint.A /= 2;
879 colorTint *= Main.rand.NextFloat() * 0.3f + 0.7f;
880 for (float num4 = 0f; num4 < 2f; num4 += 1f)
881 {
882 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
883 Vector2 vector = ((float)Math.PI / 4f + (float)Math.PI * num4 + num2).ToRotationVector2() * 4f;
884 prettySparkleParticle.ColorTint = colorTint;
885 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
886 prettySparkleParticle.Rotation = vector.ToRotation();
887 prettySparkleParticle.Scale = new Vector2(4f, 1f) * 1.1f * num3;
888 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
889 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
890 prettySparkleParticle.TimeToLive = num;
891 prettySparkleParticle.FadeOutEnd = num;
892 prettySparkleParticle.FadeInEnd = num / 2f;
893 prettySparkleParticle.FadeOutStart = num / 2f;
894 prettySparkleParticle.AdditiveAmount = 0.35f;
895 prettySparkleParticle.LocalPosition -= vector * num * 0.25f;
896 prettySparkleParticle.Velocity = vector * 0.05f;
897 prettySparkleParticle.DrawVerticalAxis = false;
898 if (num4 == 1f)
899 {
900 prettySparkleParticle.Scale *= 1.5f;
901 prettySparkleParticle.Velocity *= 1.5f;
902 prettySparkleParticle.LocalPosition -= prettySparkleParticle.Velocity * 4f;
903 }
904 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
905 }
906 for (float num5 = 0f; num5 < 2f; num5 += 1f)
907 {
908 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
909 Vector2 vector2 = ((float)Math.PI / 4f + (float)Math.PI * num5 + num2).ToRotationVector2() * 4f;
910 prettySparkleParticle2.ColorTint = new Color(1f, 0.4f, 0.2f, 1f);
911 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
912 prettySparkleParticle2.Rotation = vector2.ToRotation();
913 prettySparkleParticle2.Scale = new Vector2(4f, 1f) * 0.7f * num3;
914 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
915 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
916 prettySparkleParticle2.TimeToLive = num;
917 prettySparkleParticle2.FadeOutEnd = num;
918 prettySparkleParticle2.FadeInEnd = num / 2f;
919 prettySparkleParticle2.FadeOutStart = num / 2f;
920 prettySparkleParticle2.LocalPosition -= vector2 * num * 0.25f;
921 prettySparkleParticle2.Velocity = vector2 * 0.05f;
922 prettySparkleParticle2.DrawVerticalAxis = false;
923 if (num5 == 1f)
924 {
925 prettySparkleParticle2.Scale *= 1.5f;
926 prettySparkleParticle2.Velocity *= 1.5f;
927 prettySparkleParticle2.LocalPosition -= prettySparkleParticle2.Velocity * 4f;
928 }
929 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
930 for (int i = 0; i < 1; i++)
931 {
932 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld, 6, vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
933 dust.noGravity = true;
934 dust.scale = 1.4f;
935 Dust dust2 = Dust.NewDustPerfect(settings.PositionInWorld, 6, -vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
936 dust2.noGravity = true;
937 dust2.scale = 1.4f;
938 }
939 }
940 }
941
943 {
944 float num = 90f;
945 float num2 = (float)Math.PI * 2f * Main.rand.NextFloat();
946 float num3 = 3f;
947 for (float num4 = 0f; num4 < num3; num4 += 1f)
948 {
949 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
950 Vector2 v = ((float)Math.PI * 2f / num3 * num4 + num2).ToRotationVector2() * 4f;
951 prettySparkleParticle.ColorTint = new Color(0.3f, 0.6f, 0.3f, 0.5f);
952 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
953 prettySparkleParticle.Rotation = v.ToRotation();
954 prettySparkleParticle.Scale = new Vector2(4f, 1f) * 0.4f;
955 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
956 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
957 prettySparkleParticle.TimeToLive = num;
958 prettySparkleParticle.FadeOutEnd = num;
959 prettySparkleParticle.FadeInEnd = 10f;
960 prettySparkleParticle.FadeOutStart = 10f;
961 prettySparkleParticle.AdditiveAmount = 0.5f;
962 prettySparkleParticle.Velocity = Vector2.Zero;
963 prettySparkleParticle.DrawVerticalAxis = false;
964 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
965 }
966 }
967
969 {
970 int num = 30;
971 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
972 Vector2 movementVector = settings.MovementVector;
973 Color value = Main.hslToRgb((float)settings.UniqueInfoPiece / 255f, 1f, 0.5f);
974 value = Color.Lerp(value, Color.Gold, (float)(int)value.R / 255f * 0.5f);
975 prettySparkleParticle.ColorTint = value;
976 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
977 prettySparkleParticle.Rotation = movementVector.ToRotation();
978 prettySparkleParticle.Scale = new Vector2(4f, 1f) * 1f;
979 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
980 prettySparkleParticle.FadeOutNormalizedTime = 1f;
981 prettySparkleParticle.TimeToLive = num;
982 prettySparkleParticle.FadeOutEnd = num;
983 prettySparkleParticle.FadeInEnd = num / 2;
984 prettySparkleParticle.FadeOutStart = num / 2;
985 prettySparkleParticle.AdditiveAmount = 0.5f;
986 prettySparkleParticle.Velocity = settings.MovementVector;
987 prettySparkleParticle.LocalPosition -= prettySparkleParticle.Velocity * 4f;
988 prettySparkleParticle.DrawVerticalAxis = false;
989 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
990 }
991
993 {
994 float num = 30f;
995 float num2 = 0f;
996 for (float num3 = 0f; num3 < 3f; num3 += 2f)
997 {
998 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
999 Vector2 vector = ((float)Math.PI / 4f + (float)Math.PI / 4f * num3 + num2).ToRotationVector2() * 4f;
1000 prettySparkleParticle.ColorTint = new Color(0.3f, 0.6f, 0.3f, 0.5f);
1001 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
1002 prettySparkleParticle.Rotation = vector.ToRotation();
1003 prettySparkleParticle.Scale = new Vector2(4f, 1f) * 1.1f;
1004 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
1005 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
1006 prettySparkleParticle.TimeToLive = num;
1007 prettySparkleParticle.FadeOutEnd = num;
1008 prettySparkleParticle.FadeInEnd = num / 2f;
1009 prettySparkleParticle.FadeOutStart = num / 2f;
1010 prettySparkleParticle.AdditiveAmount = 0.35f;
1011 prettySparkleParticle.LocalPosition -= vector * num * 0.25f;
1012 prettySparkleParticle.Velocity = vector;
1013 prettySparkleParticle.DrawVerticalAxis = false;
1014 if (num3 == 1f)
1015 {
1016 prettySparkleParticle.Scale *= 1.5f;
1017 prettySparkleParticle.Velocity *= 1.5f;
1018 prettySparkleParticle.LocalPosition -= prettySparkleParticle.Velocity * 4f;
1019 }
1020 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1021 }
1022 for (float num4 = 0f; num4 < 3f; num4 += 2f)
1023 {
1024 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
1025 Vector2 vector2 = ((float)Math.PI / 4f + (float)Math.PI / 4f * num4 + num2).ToRotationVector2() * 4f;
1026 prettySparkleParticle2.ColorTint = new Color(0.6f, 1f, 0.2f, 1f);
1027 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
1028 prettySparkleParticle2.Rotation = vector2.ToRotation();
1029 prettySparkleParticle2.Scale = new Vector2(4f, 1f) * 0.7f;
1030 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
1031 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
1032 prettySparkleParticle2.TimeToLive = num;
1033 prettySparkleParticle2.FadeOutEnd = num;
1034 prettySparkleParticle2.FadeInEnd = num / 2f;
1035 prettySparkleParticle2.FadeOutStart = num / 2f;
1036 prettySparkleParticle2.LocalPosition -= vector2 * num * 0.25f;
1037 prettySparkleParticle2.Velocity = vector2;
1038 prettySparkleParticle2.DrawVerticalAxis = false;
1039 if (num4 == 1f)
1040 {
1041 prettySparkleParticle2.Scale *= 1.5f;
1042 prettySparkleParticle2.Velocity *= 1.5f;
1043 prettySparkleParticle2.LocalPosition -= prettySparkleParticle2.Velocity * 4f;
1044 }
1045 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
1046 for (int i = 0; i < 2; i++)
1047 {
1048 Dust dust = Dust.NewDustPerfect(settings.PositionInWorld, 75, vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
1049 dust.noGravity = true;
1050 dust.scale = 1.4f;
1051 Dust dust2 = Dust.NewDustPerfect(settings.PositionInWorld, 75, -vector2.RotatedBy(Main.rand.NextFloatDirection() * ((float)Math.PI * 2f) * 0.025f) * Main.rand.NextFloat());
1052 dust2.noGravity = true;
1053 dust2.scale = 1.4f;
1054 }
1055 }
1056 }
1057
1058 private static void Spawn_NightsEdge(ParticleOrchestraSettings settings)
1059 {
1060 float num = 30f;
1061 float num2 = 0f;
1062 for (float num3 = 0f; num3 < 3f; num3 += 1f)
1063 {
1064 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1065 Vector2 vector = ((float)Math.PI / 4f + (float)Math.PI / 4f * num3 + num2).ToRotationVector2() * 4f;
1066 prettySparkleParticle.ColorTint = new Color(0.25f, 0.1f, 0.5f, 0.5f);
1067 prettySparkleParticle.LocalPosition = settings.PositionInWorld;
1068 prettySparkleParticle.Rotation = vector.ToRotation();
1069 prettySparkleParticle.Scale = new Vector2(2f, 1f) * 1.1f;
1070 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
1071 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
1072 prettySparkleParticle.TimeToLive = num;
1073 prettySparkleParticle.FadeOutEnd = num;
1074 prettySparkleParticle.FadeInEnd = num / 2f;
1075 prettySparkleParticle.FadeOutStart = num / 2f;
1076 prettySparkleParticle.AdditiveAmount = 0.35f;
1077 prettySparkleParticle.LocalPosition -= vector * num * 0.25f;
1078 prettySparkleParticle.Velocity = vector;
1079 prettySparkleParticle.DrawVerticalAxis = false;
1080 if (num3 == 1f)
1081 {
1082 prettySparkleParticle.Scale *= 1.5f;
1083 prettySparkleParticle.Velocity *= 1.5f;
1084 prettySparkleParticle.LocalPosition -= prettySparkleParticle.Velocity * 4f;
1085 }
1086 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1087 }
1088 for (float num4 = 0f; num4 < 3f; num4 += 1f)
1089 {
1090 PrettySparkleParticle prettySparkleParticle2 = _poolPrettySparkle.RequestParticle();
1091 Vector2 vector2 = ((float)Math.PI / 4f + (float)Math.PI / 4f * num4 + num2).ToRotationVector2() * 4f;
1092 prettySparkleParticle2.ColorTint = new Color(0.5f, 0.25f, 1f, 1f);
1093 prettySparkleParticle2.LocalPosition = settings.PositionInWorld;
1094 prettySparkleParticle2.Rotation = vector2.ToRotation();
1095 prettySparkleParticle2.Scale = new Vector2(2f, 1f) * 0.7f;
1096 prettySparkleParticle2.FadeInNormalizedTime = 5E-06f;
1097 prettySparkleParticle2.FadeOutNormalizedTime = 0.95f;
1098 prettySparkleParticle2.TimeToLive = num;
1099 prettySparkleParticle2.FadeOutEnd = num;
1100 prettySparkleParticle2.FadeInEnd = num / 2f;
1101 prettySparkleParticle2.FadeOutStart = num / 2f;
1102 prettySparkleParticle2.LocalPosition -= vector2 * num * 0.25f;
1103 prettySparkleParticle2.Velocity = vector2;
1104 prettySparkleParticle2.DrawVerticalAxis = false;
1105 if (num4 == 1f)
1106 {
1107 prettySparkleParticle2.Scale *= 1.5f;
1108 prettySparkleParticle2.Velocity *= 1.5f;
1109 prettySparkleParticle2.LocalPosition -= prettySparkleParticle2.Velocity * 4f;
1110 }
1111 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle2);
1112 }
1113 }
1114
1116 {
1117 _ = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1118 Vector2 movementVector = settings.MovementVector;
1119 Vector2 vector = new Vector2(Main.rand.NextFloat() * 0.2f + 0.4f);
1120 Main.rand.NextFloat();
1121 float rotation = (float)Math.PI / 2f;
1122 Vector2 vector2 = Main.rand.NextVector2Circular(4f, 4f) * vector;
1123 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1124 prettySparkleParticle.AccelerationPerFrame = -movementVector * 1f / 30f;
1125 prettySparkleParticle.Velocity = movementVector;
1126 prettySparkleParticle.ColorTint = Color.White;
1127 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector2;
1128 prettySparkleParticle.Rotation = rotation;
1129 prettySparkleParticle.Scale = vector;
1130 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
1131 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
1132 prettySparkleParticle.FadeInEnd = 10f;
1133 prettySparkleParticle.FadeOutStart = 20f;
1134 prettySparkleParticle.FadeOutEnd = 30f;
1135 prettySparkleParticle.TimeToLive = 30f;
1136 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1137 }
1138
1140 {
1141 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1142 float num2 = 1f;
1143 for (float num3 = 0f; num3 < 1f; num3 += 1f / num2)
1144 {
1145 float num4 = 0.6f + Main.rand.NextFloat() * 0.35f;
1146 Vector2 vector = settings.MovementVector * num4;
1147 Vector2 vector2 = new Vector2(Main.rand.NextFloat() * 0.4f + 0.2f);
1148 float f = num + Main.rand.NextFloat() * ((float)Math.PI * 2f);
1149 float rotation = (float)Math.PI / 2f;
1150 _ = 0.1f * vector2;
1151 Vector2 vector3 = Main.rand.NextVector2Circular(12f, 12f) * vector2;
1152 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1153 prettySparkleParticle.AccelerationPerFrame = -vector * 1f / 30f;
1154 prettySparkleParticle.Velocity = vector + f.ToRotationVector2() * 2f * num4;
1155 prettySparkleParticle.ColorTint = new Color(1f, 0.8f, 0.4f, 0f);
1156 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector3;
1157 prettySparkleParticle.Rotation = rotation;
1158 prettySparkleParticle.Scale = vector2;
1159 prettySparkleParticle.FadeInNormalizedTime = 5E-06f;
1160 prettySparkleParticle.FadeOutNormalizedTime = 0.95f;
1161 prettySparkleParticle.TimeToLive = 40f;
1162 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1163 prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1164 prettySparkleParticle.AccelerationPerFrame = -vector * 1f / 30f;
1165 prettySparkleParticle.Velocity = vector * 0.8f + f.ToRotationVector2() * 2f;
1166 prettySparkleParticle.ColorTint = new Color(255, 255, 255, 0);
1167 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector3;
1168 prettySparkleParticle.Rotation = rotation;
1169 prettySparkleParticle.Scale = vector2 * 0.6f;
1170 prettySparkleParticle.FadeInNormalizedTime = 0.1f;
1171 prettySparkleParticle.FadeOutNormalizedTime = 0.9f;
1172 prettySparkleParticle.TimeToLive = 60f;
1173 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1174 }
1175 for (int i = 0; i < 2; i++)
1176 {
1177 int num5 = Dust.NewDust(newColor: new Color(1f, 0.7f, 0.3f, 0f), Position: settings.PositionInWorld, Width: 0, Height: 0, Type: 267);
1178 Main.dust[num5].velocity = Main.rand.NextVector2Circular(2f, 2f);
1179 Main.dust[num5].velocity += settings.MovementVector * (0.5f + 0.5f * Main.rand.NextFloat()) * 1.4f;
1180 Main.dust[num5].noGravity = true;
1181 Main.dust[num5].scale = 0.1f;
1182 Main.dust[num5].position += Main.rand.NextVector2Circular(16f, 16f);
1183 Main.dust[num5].velocity = settings.MovementVector;
1184 if (num5 != 6000)
1185 {
1186 Dust dust = Dust.CloneDust(num5);
1187 dust.scale /= 2f;
1188 dust.fadeIn *= 0.75f;
1189 dust.color = new Color(255, 255, 255, 255);
1190 }
1191 }
1192 }
1193
1195 {
1196 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1197 float num2 = 1f;
1198 for (float num3 = 0f; num3 < 1f; num3 += 1f / num2)
1199 {
1200 Vector2 vector = settings.MovementVector * (0.6f + Main.rand.NextFloat() * 0.35f);
1201 Vector2 vector2 = new Vector2(Main.rand.NextFloat() * 0.4f + 0.2f);
1202 float f = num + Main.rand.NextFloat() * ((float)Math.PI * 2f);
1203 float rotation = (float)Math.PI / 2f;
1204 Vector2 vector3 = 0.1f * vector2;
1205 float num4 = 60f;
1206 Vector2 vector4 = Main.rand.NextVector2Circular(8f, 8f) * vector2;
1207 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1208 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1209 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num4) - vector * 1f / 30f;
1210 prettySparkleParticle.AccelerationPerFrame = -vector * 1f / 60f;
1211 prettySparkleParticle.Velocity = vector * 0.66f;
1212 prettySparkleParticle.ColorTint = Main.hslToRgb((0.92f + Main.rand.NextFloat() * 0.02f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1213 prettySparkleParticle.ColorTint.A = 0;
1214 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1215 prettySparkleParticle.Rotation = rotation;
1216 prettySparkleParticle.Scale = vector2;
1217 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1218 prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1219 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1220 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num4) - vector * 1f / 15f;
1221 prettySparkleParticle.AccelerationPerFrame = -vector * 1f / 60f;
1222 prettySparkleParticle.Velocity = vector * 0.66f;
1223 prettySparkleParticle.ColorTint = new Color(255, 255, 255, 0);
1224 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1225 prettySparkleParticle.Rotation = rotation;
1226 prettySparkleParticle.Scale = vector2 * 0.6f;
1227 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1228 }
1229 for (int i = 0; i < 2; i++)
1230 {
1231 Color newColor = Main.hslToRgb((0.92f + Main.rand.NextFloat() * 0.02f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1232 int num5 = Dust.NewDust(settings.PositionInWorld, 0, 0, 267, 0f, 0f, 0, newColor);
1233 Main.dust[num5].velocity = Main.rand.NextVector2Circular(2f, 2f);
1234 Main.dust[num5].velocity += settings.MovementVector * (0.5f + 0.5f * Main.rand.NextFloat()) * 1.4f;
1235 Main.dust[num5].noGravity = true;
1236 Main.dust[num5].scale = 0.1f;
1237 Main.dust[num5].position += Main.rand.NextVector2Circular(16f, 16f);
1238 Main.dust[num5].velocity = settings.MovementVector;
1239 if (num5 != 6000)
1240 {
1241 Dust dust = Dust.CloneDust(num5);
1242 dust.scale /= 2f;
1243 dust.fadeIn *= 0.75f;
1244 dust.color = new Color(255, 255, 255, 255);
1245 }
1246 }
1247 }
1248
1250 {
1251 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1252 float num2 = 1f;
1253 for (float num3 = 0f; num3 < 1f; num3 += 1f / num2)
1254 {
1255 Vector2 vector = settings.MovementVector * (0.3f + Main.rand.NextFloat() * 0.35f);
1256 Vector2 vector2 = new Vector2(Main.rand.NextFloat() * 0.4f + 0.4f);
1257 float f = num + Main.rand.NextFloat() * ((float)Math.PI * 2f);
1258 float rotation = (float)Math.PI / 2f;
1259 Vector2 vector3 = 0.1f * vector2;
1260 float num4 = 60f;
1261 Vector2 vector4 = Main.rand.NextVector2Circular(8f, 8f) * vector2;
1262 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1263 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1264 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num4) - vector * 1f / 60f;
1265 prettySparkleParticle.ColorTint = Main.hslToRgb((0.6f + Main.rand.NextFloat() * 0.05f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1266 prettySparkleParticle.ColorTint.A = 0;
1267 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1268 prettySparkleParticle.Rotation = rotation;
1269 prettySparkleParticle.Scale = vector2;
1270 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1271 prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1272 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1273 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num4) - vector * 1f / 30f;
1274 prettySparkleParticle.ColorTint = new Color(255, 255, 255, 0);
1275 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1276 prettySparkleParticle.Rotation = rotation;
1277 prettySparkleParticle.Scale = vector2 * 0.6f;
1278 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1279 }
1280 for (int i = 0; i < 2; i++)
1281 {
1282 Color newColor = Main.hslToRgb((0.59f + Main.rand.NextFloat() * 0.05f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1283 int num5 = Dust.NewDust(settings.PositionInWorld, 0, 0, 267, 0f, 0f, 0, newColor);
1284 Main.dust[num5].velocity = Main.rand.NextVector2Circular(2f, 2f);
1285 Main.dust[num5].velocity += settings.MovementVector * (0.5f + 0.5f * Main.rand.NextFloat()) * 1.4f;
1286 Main.dust[num5].noGravity = true;
1287 Main.dust[num5].scale = 0.6f + Main.rand.NextFloat() * 2f;
1288 Main.dust[num5].position += Main.rand.NextVector2Circular(16f, 16f);
1289 if (num5 != 6000)
1290 {
1291 Dust dust = Dust.CloneDust(num5);
1292 dust.scale /= 2f;
1293 dust.fadeIn *= 0.75f;
1294 dust.color = new Color(255, 255, 255, 255);
1295 }
1296 }
1297 }
1298
1300 {
1301 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1302 float num2 = 6f;
1303 float num3 = Main.rand.NextFloat();
1304 for (float num4 = 0f; num4 < 1f; num4 += 1f / num2)
1305 {
1306 Vector2 vector = settings.MovementVector * Main.rand.NextFloatDirection() * 0.15f;
1307 Vector2 vector2 = new Vector2(Main.rand.NextFloat() * 0.4f + 0.4f);
1308 float f = num + Main.rand.NextFloat() * ((float)Math.PI * 2f);
1309 float rotation = (float)Math.PI / 2f;
1310 Vector2 vector3 = 1.5f * vector2;
1311 float num5 = 60f;
1312 Vector2 vector4 = Main.rand.NextVector2Circular(8f, 8f) * vector2;
1313 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1314 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1315 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num5) - vector * 1f / 60f;
1316 prettySparkleParticle.ColorTint = Main.hslToRgb((num3 + Main.rand.NextFloat() * 0.33f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1317 prettySparkleParticle.ColorTint.A = 0;
1318 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1319 prettySparkleParticle.Rotation = rotation;
1320 prettySparkleParticle.Scale = vector2;
1321 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1322 prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1323 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1324 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num5) - vector * 1f / 60f;
1325 prettySparkleParticle.ColorTint = new Color(255, 255, 255, 0);
1326 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1327 prettySparkleParticle.Rotation = rotation;
1328 prettySparkleParticle.Scale = vector2 * 0.6f;
1329 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1330 }
1331 for (int i = 0; i < 12; i++)
1332 {
1333 Color newColor = Main.hslToRgb((num3 + Main.rand.NextFloat() * 0.12f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1334 int num6 = Dust.NewDust(settings.PositionInWorld, 0, 0, 267, 0f, 0f, 0, newColor);
1335 Main.dust[num6].velocity = Main.rand.NextVector2Circular(1f, 1f);
1336 Main.dust[num6].velocity += settings.MovementVector * Main.rand.NextFloatDirection() * 0.5f;
1337 Main.dust[num6].noGravity = true;
1338 Main.dust[num6].scale = 0.6f + Main.rand.NextFloat() * 0.9f;
1339 Main.dust[num6].fadeIn = 0.7f + Main.rand.NextFloat() * 0.8f;
1340 if (num6 != 6000)
1341 {
1342 Dust dust = Dust.CloneDust(num6);
1343 dust.scale /= 2f;
1344 dust.fadeIn *= 0.75f;
1345 dust.color = new Color(255, 255, 255, 255);
1346 }
1347 }
1348 }
1349
1351 {
1352 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1353 float num2 = Main.rand.Next(1, 3);
1354 float num3 = 0.7f;
1355 int num4 = 916;
1356 Main.instance.LoadProjectile(num4);
1357 Color value = new Color(255, 255, 255, 255);
1358 Color indigo = Color.Indigo;
1359 indigo.A = 0;
1360 for (float num5 = 0f; num5 < 1f; num5 += 1f / num2)
1361 {
1362 float f = (float)Math.PI * 2f * num5 + num + Main.rand.NextFloatDirection() * 0.25f;
1363 float num6 = Main.rand.NextFloat() * 4f + 0.1f;
1364 Vector2 vector = Main.rand.NextVector2Circular(12f, 12f) * num3;
1365 Color.Lerp(Color.Lerp(Color.Black, indigo, Main.rand.NextFloat() * 0.5f), value, Main.rand.NextFloat() * 0.6f);
1366 Color colorTint = new Color(0, 0, 0, 255);
1367 int num7 = Main.rand.Next(4);
1368 if (num7 == 1)
1369 {
1370 colorTint = Color.Lerp(new Color(106, 90, 205, 127), Color.Black, 0.1f + 0.7f * Main.rand.NextFloat());
1371 }
1372 if (num7 == 2)
1373 {
1374 colorTint = Color.Lerp(new Color(106, 90, 205, 60), Color.Black, 0.1f + 0.8f * Main.rand.NextFloat());
1375 }
1376 RandomizedFrameParticle randomizedFrameParticle = _poolRandomizedFrame.RequestParticle();
1377 randomizedFrameParticle.SetBasicInfo(TextureAssets.Projectile[num4], null, Vector2.Zero, vector);
1378 randomizedFrameParticle.SetTypeInfo(Main.projFrames[num4], 2, 24f);
1379 randomizedFrameParticle.Velocity = f.ToRotationVector2() * num6 * new Vector2(1f, 0.5f) * 0.2f + settings.MovementVector;
1380 randomizedFrameParticle.ColorTint = colorTint;
1381 randomizedFrameParticle.LocalPosition = settings.PositionInWorld + vector;
1382 randomizedFrameParticle.Rotation = randomizedFrameParticle.Velocity.ToRotation();
1383 randomizedFrameParticle.Scale = Vector2.One * 0.5f;
1384 randomizedFrameParticle.FadeInNormalizedTime = 0.01f;
1385 randomizedFrameParticle.FadeOutNormalizedTime = 0.5f;
1386 randomizedFrameParticle.ScaleVelocity = new Vector2(0.025f);
1387 Main.ParticleSystem_World_OverPlayers.Add(randomizedFrameParticle);
1388 }
1389 }
1390
1392 {
1393 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1394 float num2 = 7f;
1395 float num3 = 0.7f;
1396 int num4 = 916;
1397 Main.instance.LoadProjectile(num4);
1398 Color value = new Color(255, 255, 255, 255);
1399 Color indigo = Color.Indigo;
1400 indigo.A = 0;
1401 for (float num5 = 0f; num5 < 1f; num5 += 1f / num2)
1402 {
1403 float num6 = (float)Math.PI * 2f * num5 + num + Main.rand.NextFloatDirection() * 0.25f;
1404 float num7 = Main.rand.NextFloat() * 4f + 0.1f;
1405 Vector2 vector = Main.rand.NextVector2Circular(12f, 12f) * num3;
1406 Color.Lerp(Color.Lerp(Color.Black, indigo, Main.rand.NextFloat() * 0.5f), value, Main.rand.NextFloat() * 0.6f);
1407 Color colorTint = new Color(0, 0, 0, 255);
1408 int num8 = Main.rand.Next(4);
1409 if (num8 == 1)
1410 {
1411 colorTint = Color.Lerp(new Color(106, 90, 205, 127), Color.Black, 0.1f + 0.7f * Main.rand.NextFloat());
1412 }
1413 if (num8 == 2)
1414 {
1415 colorTint = Color.Lerp(new Color(106, 90, 205, 60), Color.Black, 0.1f + 0.8f * Main.rand.NextFloat());
1416 }
1417 RandomizedFrameParticle randomizedFrameParticle = _poolRandomizedFrame.RequestParticle();
1418 randomizedFrameParticle.SetBasicInfo(TextureAssets.Projectile[num4], null, Vector2.Zero, vector);
1419 randomizedFrameParticle.SetTypeInfo(Main.projFrames[num4], 2, 24f);
1420 randomizedFrameParticle.Velocity = num6.ToRotationVector2() * num7 * new Vector2(1f, 0.5f);
1421 randomizedFrameParticle.ColorTint = colorTint;
1422 randomizedFrameParticle.LocalPosition = settings.PositionInWorld + vector;
1423 randomizedFrameParticle.Rotation = num6;
1424 randomizedFrameParticle.Scale = Vector2.One;
1425 randomizedFrameParticle.FadeInNormalizedTime = 0.01f;
1426 randomizedFrameParticle.FadeOutNormalizedTime = 0.5f;
1427 randomizedFrameParticle.ScaleVelocity = new Vector2(0.05f);
1428 Main.ParticleSystem_World_OverPlayers.Add(randomizedFrameParticle);
1429 }
1430 }
1431
1432 private static void Spawn_StellarTune(ParticleOrchestraSettings settings)
1433 {
1434 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1435 float num2 = 5f;
1436 Vector2 vector = new Vector2(0.7f);
1437 for (float num3 = 0f; num3 < 1f; num3 += 1f / num2)
1438 {
1439 float num4 = (float)Math.PI * 2f * num3 + num + Main.rand.NextFloatDirection() * 0.25f;
1440 Vector2 vector2 = 1.5f * vector;
1441 float num5 = 60f;
1442 Vector2 vector3 = Main.rand.NextVector2Circular(12f, 12f) * vector;
1443 Color colorTint = Color.Lerp(Color.Gold, Color.HotPink, Main.rand.NextFloat());
1444 if (Main.rand.Next(2) == 0)
1445 {
1446 colorTint = Color.Lerp(Color.Violet, Color.HotPink, Main.rand.NextFloat());
1447 }
1448 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1449 prettySparkleParticle.Velocity = num4.ToRotationVector2() * vector2;
1450 prettySparkleParticle.AccelerationPerFrame = num4.ToRotationVector2() * -(vector2 / num5);
1451 prettySparkleParticle.ColorTint = colorTint;
1452 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector3;
1453 prettySparkleParticle.Rotation = num4;
1454 prettySparkleParticle.Scale = vector * (Main.rand.NextFloat() * 0.8f + 0.2f);
1455 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1456 }
1457 num2 = 1f;
1458 }
1459
1460 private static void Spawn_Keybrand(ParticleOrchestraSettings settings)
1461 {
1462 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1463 float num2 = 3f;
1464 Vector2 vector = new Vector2(0.7f);
1465 for (float num3 = 0f; num3 < 1f; num3 += 1f / num2)
1466 {
1467 float num4 = (float)Math.PI * 2f * num3 + num + Main.rand.NextFloatDirection() * 0.1f;
1468 Vector2 vector2 = 1.5f * vector;
1469 float num5 = 60f;
1470 Vector2 vector3 = Main.rand.NextVector2Circular(4f, 4f) * vector;
1471 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1472 prettySparkleParticle.Velocity = num4.ToRotationVector2() * vector2;
1473 prettySparkleParticle.AccelerationPerFrame = num4.ToRotationVector2() * -(vector2 / num5);
1474 prettySparkleParticle.ColorTint = Color.Lerp(Color.Gold, Color.OrangeRed, Main.rand.NextFloat());
1475 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector3;
1476 prettySparkleParticle.Rotation = num4;
1477 prettySparkleParticle.Scale = vector * 0.8f;
1478 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1479 }
1480 num += 1f / num2 / 2f * ((float)Math.PI * 2f);
1481 num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1482 for (float num6 = 0f; num6 < 1f; num6 += 1f / num2)
1483 {
1484 float num7 = (float)Math.PI * 2f * num6 + num + Main.rand.NextFloatDirection() * 0.1f;
1485 Vector2 vector4 = 1f * vector;
1486 float num8 = 30f;
1488 value = Color.Lerp(Color.White, value, 0.5f);
1489 value.A = 0;
1490 Vector2 vector5 = Main.rand.NextVector2Circular(4f, 4f) * vector;
1491 FadingParticle fadingParticle = _poolFading.RequestParticle();
1492 fadingParticle.SetBasicInfo(TextureAssets.Extra[98], null, Vector2.Zero, Vector2.Zero);
1493 fadingParticle.SetTypeInfo(num8);
1494 fadingParticle.Velocity = num7.ToRotationVector2() * vector4;
1495 fadingParticle.AccelerationPerFrame = num7.ToRotationVector2() * -(vector4 / num8);
1496 fadingParticle.ColorTint = value;
1497 fadingParticle.LocalPosition = settings.PositionInWorld + num7.ToRotationVector2() * vector4 * vector * num8 * 0.2f + vector5;
1498 fadingParticle.Rotation = num7 + (float)Math.PI / 2f;
1499 fadingParticle.FadeInNormalizedTime = 0.3f;
1500 fadingParticle.FadeOutNormalizedTime = 0.4f;
1501 fadingParticle.Scale = new Vector2(0.5f, 1.2f) * 0.8f * vector;
1502 Main.ParticleSystem_World_OverPlayers.Add(fadingParticle);
1503 }
1504 num2 = 1f;
1505 num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1506 for (float num9 = 0f; num9 < 1f; num9 += 1f / num2)
1507 {
1508 float num10 = (float)Math.PI * 2f * num9 + num;
1509 float typeInfo = 30f;
1510 Color colorTint = Color.Lerp(Color.CornflowerBlue, Color.White, Main.rand.NextFloat());
1511 colorTint.A = 127;
1512 Vector2 vector6 = Main.rand.NextVector2Circular(4f, 4f) * vector;
1513 Vector2 vector7 = Main.rand.NextVector2Square(0.7f, 1.3f);
1514 FadingParticle fadingParticle2 = _poolFading.RequestParticle();
1515 fadingParticle2.SetBasicInfo(TextureAssets.Extra[174], null, Vector2.Zero, Vector2.Zero);
1516 fadingParticle2.SetTypeInfo(typeInfo);
1517 fadingParticle2.ColorTint = colorTint;
1518 fadingParticle2.LocalPosition = settings.PositionInWorld + vector6;
1519 fadingParticle2.Rotation = num10 + (float)Math.PI / 2f;
1520 fadingParticle2.FadeInNormalizedTime = 0.1f;
1521 fadingParticle2.FadeOutNormalizedTime = 0.4f;
1522 fadingParticle2.Scale = new Vector2(0.1f, 0.1f) * vector;
1523 fadingParticle2.ScaleVelocity = vector7 * 1f / 60f;
1524 fadingParticle2.ScaleAcceleration = vector7 * (-1f / 60f) / 60f;
1525 Main.ParticleSystem_World_OverPlayers.Add(fadingParticle2);
1526 }
1527 }
1528
1529 private static void Spawn_FlameWaders(ParticleOrchestraSettings settings)
1530 {
1531 float num = 60f;
1532 for (int i = -1; i <= 1; i++)
1533 {
1534 int num2 = Main.rand.NextFromList(new short[3] { 326, 327, 328 });
1535 Main.instance.LoadProjectile(num2);
1536 Player player = Main.player[settings.IndexOfPlayerWhoInvokedThis];
1537 float num3 = Main.rand.NextFloat() * 0.9f + 0.1f;
1538 Vector2 vector = settings.PositionInWorld + new Vector2((float)i * 5.3333335f, 0f);
1539 FlameParticle flameParticle = _poolFlame.RequestParticle();
1540 flameParticle.SetBasicInfo(TextureAssets.Projectile[num2], null, Vector2.Zero, vector);
1541 flameParticle.SetTypeInfo(num, settings.IndexOfPlayerWhoInvokedThis, player.cFlameWaker);
1542 flameParticle.FadeOutNormalizedTime = 0.4f;
1543 flameParticle.ScaleAcceleration = Vector2.One * num3 * (-1f / 60f) / num;
1544 flameParticle.Scale = Vector2.One * num3;
1545 Main.ParticleSystem_World_BehindPlayers.Add(flameParticle);
1546 if (Main.rand.Next(16) == 0)
1547 {
1548 Dust dust = Dust.NewDustDirect(vector, 4, 4, 6, 0f, 0f, 100);
1549 if (Main.rand.Next(2) == 0)
1550 {
1551 dust.noGravity = true;
1552 dust.fadeIn = 1.15f;
1553 }
1554 else
1555 {
1556 dust.scale = 0.6f;
1557 }
1558 dust.velocity *= 0.6f;
1559 dust.velocity.Y -= 1.2f;
1560 dust.noLight = true;
1561 dust.position.Y -= 4f;
1562 dust.shader = GameShaders.Armor.GetSecondaryShader(player.cFlameWaker, player);
1563 }
1564 }
1565 }
1566
1568 {
1569 float num = 50f;
1570 for (int i = -1; i <= 1; i++)
1571 {
1572 int num2 = Main.rand.NextFromList(new short[3] { 326, 327, 328 });
1573 Main.instance.LoadProjectile(num2);
1574 Player player = Main.player[settings.IndexOfPlayerWhoInvokedThis];
1575 float num3 = Main.rand.NextFloat() * 0.9f + 0.1f;
1576 Vector2 vector = settings.PositionInWorld + new Vector2((float)i * 5.3333335f, 0f);
1577 FlameParticle flameParticle = _poolFlame.RequestParticle();
1578 flameParticle.SetBasicInfo(TextureAssets.Projectile[num2], null, Vector2.Zero, vector);
1579 flameParticle.SetTypeInfo(num, settings.IndexOfPlayerWhoInvokedThis, player.cMount);
1580 flameParticle.FadeOutNormalizedTime = 0.3f;
1581 flameParticle.ScaleAcceleration = Vector2.One * num3 * (-1f / 60f) / num;
1582 flameParticle.Scale = Vector2.One * num3;
1583 Main.ParticleSystem_World_BehindPlayers.Add(flameParticle);
1584 if (Main.rand.Next(8) == 0)
1585 {
1586 Dust dust = Dust.NewDustDirect(vector, 4, 4, 6, 0f, 0f, 100);
1587 if (Main.rand.Next(2) == 0)
1588 {
1589 dust.noGravity = true;
1590 dust.fadeIn = 1.15f;
1591 }
1592 else
1593 {
1594 dust.scale = 0.6f;
1595 }
1596 dust.velocity *= 0.6f;
1597 dust.velocity.Y -= 1.2f;
1598 dust.noLight = true;
1599 dust.position.Y -= 4f;
1600 dust.shader = GameShaders.Armor.GetSecondaryShader(player.cMount, player);
1601 }
1602 }
1603 }
1604}
static double Abs(double value)
const double PI
Definition Math.cs:16
static void PlaySound(int type, Vector2 position, int style=1)
static void AskForChestToEatItem(Vector2 worldPosition, int duration)
Definition Chest.cs:3530
static Dust CloneDust(int dustIndex)
Definition Dust.cs:233
static int NewDust(Vector2 Position, int Width, int Height, int Type, float SpeedX=0f, float SpeedY=0f, int Alpha=0, Color newColor=default(Color), float Scale=1f)
Definition Dust.cs:73
static Dust NewDustPerfect(Vector2 Position, int Type, Vector2? Velocity=null, int Alpha=0, Color newColor=default(Color), float Scale=1f)
Definition Dust.cs:52
static Dust NewDustDirect(Vector2 Position, int Width, int Height, int Type, float SpeedX=0f, float SpeedY=0f, int Alpha=0, Color newColor=default(Color), float Scale=1f)
Definition Dust.cs:63
Vector2 velocity
Definition Dust.cs:22
Rectangle Hitbox
Definition Entity.cs:164
static void Spawn_BlackLightningHit(ParticleOrchestraSettings settings)
static void Spawn_TownSlimeTransform(ParticleOrchestraSettings settings)
static void Spawn_FlyMeal(ParticleOrchestraSettings settings)
static void Spawn_ItemTransfer(ParticleOrchestraSettings settings)
static void Spawn_StellarTune(ParticleOrchestraSettings settings)
static void Spawn_NightsEdge(ParticleOrchestraSettings settings)
static void Spawn_TerraBlade(ParticleOrchestraSettings settings)
static void CopperSlimeEffect(ParticleOrchestraSettings settings)
static ParticlePool< ItemTransferParticle > _poolItemTransfer
static PrettySparkleParticle GetNewPrettySparkleParticle()
static void Spawn_TrueExcalibur(ParticleOrchestraSettings settings)
static void Spawn_Excalibur(ParticleOrchestraSettings settings)
static void Spawn_SlapHand(ParticleOrchestraSettings settings)
static void Spawn_RainbowRodHit(ParticleOrchestraSettings settings)
static void Spawn_GasTrap(ParticleOrchestraSettings settings)
static void BroadcastOrRequestParticleSpawn(ParticleOrchestraType type, ParticleOrchestraSettings settings)
static void SpawnParticlesDirect(ParticleOrchestraType type, ParticleOrchestraSettings settings)
static void Spawn_ShimmerBlock(ParticleOrchestraSettings settings)
static LittleFlyingCritterParticle GetNewPooFlyParticle()
static void Spawn_ShimmerArrow(ParticleOrchestraSettings settings)
static void BroadcastParticleSpawn(ParticleOrchestraType type, ParticleOrchestraSettings settings)
static void Spawn_TrueNightsEdge(ParticleOrchestraSettings settings)
static void Spawn_LeafCrystalPassive(ParticleOrchestraSettings settings)
static void Spawn_SilverBulletSparkle(ParticleOrchestraSettings settings)
static void Spawn_PaladinsHammer(ParticleOrchestraSettings settings)
static void Spawn_Keybrand(ParticleOrchestraSettings settings)
static void Spawn_FlameWaders(ParticleOrchestraSettings settings)
static void ElderSlimeEffect(ParticleOrchestraSettings settings)
static void Spawn_StardustPunch(ParticleOrchestraSettings settings)
static void Spawn_LeafCrystalShot(ParticleOrchestraSettings settings)
static RandomizedFrameParticle GetNewRandomizedFrameParticle()
static void Spawn_AshTreeShake(ParticleOrchestraSettings settings)
static void Spawn_Digestion(ParticleOrchestraSettings settings)
static ParticlePool< PrettySparkleParticle > _poolPrettySparkle
static ParticlePool< RandomizedFrameParticle > _poolRandomizedFrame
static void Spawn_WaffleIron(ParticleOrchestraSettings settings)
static void Spawn_PetExchange(ParticleOrchestraSettings settings)
static void Spawn_ShimmerTownNPC(ParticleOrchestraSettings settings)
static void Spawn_ShimmerTownNPCSend(ParticleOrchestraSettings settings)
static ParticlePool< FlameParticle > _poolFlame
static void NerdySlimeEffect(ParticleOrchestraSettings settings)
static void RequestParticleSpawn(bool clientOnly, ParticleOrchestraType type, ParticleOrchestraSettings settings, int? overrideInvokingPlayerIndex=null)
static ParticlePool< FadingParticle > _poolFading
static void Spawn_PooFly(ParticleOrchestraSettings settings)
static ParticlePool< LittleFlyingCritterParticle > _poolFlies
static void Spawn_WallOfFleshGoatMountFlames(ParticleOrchestraSettings settings)
static void Spawn_LoadOutChange(ParticleOrchestraSettings settings)
static void Spawn_PrincessWeapon(ParticleOrchestraSettings settings)
static void Spawn_BlackLightningSmall(ParticleOrchestraSettings settings)
static NetPacket Serialize(ParticleOrchestraType particleType, ParticleOrchestraSettings settings)
static Asset< Texture2D >[] Projectile
static Asset< Texture2D >[] Star
static Asset< Texture2D >[] Extra
static Gore NewGoreDirect(Vector2 Position, Vector2 Velocity, int Type, float Scale=1f)
Definition Gore.cs:1283
static int NewGore(Vector2 Position, Vector2 Velocity, int Type, float Scale=1f)
Definition Gore.cs:1288
virtual void SetBasicInfo(Asset< Texture2D > textureAsset, Rectangle? frame, Vector2 initialVelocity, Vector2 initialLocalPosition)
override void SetBasicInfo(Asset< Texture2D > textureAsset, Rectangle? frame, Vector2 initialVelocity, Vector2 initialLocalPosition)
void SetTypeInfo(float timeToLive, int indexOfPlayerWhoSpawnedIt, int packedShaderIndex)
void Prepare(int itemType, int lifeTimeTotal, Vector2 playerPosition, Vector2 chestPosition)
void SetTypeInfo(int animationFramesAmount, int gameFramesPerAnimationFrame, float timeToLive)
static ArmorShaderDataSet Armor
Definition GameShaders.cs:7
static Dictionary< int, Item > ItemsByType
static readonly LegacySoundStyle Item29
Definition SoundID.cs:472
static readonly LegacySoundStyle Item178
Definition SoundID.cs:770
static readonly LegacySoundStyle Item175
Definition SoundID.cs:764
static readonly LegacySoundStyle Item16
Definition SoundID.cs:446
static int myPlayer
Definition Main.cs:1801
static int netMode
Definition Main.cs:2095
static Gore[] gore
Definition Main.cs:1687
static int[] projFrames
Definition Main.cs:1326
static Main instance
Definition Main.cs:283
static Microsoft.Xna.Framework.Color OurFavoriteColor
Definition Main.cs:902
static ParticleRenderer ParticleSystem_World_OverPlayers
Definition Main.cs:2249
static UnifiedRandom rand
Definition Main.cs:1387
static ParticleRenderer ParticleSystem_World_BehindPlayers
Definition Main.cs:2251
static Microsoft.Xna.Framework.Color hslToRgb(Vector3 hslVector)
Definition Main.cs:44913
static Player[] player
Definition Main.cs:1803
static Dust[] dust
Definition Main.cs:1677
static readonly NetManager Instance
Definition NetManager.cs:18
static float Remap(float fromValue, float fromMin, float fromMax, float toMin, float toMax, bool clamped=true)
Definition Utils.cs:233
static Vector2 RandomVector2(UnifiedRandom random, float min, float max)
Definition Utils.cs:1823
static Rectangle CenteredRectangle(Vector2 center, Vector2 size)
Definition Utils.cs:604
static Color CornflowerBlue
Definition Color.cs:112
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491