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

◆ Spawn_WallOfFleshGoatMountFlames()

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

Definition at line 1567 of file ParticleOrchestrator.cs.

1568 {
1569 float num = 50f;
1570 for (int i = -1; i <= 1; i++)
1571 {
1572 int num2 = Main.rand.NextFromList(new short[3] { 326, 327, 328 });
1573 Main.instance.LoadProjectile(num2);
1574 Player player = Main.player[settings.IndexOfPlayerWhoInvokedThis];
1575 float num3 = Main.rand.NextFloat() * 0.9f + 0.1f;
1576 Vector2 vector = settings.PositionInWorld + new Vector2((float)i * 5.3333335f, 0f);
1577 FlameParticle flameParticle = _poolFlame.RequestParticle();
1578 flameParticle.SetBasicInfo(TextureAssets.Projectile[num2], null, Vector2.Zero, vector);
1579 flameParticle.SetTypeInfo(num, settings.IndexOfPlayerWhoInvokedThis, player.cMount);
1580 flameParticle.FadeOutNormalizedTime = 0.3f;
1581 flameParticle.ScaleAcceleration = Vector2.One * num3 * (-1f / 60f) / num;
1582 flameParticle.Scale = Vector2.One * num3;
1583 Main.ParticleSystem_World_BehindPlayers.Add(flameParticle);
1584 if (Main.rand.Next(8) == 0)
1585 {
1586 Dust dust = Dust.NewDustDirect(vector, 4, 4, 6, 0f, 0f, 100);
1587 if (Main.rand.Next(2) == 0)
1588 {
1589 dust.noGravity = true;
1590 dust.fadeIn = 1.15f;
1591 }
1592 else
1593 {
1594 dust.scale = 0.6f;
1595 }
1596 dust.velocity *= 0.6f;
1597 dust.velocity.Y -= 1.2f;
1598 dust.noLight = true;
1599 dust.position.Y -= 4f;
1600 dust.shader = GameShaders.Armor.GetSecondaryShader(player.cMount, player);
1601 }
1602 }
1603 }
static ParticlePool< FlameParticle > _poolFlame
override void SetBasicInfo(Asset< Texture2D > textureAsset, Rectangle? frame, Vector2 initialVelocity, Vector2 initialLocalPosition)
void SetTypeInfo(float timeToLive, int indexOfPlayerWhoSpawnedIt, int packedShaderIndex)
static ArmorShaderDataSet Armor
Definition GameShaders.cs:7

References Terraria.GameContent.Drawing.ParticleOrchestrator._poolFlame, Terraria.Graphics.Shaders.GameShaders.Armor, Terraria.Player.cMount, Terraria.GameContent.Drawing.ParticleOrchestraSettings.IndexOfPlayerWhoInvokedThis, Terraria.Main.instance, Terraria.Dust.NewDustDirect(), Terraria.Main.ParticleSystem_World_BehindPlayers, Terraria.Main.player, Terraria.GameContent.TextureAssets.Projectile, Terraria.Main.rand, Terraria.Graphics.Renderers.FlameParticle.SetBasicInfo(), Terraria.Graphics.Renderers.FlameParticle.SetTypeInfo(), and Microsoft.Xna.Framework.Vector2.Zero.

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