Пример #1
0
        private void EffectFinished()
        {
            if (m_ended)
            {
                return;
            }
            m_ended = true;
            for (int i = 0; i < m_sounds.Count; i++)
            {
                if (m_sounds[i].Sound == null || m_sounds[i].Sound.Voice == null)
                {
                    continue;
                }
                m_sounds[i].Sound.Voice.SetFilterParameters(m_defaultFilter, FINISHED_OP_SET);
                if (i == m_effect.ResultEmitterIdx)
                {
                    continue;
                }
                m_sounds[i].Sound.Stop();
            }
            m_engine.CommitChanges(FINISHED_OP_SET);

            OutputSound.StoppedPlaying -= EffectFinished;
            var onEffectEnded = OnEffectEnded;

            if (onEffectEnded != null)
            {
                onEffectEnded(this);
            }
        }