Beispiel #1
0
    public Vector3 GetLocationHand(PlayerControllerChan p, int i, bool isGetAngle, bool isTouch)
    {
        int   numberCard   = p.mCardHand.FindAll(c => c.gameObject != null).Count;
        float angleBetween = numberCard * maxAngleBetween;
        float range        = Mathf.Clamp(angleBetween, minRange, maxRange);
        float angle        = range / numberCard;
        float startAngle   = 170f;
        float fixRotate    = 100f;

        if (numberCard <= 17)
        {
            startAngle += (maxRange - range) / 2f;
            fixRotate  -= (maxRange - range) / 2f;
        }

        if (isGetAngle)
        {
            return(new Vector3(0, 0, (fixRotate + angle) - angle * (i + 1 + 0.5f)));
        }

        Vector3 offset = GetPointCircle(locationHand.localPosition, isTouch ? radiusOnTouch : radius, angle * (i + 0.5f) + startAngle);

        offset.z = -5 + (-1) * i;

        //if (isTouch)
        //    offset.z = -20f;

        return(offset);
    }
Beispiel #2
0
 /**
  * cardID: Cây đánh ra
  * currentPlayer: Người đánh bài
  * nextPlayer: Người có lượt
  *
  **/
 public void playAudioDisCard(int cardID, PlayerControllerChan currentPlayer, PlayerControllerChan nextPlayer, PlayerControllerChan lastPlayer)
 {
     if (!currentPlayer.isBatBao)
     {
         if (checkDiMotCayDa(cardID, nextPlayer))
         {
             AudioManager.Instance.Play(AudioManager.SoundEffect.DiMotMinhCayDa);
         }
         else if (checkTranhBiNhaTrenDi(cardID, lastPlayer))
         {
             if (!currentPlayer.playSounChayKoNhaTrenDe)
             {
                 AudioManager.SoundEffect soundPlayCheKoDi = getSoundChayThoiKoNhaTrenUDe();
                 AudioManager.Instance.Play(AudioManager.SoundEffect.ChayThoiKoNhaTrenUDe);
                 if (soundPlayCheKoDi == AudioManager.SoundEffect.ChayThoiKoNhaTrenUDe)
                 {
                     currentPlayer.playSounChayKoNhaTrenDe = true;
                 }
             }
         }
         else
         {
             // kiểm tra cây đỏ dánh lần đầu tiên
             if (GameUtil.IscardRed(cardID) && isFirstRound(currentPlayer))
             {
                 // kiểm tra cây tiếp cây đỏ cây gì
                 if (checkChayDiDauSound(nextPlayer))
                 {
                     AudioManager.Instance.Play(AudioManager.SoundEffect.ChayDiDau);
                 }
                 else
                 {
                     AudioManager.SoundEffect soundPlay = getSoundRedCard();
                     // kiểm tra đã ăn cây đỏ nào chưa!
                     if (!checkAnCayDo(cardID, currentPlayer))
                     {
                         AudioManager.Instance.Play(soundPlay);
                         // kiểm tra âm thanh đang bật là lên xe là phóng hay là thử một cây xem sao
                         if (soundPlay == AudioManager.SoundEffect.LenXeLaPhong)
                         {
                             currentPlayer.playSoundLenXeLaPhong = true;
                         }
                         else if (soundPlay == AudioManager.SoundEffect.ThuMotConXemSao)
                         {
                             currentPlayer.playSoundThuMotConXemSao = true;
                         }
                     }
                     else
                     {
                         playSoundNormal(cardID, currentPlayer);
                     }
                 }
             }
             else
             {
                 playSoundNormal(cardID, currentPlayer);
             }
         }
     }
 }
Beispiel #3
0
 private bool checkAnChoSo(int[] listCardID, PlayerControllerChan lastPlayer, PlayerControllerChan currentPlayer)
 {
     if (lastPlayer.playSoundThuMotConXemSao)
     {
         lastPlayer.playSoundThuMotConXemSao = false;
         if (lastPlayer.mCardDiscarded.Count == 1)
         {
             if (currentPlayer.mCardDiscarded.Count > 1)
             {
                 return(false);
             }
             else if (currentPlayer.mCardDiscarded.Count == 1 && currentPlayer.mCardDiscardedAndDraw[0].CardId == listCardID[0])
             {
                 return(false);
             }
             else
             {
                 if (listCardID.Length == 2)
                 {
                     if (listCardID[0] == lastPlayer.mCardDiscarded[0].CardId)
                     {
                         return(true);
                     }
                 }
             }
         }
     }
     return(false);
 }
