protected override void InitializeSettings(ParticleSettings settings)
        {
            settings.ParticleName = customSettings.ParticleName;

            settings.TextureName = customSettings.TextureName;

            settings.MaxParticles = customSettings.MaxParticles;

            settings.Duration = customSettings.Duration;

            settings.DurationRandomness = customSettings.DurationRandomness;

            settings.MinHorizontalVelocity = customSettings.MinHorizontalVelocity;
            settings.MaxHorizontalVelocity = customSettings.MaxHorizontalVelocity;

            settings.MinVerticalVelocity = customSettings.MinVerticalVelocity;
            settings.MaxVerticalVelocity = customSettings.MaxVerticalVelocity;

            settings.Gravity = customSettings.Gravity;

            settings.MinColor = customSettings.MinColor;
            settings.MaxColor = customSettings.MaxColor;

            settings.MinStartSize = customSettings.MinStartSize;
            settings.MaxStartSize = customSettings.MaxStartSize;

            settings.MinEndSize = customSettings.MinEndSize;
            settings.MaxEndSize = customSettings.MaxEndSize;

            settings.BlendState = customSettings.BlendState;
        }
        protected override void InitializeSettings(ParticleSettings settings)
        {
            settings.ParticleName = "SmokePlume";

            settings.TextureName = "smoke";

            settings.MaxParticles = 600;

            settings.Duration = TimeSpan.FromSeconds(10);

            settings.MinHorizontalVelocity = 0;
            settings.MaxHorizontalVelocity = 15;

            settings.MinVerticalVelocity = 10;
            settings.MaxVerticalVelocity = 20;

            // Create a wind effect by tilting the gravity vector sideways.
            settings.Gravity = new Vector3(-20, -5, 0);

            settings.EndVelocity = 0.75f;

            settings.MinRotateSpeed = -1;
            settings.MaxRotateSpeed = 1;

            settings.MinStartSize = 4;
            settings.MaxStartSize = 7;

            settings.MinEndSize = 35;
            settings.MaxEndSize = 140;
        }
        protected override void InitializeSettings(ParticleSettings settings)
        {
            settings.ParticleName = "ExplosionSmoke";

            settings.TextureName = "smoke";

            settings.MaxParticles = 200;

            settings.Duration = TimeSpan.FromSeconds(4);

            settings.MinHorizontalVelocity = 0;
            settings.MaxHorizontalVelocity = 50;

            settings.MinVerticalVelocity = -10;
            settings.MaxVerticalVelocity = 50;

            settings.Gravity = new Vector3(0, -20, 0);

            settings.EndVelocity = 0;

            settings.MinColor = Color.LightGray;
            settings.MaxColor = Color.White;

            settings.MinRotateSpeed = -2;
            settings.MaxRotateSpeed = 2;

            settings.MinStartSize = 7;
            settings.MaxStartSize = 7;

            settings.MinEndSize = 70;
            settings.MaxEndSize = 140;
        }
        protected override void InitializeSettings(ParticleSettings settings)
        {
            settings.ParticleName = "Fire";

            settings.TextureName = "fire";

            settings.MaxParticles = 2400;

            settings.Duration = TimeSpan.FromSeconds(2);

            settings.DurationRandomness = 1;

            settings.MinHorizontalVelocity = 0;
            settings.MaxHorizontalVelocity = 15;

            settings.MinVerticalVelocity = -10;
            settings.MaxVerticalVelocity = 10;

            // Set gravity upside down, so the flames will 'fall' upward.
            settings.Gravity = new Vector3(0, 15, 0);

            settings.MinColor = new Color(255, 255, 255, 10);
            settings.MaxColor = new Color(255, 255, 255, 40);

            settings.MinStartSize = 5;
            settings.MaxStartSize = 10;

            settings.MinEndSize = 10;
            settings.MaxEndSize = 40;

            // Use additive blending.
            settings.BlendState = BlendState.Additive;
        }
        protected override void InitializeSettings(ParticleSettings settings)
        {
            settings.ParticleName = "Explosion";

            settings.TextureName = "explosion";

            settings.MaxParticles = 100;

            settings.Duration = TimeSpan.FromSeconds(2);
            settings.DurationRandomness = 1;

            settings.MinHorizontalVelocity = 20;
            settings.MaxHorizontalVelocity = 30;

            settings.MinVerticalVelocity = -20;
            settings.MaxVerticalVelocity = 20;

            settings.EndVelocity = 0;

            settings.MinColor = Color.DarkGray;
            settings.MaxColor = Color.Gray;

            settings.MinRotateSpeed = -1;
            settings.MaxRotateSpeed = 1;

            settings.MinStartSize = 7;
            settings.MaxStartSize = 7;

            settings.MinEndSize = 70;
            settings.MaxEndSize = 140;

            // Use additive blending.
            settings.BlendState = BlendState.Additive;
        }
        protected override void InitializeSettings(ParticleSettings settings)
        {
            settings.ParticleName = "ProjectileTrail";

            settings.TextureName = "smoke";

            settings.MaxParticles = 1000;

            settings.Duration = TimeSpan.FromSeconds(3);

            settings.DurationRandomness = 1.5f;

            settings.EmitterVelocitySensitivity = 0.1f;

            settings.MinHorizontalVelocity = 0;
            settings.MaxHorizontalVelocity = 1;

            settings.MinVerticalVelocity = -1;
            settings.MaxVerticalVelocity = 1;

            settings.MinColor = new Color(64, 96, 128, 255);
            settings.MaxColor = new Color(255, 255, 255, 128);

            settings.MinRotateSpeed = -4;
            settings.MaxRotateSpeed = 4;

            settings.MinStartSize = 1;
            settings.MaxStartSize = 3;

            settings.MinEndSize = 4;
            settings.MaxEndSize = 11;
        }
        public ParticleInit(ParticleManager pm , Game game, ContentManager content)
        {
            ParticleSettings settings = new ParticleSettings();

            settings.ParticleName = "Soins";

            settings.TextureName = "Star";

            settings.MaxParticles = 2400;

            settings.Duration = TimeSpan.FromSeconds(2);

            settings.DurationRandomness = 0.51f;

            settings.MinHorizontalVelocity = 1;
            settings.MaxHorizontalVelocity = 1;

            settings.MinVerticalVelocity = -0;
            settings.MaxVerticalVelocity = -2.5f;

            // Set gravity upside down, so the flames will 'fall' upward.
            settings.Gravity = new Vector3(0, 1, 0);

            settings.MinColor = new Color(200, 200, 0, 255);
            settings.MaxColor = new Color(255, 250, 250, 0);

            settings.MinStartSize = 0.5f;
            settings.MaxStartSize = 1f;

            settings.MinEndSize = 0.01f;
            settings.MaxEndSize = 0.01f;

            // Use additive blending.
            settings.BlendState = BlendState.AlphaBlend;
            CustomParticle cp = new CustomParticle(settings, game, content);
            cp.Initialize();
            pm.Add(cp);

            settings = new ParticleSettings();

            settings.ParticleName = "Freeze";

            settings.TextureName = "Snow";

            settings.MaxParticles = 4800;

            settings.Duration = TimeSpan.FromSeconds(4);

            settings.DurationRandomness = 0.51f;

            settings.MinHorizontalVelocity = -1;
            settings.MaxHorizontalVelocity = 1;

            settings.MinVerticalVelocity = -2.5f;
            settings.MaxVerticalVelocity = 2.5f;

            // Set gravity upside down, so the flames will 'fall' upward.
            settings.Gravity = new Vector3(0, 0, 0);

            settings.MinColor = new Color(200, 230, 200, 0);
            settings.MaxColor = new Color(255, 255, 255, 255);

            settings.MinStartSize = 0.01f;
            settings.MaxStartSize = 0.01f;

            settings.MinEndSize = 0.1f;
            settings.MaxEndSize = 0.1f;

            // Use additive blending.
            settings.BlendState = BlendState.AlphaBlend;
             cp = new CustomParticle(settings, game, content);
            cp.Initialize();
            pm.Add(cp);

            settings = new ParticleSettings();

            settings.ParticleName = "Snow";

            settings.TextureName = "Snow";

            settings.MaxParticles = 16000;

            settings.Duration = TimeSpan.FromSeconds(5);

            settings.DurationRandomness = 0f;

            settings.MinHorizontalVelocity = 0;
            settings.MaxHorizontalVelocity = 0f;

            settings.MinVerticalVelocity = 0;
            settings.MaxVerticalVelocity = 00f;

            // Set gravity upside down, so the flames will 'fall' upward.
            settings.Gravity = new Vector3(rnd.Next(-10, 10), -40, rnd.Next(-10, 10));

            settings.MinColor = new Color(200, 230, 200, 0);
            settings.MaxColor = new Color(255, 255, 255, 0);

            settings.MinStartSize = 0.25f;
            settings.MaxStartSize = 0.25f;

            settings.MinEndSize = 0.25f;
            settings.MaxEndSize = 0.25f;

            // Use additive blending.
            settings.BlendState = BlendState.AlphaBlend;
            cp = new CustomParticle(settings, game, content);
            cp.Initialize();
            pm.Add(cp);

            settings = new ParticleSettings();

            settings.ParticleName = "Rain";

            settings.TextureName = "Water001";

            settings.MaxParticles = 16000;

            settings.Duration = TimeSpan.FromSeconds(5);

            settings.DurationRandomness = 0f;

            settings.MinHorizontalVelocity = 0;
            settings.MaxHorizontalVelocity = 0f;

            settings.MinVerticalVelocity = 0;
            settings.MaxVerticalVelocity = 00f;

            // Set gravity upside down, so the flames will 'fall' upward.
            settings.Gravity = new Vector3(0, -40, 0);

            settings.MinColor = new Color(200, 230, 200, 0);
            settings.MaxColor = new Color(255, 255, 255, 0);

            settings.MinStartSize = 0.25f;
            settings.MaxStartSize = 0.25f;

            settings.MinEndSize = 0.25f;
            settings.MaxEndSize = 0.25f;

            // Use additive blending.
            settings.BlendState = BlendState.AlphaBlend;
            cp = new CustomParticle(settings, game, content);
            cp.Initialize();
            pm.Add(cp);
        }
 public CustomParticle(ParticleSettings settings, Game game, ContentManager content)
     : base(game, content)
 {
     customSettings = settings;
 }
 /// <summary>
 /// Derived particle system classes should override this method
 /// and use it to initalize their tweakable settings.
 /// </summary>
 protected abstract void InitializeSettings(ParticleSettings settings);