public override void Kill() { Status.RemoveLife(); Status.ResetBomb(); Status.RemovePower(); fadeTimer = 120; float hue1 = rand.NextFloat(2.8f, 3f); float hue2 = (hue1 + rand.NextFloat(0, 1)); Color color1 = ColorUtility.HSVToColor(hue1, 1f, 1); Color color2 = ColorUtility.HSVToColor(hue2, 0.8f, 1); for (int i = 0; i < 300; i++) { float speed = 15f * (1f - 1 / rand.NextFloat(0.4f, 1.1f)); var state = new Particle.State() { Velocity = rand.NextVector2(speed, speed), LengthMultiplier = 0.8f }; Color color = Color.Lerp(color2, color1, rand.NextFloat(0, 1)); Main.ParticleManager.CreateParticle(Content.Sprite.LineParticle, Position, color, 150, rand.NextFloat(0.4f, 2f), state); } invincibilityTimer = 300; }
public SpellCharge(Vector2 setPosition, Particle.State state) : base(setPosition) { particleCount = 0; enableCriate = 60; particleInterval = 30; particleRadius = 200f; pState = state; }
public override void Update() { if (!IsDead && !Status.IsGameOver) { Input.PlayerInput.Update(); Position = Vector2.Clamp(Position, screenBorder1 + Size, screenBorder2 - Size); invincibilityTimer--; } else { if (Status.IsGameOver) { Position = new Vector2(-1000, -1000); instance = null; } else { Position = new Vector2(Main.ScreenSize.X / 2, Main.ScreenSize.Y - 60 + fadeTimer); fadeTimer--; return; } } if (invincibilityTimer == 10) { for (int i = 0; i < 200; i++) { float speed = 14f * (1f - 1 / rand.NextFloat(0.5f, 1f)); var state = new Particle.State() { Velocity = rand.NextVector2(speed, speed), LengthMultiplier = 0.5f }; Main.ParticleManager.CreateParticle(Content.Sprite.CircleParticle, Position, Color.Gray, 100, rand.NextFloat(0.4f, 1f), state); } } if (!IsInvincible) { Input.PlayerInput.SetCooldown(4); } else { Input.PlayerInput.SetCooldown(1); } }
public void Bomb() { Status.RemoveBomb(); invincibilityTimer = 300; for (int i = 0; i < 100; i++) { float speed = 14f * (1f - 1 / rand.NextFloat(0.5f, 1f)); var state = new Particle.State() { Velocity = rand.NextVector2(speed, speed), LengthMultiplier = 0.5f }; Main.ParticleManager.CreateParticle(Content.Sprite.CircleParticle, Position, Color.White, 150, rand.NextFloat(0.4f, 1f), state); } }