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

◆ Spawn_TrueExcalibur()

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

Definition at line 758 of file ParticleOrchestrator.cs.

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