public override void CustomDraw(SpriteBatch spriteBatch) { Texture2D basetexture = ParticleHandler.GetTexture(Type); Color lightColor = Lighting.GetColor((int)Position.X / 16, (int)Position.Y / 16); spriteBatch.Draw(basetexture, Position - Main.screenPosition, null, (lightColor.MultiplyRGBA(smokeColor) * opacity), Rotation, basetexture.Size() / 2, Scale, SpriteEffects.None, 0); }
public override void CustomDraw(SpriteBatch spriteBatch) { Texture2D tex = ParticleHandler.GetTexture(Type); Texture2D bloom = SpiritMod.Instance.GetTexture("Effects/Masks/CircleGradient"); spriteBatch.Draw(bloom, Position - Main.screenPosition, null, Color * 0.6f, 0, bloom.Size() / 2, Scale / 5f, SpriteEffects.None, 0); spriteBatch.Draw(tex, Position - Main.screenPosition, null, Color, 0, tex.Size() / 2, Scale, SpriteEffects.None, 0); }
public override void CustomScreenDraw(SpriteBatch spriteBatch) { Texture2D tex = ParticleHandler.GetTexture(Type); Texture2D bloom = SpiritMod.Instance.GetTexture("Effects/Masks/CircleGradient"); spriteBatch.Draw(bloom, GetDrawPosition(), null, Color * 0.6f, 0, bloom.Size() / 2, Scale / 5f, SpriteEffects.None, 0); spriteBatch.Draw(tex, GetDrawPosition(), null, Color, Velocity.ToRotation(), tex.Size() / 2, new Vector2(Scale, Scale * 0.75f), SpriteEffects.None, 0); }
public override void CustomDraw(SpriteBatch spriteBatch) { Texture2D basetexture = ParticleHandler.GetTexture(Type); Texture2D bloomtexture = SpiritMod.Instance.GetTexture("Effects/Masks/CircleGradient"); spriteBatch.Draw(bloomtexture, Position - Main.screenPosition, null, bloomColor * opacity * 0.5f, 0, bloomtexture.Size() / 2, Scale / 2, SpriteEffects.None, 0); spriteBatch.Draw(basetexture, Position - Main.screenPosition, null, starColor * opacity * 0.5f, Rotation * 1.5f, basetexture.Size() / 2, Scale * 0.75f, SpriteEffects.None, 0); spriteBatch.Draw(basetexture, Position - Main.screenPosition, null, starColor * opacity * 0.5f, -Rotation * 1.5f, basetexture.Size() / 2, Scale * 0.75f, SpriteEffects.None, 0); spriteBatch.Draw(basetexture, Position - Main.screenPosition, null, starColor * opacity, Rotation, basetexture.Size() / 2, Scale, SpriteEffects.None, 0); }
public override void OnSpawnAttempt() { LanternParticle lanternParticle = new LanternParticle(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y + Main.screenHeight); lanternParticle.Position = startingPosition; lanternParticle.OriginalScreenPosition = Main.screenPosition; lanternParticle.Velocity = Main.rand.NextFloat(-1, -.3f) * Vector2.UnitY; lanternParticle.Scale = Main.rand.NextFloat(0.5f, 1f); lanternParticle.Color = Color.White; ParticleHandler.SpawnParticle(lanternParticle); }
public override void OnSpawnAttempt() { HyperSpaceParticle hyperSpaceParticle = new HyperSpaceParticle(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y + Main.screenHeight); hyperSpaceParticle.Position = startingPosition; hyperSpaceParticle.OriginalScreenPosition = Main.screenPosition; hyperSpaceParticle.Velocity = Main.rand.NextFloat(-1, -0.5f) * Vector2.UnitY; hyperSpaceParticle.Scale = Main.rand.NextFloat(0.04f, 0.08f); hyperSpaceParticle.ParallaxStrength = hyperSpaceParticle.Scale * 5; ParticleHandler.SpawnParticle(hyperSpaceParticle); }
public override void CustomDraw(SpriteBatch spriteBatch) { float progress = (float)Math.Sin((TimeActive / (float)_timeLeft) * MathHelper.Pi); Vector2 scale = new Vector2(0.5f, progress) * _scaleMod; Vector2 offset = Vector2.Zero; Vector2 origin = new Vector2(ParticleHandler.GetTexture(Type).Width / 2, ParticleHandler.GetTexture(Type).Height); if (TimeActive > _timeLeft / 2) { offset = Vector2.UnitX.RotatedBy(Rotation - MathHelper.PiOver2) * ParticleHandler.GetTexture(Type).Height *scale.Y; origin.Y = 0; } spriteBatch.Draw(ParticleHandler.GetTexture(Type), Position + offset - Main.screenPosition, null, Color * ((progress / 5) + 0.8f), Rotation, origin, scale, SpriteEffects.None, 0); }
public override void OnSpawnAttempt() { SpiritParticle spiritParticle = new SpiritParticle(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y + Main.screenHeight); spiritParticle.Position = startingPosition; spiritParticle.OriginalScreenPosition = Main.screenPosition; spiritParticle.Velocity = Main.rand.NextFloat(-1.2f, -0.8f) * Vector2.UnitY; spiritParticle.Scale = Main.rand.NextFloat(0.4f, 0.6f); spiritParticle.ParallaxStrength = spiritParticle.Scale; ParticleHandler.SpawnParticle(spiritParticle); }
public override void OnSpawnAttempt() { AshParticle ashParticle = new AshParticle(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y); ashParticle.Position = startingPosition; ashParticle.OriginalScreenPosition = Main.screenPosition; ashParticle.Velocity = new Vector2(Main.windSpeed * 12f, Main.rand.NextFloat(1, 3f)); ashParticle.Rotation = Main.rand.NextFloat(MathHelper.TwoPi); ashParticle.Scale = Main.rand.NextFloat(0.3f, 1.05f); ashParticle.Color = Color.White; ParticleHandler.SpawnParticle(ashParticle); }
public override void OnSpawnAttempt() { HyperSpaceParticle hyperSpaceParticle = new HyperSpaceParticle(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y + Main.screenHeight); hyperSpaceParticle.Position = startingPosition; hyperSpaceParticle.OriginalScreenPosition = Main.screenPosition; hyperSpaceParticle.Velocity = Main.rand.NextFloat(-1, -0.5f) * Vector2.UnitY; hyperSpaceParticle.Rotation = Main.rand.NextFloat(MathHelper.TwoPi); hyperSpaceParticle.Scale = Main.rand.NextFloat(0.4f, 0.6f); hyperSpaceParticle.Color = Color.White; ParticleHandler.SpawnParticle(hyperSpaceParticle); }
public override void OnSpawnAttempt() { FireParticleForeground fireParticle = new FireParticleForeground(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y + Main.screenHeight); fireParticle.Position = startingPosition; fireParticle.OriginalScreenPosition = Main.screenPosition; fireParticle.Velocity = new Vector2(0, Main.rand.NextFloat(-3, -6)); fireParticle.Rotation = Main.rand.NextFloat(MathHelper.PiOver4); fireParticle.Scale = Main.rand.NextFloat(0.4f, 0.5f); fireParticle.ParallaxStrength = (float)Math.Pow(fireParticle.Scale, 3); ParticleHandler.SpawnParticle(fireParticle); }
public override void OnSpawnAttempt() { FireParticle fireParticle = new FireParticle(); Vector2 screenCenter = Main.screenPosition + new Vector2(Main.screenWidth / 2, Main.screenHeight / 2); Vector2 startingPosition = new Vector2(Main.rand.NextFloat(screenCenter.X - Main.screenWidth * 2, screenCenter.X + Main.screenWidth * 2), Main.screenPosition.Y + Main.screenHeight); fireParticle.Position = startingPosition; fireParticle.OriginalScreenPosition = Main.screenPosition; fireParticle.Velocity = new Vector2(Main.windSpeed * 2f, Main.rand.NextFloat(-2, -6f)); fireParticle.Rotation = Main.rand.NextFloat(MathHelper.PiOver4); fireParticle.Scale = Main.rand.NextFloat(0.3f, 0.85f); fireParticle.Color = Color.White; ParticleHandler.SpawnParticle(fireParticle); }
public override void CustomDraw(SpriteBatch spriteBatch) => spriteBatch.Draw(ParticleHandler.GetTexture(Type), Position - Main.screenPosition, null, Color, Rotation, ParticleHandler.GetTexture(Type).Size() / 2, Scale, SpriteEffects.None, 0f);
/// <summary> /// Call this when you want to clear your particle and remove it from the world. /// </summary> public void Kill() => ParticleHandler.DeleteParticleAtIndex(ID);