/// <summary>
        /// Initilaizes a custom fire particle
        /// </summary>
        /// <param name="emitterLocation"></param>
        /// <param name="emitterRadius"></param>
        /// <param name="ttl">Time to live</param>
        /// <param name="maxVel"></param>
        /// <param name="maxAcc"></param>
        /// <param name="initScale"></param>
        /// <param name="scaleVel"></param>
        /// <param name="initColor"></param>
        /// <param name="finalColor"></param>
        /// <param name="colFadeTime">Time when intialCol should be faded into the final color</param>
        /// <param name="velDamp">0:full damp => no velocity, 1: no damp</param>
        /// <param name="initRot"></param>
        /// <param name="rotVel"></param>
        /// <param name="rotDamp">Same as velDamp but for rotation</param>
        /// <param name="scaleAcc"></param>
        /// <param name="scaleMax"></param>
        /// <param name="initColAlpha"></param>
        /// <param name="finalColAlpha"></param>
        public FireParticleEffectFactory(Vector2 emitterLocation, int emitterRadius, int maxTTL, Vector2 maxVel, Vector2 maxAcc,
                                         float initScale, float scaleVel, Color initColor, Color finalColor, int colFadeTime,
                                         float velDamp = 1f, float initRot = 0f, float rotVel = 0f, float rotDamp = 1f, float scaleAcc = 0f, float scaleMax = 1, byte finalColAlpha = 0)
        {
            random = new Random();
            this.fireParticleEffectType = FireParticleEffectType.Custom;
            this.EmitterLocation        = emitterLocation;
            this.emitterRadius          = emitterRadius;

            BaseParticleParams = new ParticleParameters
            {
                TTL         = maxTTL,
                Vel         = maxVel,
                Acc         = maxAcc,
                VelDamp     = velDamp,
                Rot         = initRot,
                RotVel      = rotVel,
                RotDamp     = rotDamp,
                Scale       = initScale,
                ScaleVel    = scaleVel,
                ScaleAcc    = scaleAcc,
                ScaleMax    = scaleMax,
                InitCol     = initColor,
                FinalCol    = finalColor,
                ColFadeTime = colFadeTime
            };

            //set alpha value of the colors
            BaseParticleParams.SetFinalColorAlpha(finalColAlpha);
        }
        public FireParticleEffectFactory(FireParticleEffectType fireParticleEffectType, Vector2 emitterLocation,
                                         int emitterRadius)
        {
            random = new Random();
            this.fireParticleEffectType = fireParticleEffectType;
            this.EmitterLocation        = emitterLocation;
            this.emitterRadius          = emitterRadius;

            BaseParticleParams = new ParticleParameters();

            switch (fireParticleEffectType)
            {
            case  FireParticleEffectType.Default:
                InitDefaultFireParticle();
                break;

            default:
                InitDefaultFireParticle();
                break;
            }
        }