Example #1
0
        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);
        }
Example #2
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);
        }
Example #3
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);
        }
Example #4
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);
        }
Example #7
0
        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);
        }
Example #8
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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #13
0
 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);
Example #14
0
 /// <summary>
 /// Call this when you want to clear your particle and remove it from the world.
 /// </summary>
 public void Kill() => ParticleHandler.DeleteParticleAtIndex(ID);