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

◆ Spawn_GasTrap()

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

Definition at line 712 of file ParticleOrchestrator.cs.

713 {
714 SoundEngine.PlaySound(SoundID.Item16, settings.PositionInWorld);
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;
736 Main.ParticleSystem_World_BehindPlayers.Add(gasParticle);
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;
754 Main.ParticleSystem_World_BehindPlayers.Add(gasParticle2);
755 }
756 }
const double PI
Definition Math.cs:16
static void PlaySound(int type, Vector2 position, int style=1)
static readonly LegacySoundStyle Item16
Definition SoundID.cs:446

References Terraria.GameContent.Drawing.ParticleOrchestrator._poolGas, Terraria.ID.SoundID.Item16, Terraria.GameContent.Drawing.ParticleOrchestraSettings.MovementVector, Terraria.Main.ParticleSystem_World_BehindPlayers, System.Math.PI, Terraria.Audio.SoundEngine.PlaySound(), Terraria.GameContent.Drawing.ParticleOrchestraSettings.PositionInWorld, Terraria.Main.rand, Microsoft.Xna.Framework.Color.White, and Microsoft.Xna.Framework.Vector2.Zero.

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