Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ Spawn_Excalibur()

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

Definition at line 635 of file ParticleOrchestrator.cs.

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 }
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.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().