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

◆ Spawn_PrincessWeapon()

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

Definition at line 1194 of file ParticleOrchestrator.cs.

1195 {
1196 float num = Main.rand.NextFloat() * ((float)Math.PI * 2f);
1197 float num2 = 1f;
1198 for (float num3 = 0f; num3 < 1f; num3 += 1f / num2)
1199 {
1200 Vector2 vector = settings.MovementVector * (0.6f + Main.rand.NextFloat() * 0.35f);
1201 Vector2 vector2 = new Vector2(Main.rand.NextFloat() * 0.4f + 0.2f);
1202 float f = num + Main.rand.NextFloat() * ((float)Math.PI * 2f);
1203 float rotation = (float)Math.PI / 2f;
1204 Vector2 vector3 = 0.1f * vector2;
1205 float num4 = 60f;
1206 Vector2 vector4 = Main.rand.NextVector2Circular(8f, 8f) * vector2;
1207 PrettySparkleParticle prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1208 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1209 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num4) - vector * 1f / 30f;
1210 prettySparkleParticle.AccelerationPerFrame = -vector * 1f / 60f;
1211 prettySparkleParticle.Velocity = vector * 0.66f;
1212 prettySparkleParticle.ColorTint = Main.hslToRgb((0.92f + Main.rand.NextFloat() * 0.02f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1213 prettySparkleParticle.ColorTint.A = 0;
1214 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1215 prettySparkleParticle.Rotation = rotation;
1216 prettySparkleParticle.Scale = vector2;
1217 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1218 prettySparkleParticle = _poolPrettySparkle.RequestParticle();
1219 prettySparkleParticle.Velocity = f.ToRotationVector2() * vector3 + vector;
1220 prettySparkleParticle.AccelerationPerFrame = f.ToRotationVector2() * -(vector3 / num4) - vector * 1f / 15f;
1221 prettySparkleParticle.AccelerationPerFrame = -vector * 1f / 60f;
1222 prettySparkleParticle.Velocity = vector * 0.66f;
1223 prettySparkleParticle.ColorTint = new Color(255, 255, 255, 0);
1224 prettySparkleParticle.LocalPosition = settings.PositionInWorld + vector4;
1225 prettySparkleParticle.Rotation = rotation;
1226 prettySparkleParticle.Scale = vector2 * 0.6f;
1227 Main.ParticleSystem_World_OverPlayers.Add(prettySparkleParticle);
1228 }
1229 for (int i = 0; i < 2; i++)
1230 {
1231 Color newColor = Main.hslToRgb((0.92f + Main.rand.NextFloat() * 0.02f) % 1f, 1f, 0.4f + Main.rand.NextFloat() * 0.25f);
1232 int num5 = Dust.NewDust(settings.PositionInWorld, 0, 0, 267, 0f, 0f, 0, newColor);
1233 Main.dust[num5].velocity = Main.rand.NextVector2Circular(2f, 2f);
1234 Main.dust[num5].velocity += settings.MovementVector * (0.5f + 0.5f * Main.rand.NextFloat()) * 1.4f;
1235 Main.dust[num5].noGravity = true;
1236 Main.dust[num5].scale = 0.1f;
1237 Main.dust[num5].position += Main.rand.NextVector2Circular(16f, 16f);
1238 Main.dust[num5].velocity = settings.MovementVector;
1239 if (num5 != 6000)
1240 {
1241 Dust dust = Dust.CloneDust(num5);
1242 dust.scale /= 2f;
1243 dust.fadeIn *= 0.75f;
1244 dust.color = new Color(255, 255, 255, 255);
1245 }
1246 }
1247 }
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, Terraria.Dust.CloneDust(), Terraria.Main.dust, Terraria.Main.hslToRgb(), Terraria.GameContent.Drawing.ParticleOrchestraSettings.MovementVector, Terraria.Dust.NewDust(), Terraria.Main.ParticleSystem_World_OverPlayers, System.Math.PI, Terraria.GameContent.Drawing.ParticleOrchestraSettings.PositionInWorld, and Terraria.Main.rand.

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