Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Spawn_TerraBlade()

static void Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_TerraBlade ( ParticleOrchestraSettings settings)
inlinestaticprivate

Definition at line 552 of file ParticleOrchestrator.cs.

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 }
const double PI
Definition Math.cs:16
static ParticlePool< PrettySparkleParticle > _poolPrettySparkle
static Vector2 Add(Vector2 value1, Vector2 value2)
Definition Vector2.cs:587

References Terraria.GameContent.Drawing.ParticleOrchestrator._poolPrettySparkle, System.E, Terraria.GameContent.Drawing.ParticleOrchestraSettings.MovementVector, Terraria.Dust.NewDustPerfect(), Terraria.Main.ParticleSystem_World_OverPlayers, System.Math.PI, Terraria.GameContent.Drawing.ParticleOrchestraSettings.PositionInWorld, and Terraria.Main.rand.

Referenced by Terraria.GameContent.Drawing.ParticleOrchestrator.SpawnParticlesDirect().