public static ParticleEmitter SpawnToxicEmitter(Texture2D tex, Vector2 position)
 {
     ParticleEmitter pe = new ParticleEmitter(tex, position);
     pe.spawnDelay = 0.05f;
     pe.spawnTimer = pe.spawnDelay;
     pe.angleMin = 0;
     pe.angleMax = 360;
     pe.speedMin = 50;
     pe.speedMax = 100;
     pe.lifetimeMin = 3f;
     pe.lifetimeMax = 5f;
     pe.startColor = Color.LimeGreen;
     pe.endColor = Color.Teal;
     //pe.endColor.A = 120;
     pe.startScale = 3f;
     pe.endScale = 5f;
     return pe;
 }
 //Factory methods for making a few different emitter types
 public static ParticleEmitter SpawnSmokeEmitter(Texture2D tex, Vector2 position) {
     ParticleEmitter pe = new ParticleEmitter(tex, position);
     pe.spawnDelay = 0.001f;
     pe.spawnTimer = pe.spawnDelay;
     pe.angleMax = 120;
     pe.angleMin = 60;
     pe.speedMin = 90;
     pe.speedMax = 150;
     pe.lifetimeMin = 0.6f;
     pe.lifetimeMax = 1.2f;
     pe.startColor = Color.White;
     pe.endColor = Color.Black;
     //pe.endColor.A = 120;
     pe.startScale = 0.6f;
     pe.endScale = 2.0f;
     pe.acceleration = new Vector2(0, 600);
     return pe;
 }
 public static ParticleEmitter SpawnShowerEmitter(Texture2D tex, Vector2 position)
 {
     ParticleEmitter pe = new ParticleEmitter(tex, position);
     pe.spawnDelay = 0.0005f;
     pe.spawnTimer = pe.spawnDelay;
     pe.angleMin = -135;
     pe.angleMax = -45;
     pe.speedMin = 500;
     pe.speedMax = 800;
     pe.lifetimeMin = 0.1f;
     pe.lifetimeMax = 0.3f;
     pe.startColor = Color.White;
     pe.endColor = Color.Blue;
     //pe.endColor.A = 120;
     pe.startScale  = 0.15f;
     pe.endScale = 0.08f;
     return pe;
 }
 public static ParticleEmitter SpawnExplosionEmitter(Texture2D tex, Vector2 position)
 {
     ParticleEmitter pe = new ParticleEmitter(tex, position);
     pe.spawnDelay = 0.001f;
     pe.spawnTimer = pe.spawnDelay;
     pe.angleMin = 0;
     pe.angleMax = 360;
     pe.speedMin = 300;
     pe.speedMax = 900;
     pe.lifetimeMin = 0.2f;
     pe.lifetimeMax = 0.5f;
     pe.startColor = Color.Yellow;
     pe.endColor = Color.Red;
     pe.endColor.A = 120;
     pe.startScale = 2.5f;
     pe.endScale = 0.3f;
     return pe;
 }
 public static ParticleEmitter SpawnFireEmitter(Texture2D tex, Vector2 position)
 {
     ParticleEmitter pe = new ParticleEmitter(tex, position);
     pe.spawnDelay = 0.002f;
     pe.spawnTimer = pe.spawnDelay;
     pe.angleMin = 70;
     pe.angleMax = 110;
     pe.speedMin = 150;
     pe.speedMax = 250;
     pe.lifetimeMin = 0.3f;
     pe.lifetimeMax = 0.9f;
     pe.startColor = Color.Yellow;
     pe.endColor = Color.Red;
     pe.endColor.A = 50;
     pe.startScale = 2.5f;
     pe.endScale = 0.3f;
     return pe;
 }
 public static ParticleEmitter SpawnGenericProjectileEmitter(Vector2 position) {
     ParticleEmitter pe = new ParticleEmitter(AssetManager.GetTexture("softparticle"), position);
     pe.spawnDelay = 0.0002f;
     pe.spawnTimer = pe.spawnDelay;
     pe.angleMin = 0;
     pe.angleMax = 360;
     pe.speedMin = 40;
     pe.speedMax = 80;
     pe.lifetimeMin = 0.05f;
     pe.lifetimeMax = 0.1f;
     pe.startColor = Color.Orange;
     pe.endColor = Color.Maroon;
     pe.endColor.A = 200;
     pe.startScale = 0.09f;
     pe.endScale = 0.03f;
     return pe;
 }
 public ProjectileEffect(Vector2 position, float time, IAttackable target) {
     timeLeft = time;
     this.target = target;
     emitter = ParticleEmitter.SpawnGenericProjectileEmitter(position);
 }