Example #1
0
 public GameModelTLMN(GamePlayTLMN gameplay)
 {
     _model = this;
     _game  = gameplay;
     for (int i = 0; i < listDiscard.Length; i++)
     {
         if (listDiscard[i] == null)
         {
             listDiscard[i] = new List <List <ECard> >();
         }
     }
 }
    public void PlaySound(GameModelTLMN model, GamePlayTLMN game, List <ECard> lastDisCard, PlayerControllerTLMN currentController)
    {
        if (model.listDiscard == null || model.listDiscard[(int)GameModelTLMN.EDiscard.FaceUp].Count == 0)
        {
            return;
        }

        if (model.listDiscard[(int)GameModelTLMN.EDiscard.FaceUp].Count == 1)
        {
            if (game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.Vertical && lastDisCard.Count > 2)
            {
                PlaySoundWhenFirstTurn(lastDisCard);
            }
            else if (lastDisCard.Count == 1)
            {
                if (lastDisCard[0].parentCard.Rank == CardLib.Model.Rank.THREE && lastDisCard[0].parentCard.Suit == CardLib.Model.Suit.SPADE_CLUB_DIAMOND_HEART[0] && currentController.mCardHand.Count != 0 && ((LobbyTLMN)GameManager.Instance.selectedLobby).config.GAME_TYPE_TLMN == LobbyTLMN.GameConfig.GameTypeLTMN.DEM_LA)
                {
                    AudioManager.Instance.Play(AudioManager.SoundEffect.danh_khong_lai_thoi, AudioManager.EPlayState.force);
                }
            }
        }
        switch (lastDisCard.Count)
        {
        case 1:
            if (lastDisCard[0].parentCard.Rank == CardLib.Model.Rank.TWO)
            {
                if (lastDisCard[0].parentCard.Suit == CardLib.Model.Suit.SPADE_CLUB_DIAMOND_HEART[3])
                {
                    AudioManager.Instance.Play(AudioManager.SoundEffect.hang_dau_chat_di, AudioManager.EPlayState.force);
                }
                else
                {
                    AudioManager.Instance.Play(AudioManager.SoundEffect.heo, AudioManager.EPlayState.force);
                }
            }
            else if (lastDisCard[0].parentCard.Rank == CardLib.Model.Rank.ACE && lastDisCard[0].parentCard.Suit == CardLib.Model.Suit.SPADE_CLUB_DIAMOND_HEART[3])
            {
                AudioManager.Instance.Play(AudioManager.SoundEffect.xin_con_heo, AudioManager.EPlayState.force);
            }
            break;

        case 2:

            if (isContainsACEHeart(lastDisCard))
            {
                AudioManager.Instance.Play(AudioManager.SoundEffect.xin_doi_heo, AudioManager.EPlayState.force);
            }
            if (lastDisCard[0].parentCard.Rank == CardLib.Model.Rank.TWO)
            {
                if (isContainsTwoHeart(lastDisCard))
                {
                    AudioManager.Instance.Play(AudioManager.SoundEffect.tu_quy_dau, AudioManager.EPlayState.force);
                }
                else
                {
                    AudioManager.Instance.Play(AudioManager.SoundEffect.doi_heo, AudioManager.EPlayState.force);
                }
            }
            break;

        case 4:
            if (game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.Horizontal)
            {
                List <ECard> lastCardTrash = model.listDiscard[(int)GameModelTLMN.EDiscard.FaceUp][model.listDiscard[(int)GameModelTLMN.EDiscard.FaceUp].Count - 1];
                if (lastCardTrash.Count == 2)
                {
                    if (isContainsTwoHeart(lastCardTrash))
                    {
                        AudioManager.Instance.Play(AudioManager.SoundEffect.tu_quy_day, AudioManager.EPlayState.force);
                    }
                    else
                    {
                        AudioManager.Instance.Play(AudioManager.SoundEffect.tu_quy, AudioManager.EPlayState.force);
                    }
                }
                else
                {
                    AudioManager.Instance.Play(AudioManager.SoundEffect.tu_quy, AudioManager.EPlayState.force);
                }
            }
            else if (game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.Vertical)
            {
                if (lastDisCard[0].parentCard.Rank == CardLib.Model.Rank.SIX && lastDisCard[lastDisCard.Count - 1].parentCard.Rank == CardLib.Model.Rank.NINE)
                {
                    AudioManager.SoundEffect[] effect = { AudioManager.SoundEffect.sanh_4, AudioManager.SoundEffect.san_bang_tat_ca, AudioManager.SoundEffect.song_bang_tinh_cam };
                    System.Random r = new System.Random();
                    AudioManager.Instance.Play(effect[r.Next(effect.Length)], AudioManager.EPlayState.force);
                }
                else if (lastDisCard[0].parentCard.Rank == CardLib.Model.Rank.THREE && lastDisCard[lastDisCard.Count - 1].parentCard.Rank == CardLib.Model.Rank.SIX)
                {
                }
            }
            break;

        case 6:
        case 8:
            List <ECard> lastCardTrashDoiThong = model.listDiscard[(int)GameModelTLMN.EDiscard.FaceUp][model.listDiscard[(int)GameModelTLMN.EDiscard.FaceUp].Count - 1];
            if (game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.MoreThreePairs && lastDisCard.Count == 6 && !isContainsTwoHeart(lastCardTrashDoiThong))
            {
            }
            else if (game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.MoreThreePairs && lastDisCard.Count == 8 && !isContainsTwoHeart(lastCardTrashDoiThong))
            {
            }
            else if ((game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.MoreThreePairs && lastDisCard.Count == 6 && isContainsTwoHeart(lastCardTrashDoiThong)) || (game.cardController.TypeLastDiscard == CardControllerTLMN.EMultiType.MoreThreePairs && lastDisCard.Count == 8 && isContainsTwoHeart(lastCardTrashDoiThong)))
            {
                AudioManager.Instance.Play(AudioManager.SoundEffect.hang_day, AudioManager.EPlayState.force);
            }
            break;
        }
    }