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

◆ Spawn_AshTreeShake()

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

Definition at line 872 of file ParticleOrchestrator.cs.

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