/// <summary>
        /// The game calls this method when some effect (like a sound) is required.
        /// </summary>
        /// <param name="effect">Effect to be played</param>
        /// <param name="arg1">Custom argument for the effect, meaning changes according to the effect.</param>
        /// <param name="arg2">Custom argument for the effect, meaning changes according to the effect.</param>
        public override void EffectNotify(TileGameEffect effect, int arg1, int arg2)
        {
            switch (effect)
            {
            case TileGameEffect.eEFFECT_EXIT:
                break;

            case TileGameEffect.eEFFECT_DESTROYING:
            case TileGameEffect.eEFFECT_DESTROYING_BONUS:
            {
                soundEffects[AUDIO_SAMPLE_DESTROY].Play(1.0f, 0.0f, 0.0f);

                if (arg1 > 0)
                {
                    // Bonus sound as well
                    soundEffects[AUDIO_SAMPLE_EXP_BONUS].Play(1.0f, (float)arg1 / 12.0f, 0.0f);
                }
            }
            break;

            case TileGameEffect.eEFFECT_GAMEOVER:
                soundEffects[AUDIO_GAME_OVER].Play();
                break;

            case TileGameEffect.eEFFECT_NEWLEVEL:
                soundEffects[AUDIO_NEXT_LEVEL].Play();
                break;

            case TileGameEffect.eEFFECT_LEVELCOMPLETED:
                soundEffects[AUDIO_LEVEL_COMPLETED].Play();
                break;

            case TileGameEffect.eEFFECT_XBONUS:
                soundEffects[AUDIO_SAMPLE_X_BONUS].Play();
                break;

            case TileGameEffect.eEFFECT_BLOCK_BEGIN_FINISHED:
                soundEffects[AUDIO_SAMPLE_CHANGE].Play(0.4f, 0.0f, 0.0f);
                break;

            case TileGameEffect.eEFFECT_BLOCK_VANISH_STARTED:
                soundEffects[AUDIO_SAMPLE_CHANGE_COMPLETED].Play(0.4f, 0.0f, 0.0f);
                break;

            case TileGameEffect.eCHANGING:
                soundEffects[AUDIO_SAMPLE_CHANGE].Play(1.0f, 0.0f, 0.0f);
                break;

            case TileGameEffect.eCHANGE_COMPLETED:
                soundEffects[AUDIO_SAMPLE_CHANGE_COMPLETED].Play(1.0f, 0.0f, 0.0f);
                break;

            case TileGameEffect.eILLEGAL_MOVE:
                soundEffects[AUDIO_ILLEGAL_MOVE].Play();
                break;

            case TileGameEffect.eCLICK:
            case TileGameEffect.eEFFECT_MENU:
                soundEffects[AUDIO_SAMPLE_CLICK].Play();
                break;

            default:
                break;
            }
        }
Ejemplo n.º 2
0
 public virtual void EffectNotify(TileGameEffect effect, int arg1, int arg2)
 {
 }