Beispiel #4
0
    private void Server_EventPluginMessageOnProcess(string command, string action, EsObject eso)
    {
        if (command == "getHandRobot")
        {
            if (eso.variableExists("players"))
            {
                foreach (EsObject obj in eso.getEsObjectArray("players"))
                {
                    string username        = obj.getString("userName");
                    PlayerControllerChan p = GameModelChan.GetPlayer(username);
                    if (obj.getIntegerArray("hand").Length != p.mCardHand.Count)
                    {
                        Debug.LogWarning("Số lượng card không phù hợp giũa client và server: " + p.username);
                    }
                    else
                    {
                        if (p.mCardHand.FindAll(c => c.CardId == -1).Count == 0)
                        {
                            return;
                        }

                        foreach (int cardId in obj.getIntegerArray("hand"))
                        {
                            ECard card = p.mCardHand.Find(c => c.CardId == cardId);
                            if (card == null)
                            {
                                p.mCardHand.Find(c => c.CardId == -1).CardId = cardId;
                            }
                        }
                    }
                }
            }
        }
    }
    public static CUIPlayerChan Create(PlayerControllerChan p, Transform parentTransform)
    {
        if (listNoSlot.ContainsKey(p.slotServer))
        {
            GameObject.Destroy(listNoSlot[p.slotServer]);
        }

        GameObject obj = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/PlayerInfoPrefab"));

        obj.name                    = "Player " + (int)p.mSide;
        obj.transform.parent        = parentTransform;
        obj.transform.localPosition = Vector3.zero;
        obj.transform.localScale    = scaleAvatar;
        CUIPlayerChan cui = obj.GetComponent <CUIPlayerChan>();

        cui.player  = p;
        p.cuiPlayer = cui;

        p.AvatarTexture(delegate(Texture _texture)
        {
            if (cui != null && cui.avatar != null)
            {
                //if(cui.avatar.GetComponentInChildren<UITexture>() !=null)
                cui.avatar.GetComponentInChildren <UITexture>().mainTexture = _texture;
            }
        });
        if (p.mSide == ESide.Slot_0 && GameModelChan.YourController != null)
        {
            cui.avatar.GetComponentInChildren <UITexture>().enabled = false;

            for (int i = 0; i < cui.avatar.childCount; i++)
            {
                GameObject.Destroy(cui.avatar.GetChild(i).gameObject);
            }
            GameObject.Destroy(cui.GetComponentInChildren <UISprite>().gameObject);
            cui.timerCountDown.FindChild("Background").GetComponent <UISprite>().spriteName = "bgYourTimer";
            cui.timerCountDown.FindChild("Background").GetComponent <UISprite>().MakePixelPerfect();
            cui.timerCountDown.FindChild("Foreground").GetComponent <UISprite>().spriteName = "bgYourTimer-1";
            cui.timerCountDown.FindChild("Foreground").GetComponent <UISprite>().MakePixelPerfect();
            Transform iconWarning = cui.gameObject.transform.FindChild("IconWarning");
            Transform iconMaster  = cui.gameObject.transform.FindChild("IconMaster");
            iconWarning.parent        = GameModelChan.game.mPlaymat.locationHand.parent.parent;
            iconMaster.parent         = GameModelChan.game.mPlaymat.locationHand.parent.parent;
            iconWarning.localPosition = new Vector3(40f, 10f, -5f);
            iconMaster.localPosition  = new Vector3(-50f, 10f, -5f);
            iconWarning.GetComponent <UISprite>().depth = 22;

            iconWarning.parent = cui.transform;
            iconMaster.parent  = cui.transform;
            cui.ChangePositionYouLevelBar();
        }
        else
        {
            cui.labelUserName.text = p.username;
        }
        cui.UpdateInfo();
        return(cui);
    }
