protected void configureShockwave() { if (_doShockwave) { if (_shockwaveEmitter == null) { _shockwaveEmitter = new ShockwaveEmitter(); _shockwaveColorEffector = new SSColorKeyframesEffector(); _shockwaveScaleEffector = new SSMasterScaleKeyframesEffector(); addEmitter(_shockwaveEmitter); addEffector(_shockwaveScaleEffector); addEffector(_shockwaveColorEffector); _shockwaveEmitter.effectorMask = _shockwaveScaleEffector.effectorMask = _shockwaveColorEffector.effectorMask = (ushort)ComponentMask.Shockwave; } _shockwaveEmitter.spriteRectangles = _shockwaveSprites; _shockwaveEmitter.particlesPerEmission = 1; _shockwaveEmitter.totalEmissionsLeft = 0; // Control this in ShowExplosion() _shockwaveEmitter.life = _shockwaveDuration; _shockwaveEmitter.velocity = Vector3.Zero; _shockwaveScaleEffector.particleLifetime = _shockwaveDuration; _shockwaveScaleEffector.keyframes.Clear(); _shockwaveScaleEffector.keyframes.Add(0f, 0f); _shockwaveScaleEffector.keyframes.Add(_shockwaveDuration, 7f); _shockwaveColorEffector.colorMask = _shockwaveColor; _shockwaveColorEffector.particleLifetime = _shockwaveDuration; _shockwaveColorEffector.keyframes.Clear(); _shockwaveColorEffector.keyframes.Add(0f, new Color4(1f, 1f, 1f, 1f)); _shockwaveColorEffector.keyframes.Add(1f, new Color4(1f, 1f, 1f, 0f)); } else if (_shockwaveEmitter != null) { removeEmitter(_shockwaveEmitter); removeEffector(_shockwaveColorEffector); removeEffector(_shockwaveScaleEffector); _shockwaveEmitter = null; _shockwaveColorEffector = null; _shockwaveScaleEffector = null; } }
protected void configureShockwave() { if (_eParams.doShockwave) { if (_shockwaveEmitter == null) { _shockwaveEmitter = new ShockwaveEmitter (); _shockwaveColorEffector = new SSColorKeyframesEffector (); _shockwaveScaleEffector = new SSMasterScaleKeyframesEffector (); addEmitter(_shockwaveEmitter); addEffector(_shockwaveScaleEffector); addEffector(_shockwaveColorEffector); _shockwaveEmitter.effectorMask = _shockwaveScaleEffector.effectorMask = _shockwaveColorEffector.effectorMask = (ushort)ComponentMask.Shockwave; } _shockwaveEmitter.spriteRectangles = _eParams.shockwaveSprites; _shockwaveEmitter.particlesPerEmission = 1; _shockwaveEmitter.totalEmissionsLeft = 0; // Control this in ShowExplosion() _shockwaveEmitter.life = _eParams.shockwaveDuration; _shockwaveEmitter.velocity = Vector3.Zero; _shockwaveScaleEffector.particleLifetime = _eParams.shockwaveDuration; _shockwaveScaleEffector.keyframes.Clear(); _shockwaveScaleEffector.keyframes.Add(0f, 0f); _shockwaveScaleEffector.keyframes.Add(_eParams.shockwaveDuration, 7f); _shockwaveColorEffector.colorMask = _eParams.shockwaveColor; _shockwaveColorEffector.particleLifetime = _eParams.shockwaveDuration; _shockwaveColorEffector.keyframes.Clear(); _shockwaveColorEffector.keyframes.Add(0f, new Color4 (1f, 1f, 1f, 1f)); _shockwaveColorEffector.keyframes.Add(1f, new Color4 (1f, 1f, 1f, 0f)); } else if (_shockwaveEmitter != null) { removeEmitter(_shockwaveEmitter); removeEffector(_shockwaveColorEffector); removeEffector(_shockwaveScaleEffector); _shockwaveEmitter = null; _shockwaveColorEffector = null; _shockwaveScaleEffector = null; } }