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

◆ Spawn_FlameWaders()

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

Definition at line 1529 of file ParticleOrchestrator.cs.

1530 {
1531 float num = 60f;
1532 for (int i = -1; i <= 1; i++)
1533 {
1534 int num2 = Main.rand.NextFromList(new short[3] { 326, 327, 328 });
1535 Main.instance.LoadProjectile(num2);
1536 Player player = Main.player[settings.IndexOfPlayerWhoInvokedThis];
1537 float num3 = Main.rand.NextFloat() * 0.9f + 0.1f;
1538 Vector2 vector = settings.PositionInWorld + new Vector2((float)i * 5.3333335f, 0f);
1539 FlameParticle flameParticle = _poolFlame.RequestParticle();
1540 flameParticle.SetBasicInfo(TextureAssets.Projectile[num2], null, Vector2.Zero, vector);
1541 flameParticle.SetTypeInfo(num, settings.IndexOfPlayerWhoInvokedThis, player.cFlameWaker);
1542 flameParticle.FadeOutNormalizedTime = 0.4f;
1543 flameParticle.ScaleAcceleration = Vector2.One * num3 * (-1f / 60f) / num;
1544 flameParticle.Scale = Vector2.One * num3;
1545 Main.ParticleSystem_World_BehindPlayers.Add(flameParticle);
1546 if (Main.rand.Next(16) == 0)
1547 {
1548 Dust dust = Dust.NewDustDirect(vector, 4, 4, 6, 0f, 0f, 100);
1549 if (Main.rand.Next(2) == 0)
1550 {
1551 dust.noGravity = true;
1552 dust.fadeIn = 1.15f;
1553 }
1554 else
1555 {
1556 dust.scale = 0.6f;
1557 }
1558 dust.velocity *= 0.6f;
1559 dust.velocity.Y -= 1.2f;
1560 dust.noLight = true;
1561 dust.position.Y -= 4f;
1562 dust.shader = GameShaders.Armor.GetSecondaryShader(player.cFlameWaker, player);
1563 }
1564 }
1565 }
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.cFlameWaker, 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().