Beispiel #6
0
    public void AddWaitingPlayer(PlayerControllerChan player)
    {
        PlayerWaitingView view = PlayerWaitingView.Create(player, tableListWaiting);

        view.gameObject.name = waitingViews.Count + " " + player.username;
        waitingViews.Add(view);
        tableListWaiting.Reposition();
        tableListWaiting.transform.parent.GetComponent <UIScrollView>().ResetPosition();
    }
    public void UpdateInfo()
    {
        PlayerControllerChan your = GameModelChan.YourController;

        if (avatar != null)
        {
            if (GameManager.PlayGoldOrChip == "chip")
            {
                labelMoney.text = Utility.Convert.Chip(player.chip);
            }
            else if (GameManager.PlayGoldOrChip == "gold")
            {
                labelMoney.text = Utility.Convert.Chip(player.gold);
            }
        }
        if ((int)GameModelChan.CurrentState <= (int)GameModelChan.EGameState.waitingForReady)
        {
            if (player.PlayerState == EPlayerController.EPlayerState.ready && player != your)
            {
                if (imageReady == null)
                {
                    imageReady = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/ReadyAvatarPrefab"));
                    imageReady.transform.parent        = avatar;
                    imageReady.transform.localPosition = new Vector3(0f, 0f, -10f);
                    imageReady.transform.localScale    = Vector3.one;
                }
            }
        }

        if (GameModelChan.CurrentState == GameModelChan.EGameState.finalizing)
        {
            if (GameModelChan.MiniState == GameModelChan.EGameStateMini.summary_point)
            {
                ShowTinhDiem();
            }
            else if (GameModelChan.MiniState == GameModelChan.EGameStateMini.summary_result || GameModelChan.MiniState == GameModelChan.EGameStateMini.summary_exchange)
            {
                if (objTinhDiem != null)
                {
                    GameObject.Destroy(objTinhDiem);
                }
                ShowEffect();
            }
            else
            {
                if (objEffect != null)
                {
                    GameObject.Destroy(objEffect);
                }
                if (objLabelExchange != null)
                {
                    GameObject.Destroy(objLabelExchange);
                }
            }
        }
        CheckIcon();
    }
Beispiel #8
0
    public static void SkipCard(int soundId, int index)
    {
        PlayerControllerChan currentPlayer = GetPlayer(index);

        if (currentPlayer.mCardTrash.Count > 0)
        {
            currentPlayer.mCardDiscardedAndDraw.Add(currentPlayer.mCardTrash[currentPlayer.mCardTrash.Count - 1]);
        }
        SoundGameplay.Instances.PlaySoundInGame(soundId, GetPlayer(index));
    }
Beispiel #9
0
 private Boolean checkDiMotCayDa(int cardID, PlayerControllerChan nextPlayer)
 {
     if (nextPlayer.mCardTrash.Count > 0)
     {
         if (cardID == nextPlayer.mCardTrash[nextPlayer.mCardTrash.Count - 1].CardId)
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #10
0
 private Boolean checkChayDiDauSound(PlayerControllerChan nextPlayer)
 {
     if (nextPlayer.mCardDiscardedAndDraw.Count > 0 && GameUtil.IscardRed(nextPlayer.mCardDiscardedAndDraw[nextPlayer.mCardDiscardedAndDraw.Count - 1].CardId) && nextPlayer.playSoundLenXeLaPhong)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
    public static PlayerWaitingView Create(PlayerControllerChan player, UIGrid parent)
    {
        GameObject gobj = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/PlayerWaiting/PlayerWaitingView"));

        gobj.transform.parent        = parent.transform;
        gobj.transform.localPosition = Vector3.zero;
        gobj.transform.localScale    = Vector3.one;
        PlayerWaitingView item = gobj.GetComponent <PlayerWaitingView>();

        item.SetData(player);
        return(item);
    }
Beispiel #12
0
    public bool checkTranhBiNhaTrenDi(int cardID, PlayerControllerChan lastPlayer)
    {
        if (null != lastPlayer && lastPlayer.mCardSteal.Count > 0)
        {
            if (cardID == lastPlayer.mCardSteal[lastPlayer.mCardSteal.Count - 1].steals[0].CardId &&
                cardID == lastPlayer.mCardSteal[lastPlayer.mCardSteal.Count - 1].steals[1].CardId)
            {
                return(true);
            }
        }

        return(false);
    }
Beispiel #13
0
 private bool checkAnCayDo(int cardId, PlayerControllerChan currentPlayer)
 {
     if (currentPlayer.mCardSteal.Count > 0)
     {
         for (int i = 0; i < currentPlayer.mCardSteal.Count; i++)
         {
             if (GameUtil.IscardRed(currentPlayer.mCardSteal[i].steals[0].CardId) || GameUtil.IscardRed(currentPlayer.mCardSteal[i].steals[1].CardId))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Beispiel #14
0
    public int isPlayBoTomOmLeo(PlayerControllerChan currentPlayer)
    {
        int count = 0;

        for (int i = 0; i < currentPlayer.mCardDiscarded.Count; i++)
        {
            for (int j = 0; j < cardTom.Length; j++)
            {
                if (currentPlayer.mCardDiscarded[i].CardId == (int)cardTom[i])
                {
                    count++;
                }
            }
        }
        return(count);
    }
 public void SetData(PlayerControllerChan player)
 {
     this.player = player;
     player.AvatarTexture(delegate(Texture texture) { avatar.mainTexture = texture; });
     lbUserName.text = player.username;
     if (GameManager.PlayGoldOrChip == "chip")
     {
         lbChip.text = Utility.Convert.ChipToK(player.chip) + " chip";
     }
     else if (GameManager.PlayGoldOrChip == "gold")
     {
         lbChip.text = Utility.Convert.ChipToK(player.gold) + " gold";
     }
     lbUserName.transform.parent.GetComponent <UITable>().Reposition();
     GetComponent <UIToggle>().value = player.isPriority;
 }
Beispiel #16
0
    private void playSoundNormal(int cardID, PlayerControllerChan currentPlayer)
    {
        switch ((GameUtil.ListCardID)cardID)
        {
        case GameUtil.ListCardID.NGU_VAN_W:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DanhChiNgoiChoChiDung);
            break;

        case GameUtil.ListCardID.CHI_CHI:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DanhChiDungChoChiNgoi);
            break;

        case GameUtil.ListCardID.TAM_VAN_J:
        case GameUtil.ListCardID.TAM_SACH:
        case GameUtil.ListCardID.THAT_VAN_W:
        {
            if (!currentPlayer.playSoundBoTomOmLeo)
            {
                AudioManager.SoundEffect soundBotom = getSoundBoTomOmLeo();
                AudioManager.Instance.Play(AudioManager.SoundEffect.BoTomLeoOmLeo);
                if (soundBotom == AudioManager.SoundEffect.BoTomLeoOmLeo)
                {
                    currentPlayer.playSoundBoTomOmLeo = true;
                }
            }
        }
        break;

        case GameUtil.ListCardID.BAT_VAN_J:
            AudioManager.Instance.Play(AudioManager.SoundEffect.BatVangoiNhiVan);
            break;

        case GameUtil.ListCardID.NHI_VAN_W:
            AudioManager.Instance.Play(AudioManager.SoundEffect.NhiVanGoiBatVan);
            break;

        case GameUtil.ListCardID.TAM_VAN_W:
            AudioManager.Instance.Play(AudioManager.SoundEffect.TamVanGoiThatSach);
            break;

        case GameUtil.ListCardID.THAT_SACH:
            AudioManager.Instance.Play(AudioManager.SoundEffect.ThatSachGoiTamVan);
            break;
        }
    }
Beispiel #17
0
    public static PlayerChat Create(string chatContent, PlayerControllerChan player)
    {
        if (chatContent.Length > 21)
        {
            chatContent = chatContent.Substring(0, 20) + "...";
        }

        GameObject obj = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/sfx/PlayerChatPrefab"));

        obj.name                    = "Chat Content";
        obj.transform.parent        = player.cuiPlayer.gameObject.transform;
        obj.transform.localPosition = new Vector3(player.mSide == ESide.Slot_1 ? -40f : 40f, 70f, -10f);
        obj.transform.localScale    = Vector3.one;
        obj.GetComponent <PlayerChat>().textChat.text = chatContent;
        obj.GetComponent <PlayerChat>().type          = player.mSide == ESide.Slot_1 ? Type.Brackets_Right : Type.Brackets_Left;
        obj.GetComponent <PlayerChat>().ReDraw();
        return(obj.GetComponent <PlayerChat>());
    }
Beispiel #18
0
 public void PlaySoundStealCard(int[] listCardId, PlayerControllerChan currentPlayer, PlayerControllerChan lastPlayer)
 {
     if (listCardId.Length == 4)// chiu'
     {
         AudioManager.Instance.Play(AudioManager.SoundEffect.ChiuCHiu);
     }
     else if (checkDinhMucRoi(listCardId, currentPlayer))
     {
         AudioManager.Instance.Play(AudioManager.SoundEffect.DinhMucRoi);
     }
     else if (checkCauDay(listCardId, currentPlayer))
     {
         AudioManager.Instance.Play(AudioManager.SoundEffect.CauDay);
     }
     else if (checkAnChoSo(listCardId, lastPlayer, currentPlayer))
     {
         AudioManager.Instance.Play(AudioManager.SoundEffect.AnChoSo);
     }
 }
Beispiel #19
0
 //đánh cây đỏ vòng 1,2 sau đó lại ăn cây đỏ nhưng phải hạ cây đen xuống
 private bool checkCauDay(int[] listCardID, PlayerControllerChan currentPlayer)
 {
     // check vòng 1,2
     if (currentPlayer.mCardDiscardedAndDraw.Count < 3)
     {
         // check ăn cây đỏ và hạ cây đen
         if (listCardID.Length == 2 && GameUtil.IscardRed(listCardID[0]) && !GameUtil.IscardRed(listCardID[1]))
         {
             //đánh cây đỏ
             foreach (ECard card in currentPlayer.mCardDiscarded)
             {
                 if (GameUtil.IscardRed(card.CardId))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
Beispiel #20
0
    public Vector3 GetLocationSteals(PlayerControllerChan p, int indexSteal, int index)
    {
        float CARD_STEAL_HEIGHT = -30f;

        if (p.mCardSteal[indexSteal].steals.Count == 4)
        {
            CARD_STEAL_HEIGHT /= 3;
        }

        float x = indexSteal * CARD_STEAL_SPACE;

        //if (index > 0)
        //    x += 1f;

        if (p.mSide == ESide.Slot_1 || (p.mSide == ESide.Slot_0 && GameModelChan.YourController == null))
        {
            return(new Vector3(-x, index * CARD_STEAL_HEIGHT, -index));
        }

        return(new Vector3(x, index * CARD_STEAL_HEIGHT, -index));
    }
Beispiel #21
0
 //Dính mực rồi (Đánh quân đỏ sau lại ăn chẵn đỏ)
 private bool checkDinhMucRoi(int[] listCardID, PlayerControllerChan currentPlayer)
 {
     if (isFirstRound(currentPlayer))
     {
         if (currentPlayer.mCardDiscarded.Count > 0)
         {
             ECard card = currentPlayer.mCardDiscarded[currentPlayer.mCardDiscarded.Count - 1]; //????
             if (GameUtil.IscardRed(card.CardId))                                               // cây đánh ngay trước là cây đỏ
             {
                 if (listCardID.Length == 2)
                 {
                     if (listCardID[0] == listCardID[1] && GameUtil.IscardRed(listCardID[0]))// ăn chắn đỏ
                     {
                         return(true);
                     }
                 }
             }
         }
     }
     return(false);
 }
Beispiel #22
0
    /// <summary>
    /// Khi người chơi thoát ra khỏi bàn
    /// </summary>
    public IEnumerator PlayerLeftOut(PlayerControllerChan p)
    {
        while (GameModelChan.DealCardDone == false)
        {
            yield return(new WaitForEndOfFrame());
        }

        foreach (ChanCard c in p.mCardHand)
        {
            c.SetColor();
        }
        foreach (ChanCard c in p.mCardTrash)
        {
            c.SetColor();
        }
        foreach (Meld m in p.mCardMelds)
        {
            foreach (ChanCard c in m.meld)
            {
                c.SetColor();
            }
        }
    }
    public override void OnPublicMessage(Electrotank.Electroserver5.Api.PublicMessageEvent e)
    {
        #region VIEW CONTENT CHAT

        if (e.UserName != GameManager.Instance.mInfo.username)
        {
            PlayerControllerChan player = GameModelChan.GetPlayer(e.UserName);
            if (player != null)
            {
                if (playerChats.ContainsKey(player))
                {
                    if (playerChats[player] != null)
                    {
                        playerChats[player].DestroyMe();
                    }
                    playerChats.Remove(player);
                }
                playerChats.Add(GameModelChan.GetPlayer(e.UserName), PlayerChat.Create(e.Message, GameModelChan.GetPlayer(e.UserName)));
            }
        }
        #endregion
        str = string.Format("{0}" + e.UserName.ToUpper() + ":[-] " + e.Message + "\n", GameModelChan.ListWaitingPlayer.Find(plc => plc.username == e.UserName) != null ? "[FFCC00]" : "[FF6600]");
        base.OnPublicMessage(e);
    }
Beispiel #24
0
    public static void SetPlayer(int index, PlayerControllerChan p)
    {
        if (p == null)
        {
            if (model._listPlayer[index] != null)
            {
                GameModelChan.game.Listener.RegisterEventPlayerListChanged(model._listPlayer[index], true);

                model._listPlayer[index].Reset();

                if (model._listPlayer[index].cuiPlayer != null && model._listPlayer[index].cuiPlayer.gameObject)
                {
                    GameObject.Destroy(model._listPlayer[index].cuiPlayer.gameObject);
                }
            }
        }

        model._listPlayer[index] = p;

        if (p == null)
        {
            DrawInfoPlayerNoSlot();
        }
    }
Beispiel #25
0
    public Vector3 GetLocationTrash(PlayerControllerChan p, int i)
    {
        float space    = CARD_STEAL_SPACE;
        int   maxTrash = 12;

        if (p.mSide == ESide.Slot_0)
        {
            maxTrash = 9;
        }

        if (p.mCardTrash.Count > maxTrash)
        {
            space = CARD_STEAL_SPACE * maxTrash / p.mCardTrash.Count;
        }

        if (p.mSide == ESide.Slot_3 || p.mSide == ESide.Slot_0)
        {
            return(new Vector3(i * space, 0f, -i));
        }
        else
        {
            return(new Vector3(-i * space, 0f, -i));
        }
    }
    /// <summary>
    /// Thực hiện sau khi người chơi pick lần thứ 2
    /// </summary>
    IEnumerator OnPickDone(ECard card)
    {
        #region THÔNG BÁO VỚI SERVER LÀ ĐÃ THỰC HIỆN XONG BƯỚC 2
        if (!serverRequestUpdateHandStep2 && GameModelChan.YourController != null && GameModelChan.IndexInTurn == GameModelChan.YourController.slotServer)
        {
            int index = Array.FindIndex <GameObject>(listPickObject, obj => obj == card.gameObject);
            GameManager.Server.DoRequestPluginGame(Utility.SetEsObject(Fields.GAMEPLAY.PLAY, new object[] {
                Fields.ACTION, "getHand", "slotChoice", Utility.SetEsObject(null, "donePick", index)
            }));
        }
        #endregion

        #region CHỜ SERVER TRẢ VỀ THÔNG TIN NGƯỜI CHƠI
        while (string.IsNullOrEmpty(firstPlayer) || firstCardServerResponse == -1)
        {
            yield return(new WaitForEndOfFrame());
        }

        pickAfterDealcard.CardId = firstCardServerResponse;
        pickAfterDealcard.gameObject.transform.parent        = card.gameObject.transform.parent;
        pickAfterDealcard.gameObject.transform.localPosition = Vector3.zero;
        pickAfterDealcard.gameObject.SetActive(true);
        pickAfterDealcard.gameObject.transform.localPosition = new Vector3(pickAfterDealcard.gameObject.transform.localPosition.x, pickAfterDealcard.gameObject.transform.localPosition.y, -2f);
        iTween.RotateTo(pickAfterDealcard.gameObject, new Vector3(0f, 0f, 0f), 0.5f);
        yield return(new WaitForSeconds(0.5f));

        #endregion

        List <DealCardRotation> listDealcard = new List <DealCardRotation>();

        #region QUY ĐỊNH VỊ TRÍ SẼ ĐẾN CỦA CÁC MÔ BÀI
        PlayerControllerChan playerFirst = GameModelChan.ListPlayerInGame.Find(p => p.username == firstPlayer);
        DealCardRotation     dealFirst   = DealCardRotation.GetListRotation.Find(d => d.transform.childCount == 2);
        listDealcard.Add(dealFirst);
        dealFirst.StartRotate(playerFirst.mSide);
        PlayerControllerChan nextPlayer = GameModelChan.GetNextPlayer(playerFirst.slotServer);
        DealCardRotation     nextDeal   = dealFirst.GetNextAvalible;
        for (int i = 0; i < GameModelChan.ListPlayerInGame.Count - 1; i++)
        {
            listDealcard.Add(nextDeal);
            nextDeal.StartRotate(nextPlayer.mSide);
            nextPlayer = GameModelChan.GetNextPlayer(nextPlayer.slotServer);
            nextDeal   = nextDeal.GetNextAvalible;
        }
        #endregion

        while (!listDealcard.TrueForAll(d => d.isComplete))
        {
            yield return(new WaitForFixedUpdate());
        }

        #region DI CHUYỂN VỀ VỊ TRÍ CÓ AVATAR
        DealCardRotation.GetListRotation.ForEach(dealCard => {
            if (dealCard.transform.childCount > 0)
            {
                MoveAllChildToTransform(dealCard.transform, GameModelChan.ListPlayerInGame.Find(p => p.mSide == dealCard.sideEnd).cuiPlayer.transform, 0.5f);
            }
        }
                                                 );
        #endregion
        yield return(new WaitForSeconds(0.6f));

        currentStep = StepDealCard.DONE;
        Array.ForEach <GameObject>(listPickObject, obj => GameObject.Destroy(obj));
    }
Beispiel #27
0
    /// <summary>
    /// Khi có người chơi đánh bài
    /// </summary>
    /// <param name="index">Người đánh bài</param>
    /// <param name="cardValue">Card đã đánh</param>
    public static void Discard(int soundId, int index, int cardValue, params string[] discardToPlayer)
    {
        ECard card = GetCard_FromHandPlayer(index, cardValue);

        if (GameModelChan.YourController == null || GameModelChan.YourController.slotServer != index)
        {
            card = new ChanCard(index, cardValue);
            card.Instantiate(game.mPlaymat.locationPlayer[(int)GetPlayer(index).mSide]);
            GetPlayer(index).mCardHand.Add(card);
            card.UpdateParent(index);
        }
        GetPlayer(index).mCardDiscardedAndDraw.Add(card);
        GetPlayer(index).mCardDiscarded.Add(card);
        GetPlayer(index).mCardHand.Remove(card);

        if (discardToPlayer != null && discardToPlayer.Length > 0 && discardToPlayer[0] != null)
        {
            PlayerControllerChan p = GetPlayer(discardToPlayer[0]);
            GetPlayer(discardToPlayer[0]).mCardTrash.Add(card);
            card.ChangeSide(p.slotServer);
            card.UpdateParent(p.slotServer);
        }
        else
        {
            GetPlayer(index).mCardTrash.Add(card);
        }



        game.fullLaying = false;

        card.UpdateParent(index);
        if (YourController != null && YourController.slotServer == index)
        {
            game.OnClickSort(game.btSorted.gameObject);
        }
        else
        {
            game.UpdateHand(index, 0.5f);
        }

        if (discardToPlayer != null && discardToPlayer.Length > 0 && discardToPlayer[0] != null)
        {
            game.UpdateHand(GetPlayer(discardToPlayer[0]).slotServer, 0.5f);
        }
        if (discardToPlayer != null && discardToPlayer.Length > 0 && discardToPlayer[0] != null)// co' chiu' tra? cua
        {
            Debug.Log(GameModelChan.GetPlayer(discardToPlayer[0]).username + " PlayerState " + GameModelChan.GetPlayer(index).PlayerState.ToString());

            if (GameModelChan.GetPlayer(discardToPlayer[0]).PlayerState == EPlayerController.EPlayerState.inTurnStealOrIgnore)
            {
                // Chíu cây bốc
                MiniState = EGameStateMini.stealCard_or_skip;
                //SoundGameplay.Instances.playAudioDisCard(cardValue, GetPlayer(index), GetPlayer(discardToPlayer[0]), null);
            }
            else
            {
                // Chíu cây bốc đánh
                MiniState = EGameStateMini.stealCard_or_draw;
                //SoundGameplay.Instances.playAudioDisCard(cardValue, GetPlayer(index), GetNextPlayer(discardToPlayer[0]), null);
            }
        }
        else
        {
            MiniState = EGameStateMini.stealCard_or_draw;
            //SoundGameplay.Instances.playAudioDisCard(cardValue, GetPlayer(index), GetNextPlayer(index), GetLastPlayer(index));
        }
        SoundGameplay.Instances.PlaySoundInGame(soundId, GetPlayer(index));
    }
Beispiel #28
0
    public void PlaySoundInGame(int soundId, PlayerControllerChan currentPlayer)
    {
        switch ((AudioManager.SoundEffect)soundId)
        {
        case AudioManager.SoundEffect.TayDo:
            AudioManager.Instance.Play(AudioManager.SoundEffect.TayDo);
            break;

        case AudioManager.SoundEffect.ThuMotConXemSao:
            currentPlayer.playSoundThuMotConXemSao = true;
            AudioManager.Instance.Play(AudioManager.SoundEffect.ThuMotConXemSao);
            break;

        case AudioManager.SoundEffect.BoTomLeoOmLeo:
            AudioManager.Instance.Play(AudioManager.SoundEffect.BoTomLeoOmLeo);
            break;

        case AudioManager.SoundEffect.ChayThoiKoNhaTrenUDe:
            AudioManager.Instance.Play(AudioManager.SoundEffect.ChayThoiKoNhaTrenUDe);
            break;

        case AudioManager.SoundEffect.BatVangoiNhiVan:
            AudioManager.Instance.Play(AudioManager.SoundEffect.BatVangoiNhiVan);
            break;

        case AudioManager.SoundEffect.NhiVanGoiBatVan:
            AudioManager.Instance.Play(AudioManager.SoundEffect.NhiVanGoiBatVan);
            break;

        case AudioManager.SoundEffect.TamVanGoiThatSach:
            AudioManager.Instance.Play(AudioManager.SoundEffect.TamVanGoiThatSach);
            break;

        case AudioManager.SoundEffect.ThatSachGoiTamVan:
            AudioManager.Instance.Play(AudioManager.SoundEffect.ThatSachGoiTamVan);
            break;

        case AudioManager.SoundEffect.DanhChiNgoiChoChiDung:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DanhChiNgoiChoChiDung);
            break;

        case AudioManager.SoundEffect.DanhChiDungChoChiNgoi:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DanhChiDungChoChiNgoi);
            break;

        case AudioManager.SoundEffect.LenXeLaPhong:
            AudioManager.Instance.Play(AudioManager.SoundEffect.LenXeLaPhong);
            currentPlayer.playSoundLenXeLaPhong = true;
            break;

        case AudioManager.SoundEffect.DiMotMinhCayDa:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DiMotMinhCayDa);
            break;

        // an bai
        case AudioManager.SoundEffect.ChayDiDau:
            AudioManager.Instance.Play(AudioManager.SoundEffect.ChayDiDau);
            break;

        case AudioManager.SoundEffect.CauDay:
            AudioManager.Instance.Play(AudioManager.SoundEffect.CauDay);
            break;

        case AudioManager.SoundEffect.DinhMucRoi:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DinhMucRoi);
            break;

        case AudioManager.SoundEffect.ChiuCHiu:
            AudioManager.Instance.Play(AudioManager.SoundEffect.ChiuCHiu);
            break;

        case AudioManager.SoundEffect.AnChoSo:
            AudioManager.Instance.Play(AudioManager.SoundEffect.AnChoSo);
            break;

        case AudioManager.SoundEffect.AnGiDanhDay:
            AudioManager.Instance.Play(AudioManager.SoundEffect.AnGiDanhDay);
            break;

        case AudioManager.SoundEffect.AnLuon:
            AudioManager.Instance.Play(AudioManager.SoundEffect.AnLuon);
            break;

        case AudioManager.SoundEffect.CauLai:
            AudioManager.Instance.Play(AudioManager.SoundEffect.CauLai);
            break;

        case AudioManager.SoundEffect.DanhCaiLayAiMaU:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DanhCaiLayAiMaU);
            break;

        case AudioManager.SoundEffect.DeDuoiAn:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DeDuoiAn);
            break;

        case AudioManager.SoundEffect.DuoiDung:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DuoiDung);
            break;

        case AudioManager.SoundEffect.DuoiLuon:
            AudioManager.Instance.Play(AudioManager.SoundEffect.DuoiLuon);
            break;

        case AudioManager.SoundEffect.HetDoRoi:
            AudioManager.Instance.Play(AudioManager.SoundEffect.HetDoRoi);
            break;

        case AudioManager.SoundEffect.Duoi:
            AudioManager.Instance.Play(AudioManager.SoundEffect.Duoi);
            break;

        case AudioManager.SoundEffect.BaoLangKoChan:
            AudioManager.Instance.Play(AudioManager.SoundEffect.BaoLangKoChan);
            break;
        }
    }
Beispiel #29
0
 private Boolean isFirstRound(PlayerControllerChan currentPlayer)
 {
     return(currentPlayer.mCardDiscardedAndDraw.Count == 1);
 }