Beispiel #1
0
    public void SortCard(List <int> CardAn)
    {
        oldPosition.Clear();
        List <int> arr_id = new List <int>();

        for (int i = 0; i < ArrayCardHand.listCardHand.Count; i++)
        {
            Card c = ArrayCardHand.listCardHand[i];
            if (c.isBatHayChua)
            {
                arr_id.Add(c.ID);
            }

            Vector3 position = c.transform.localPosition;
            if (!oldPosition.ContainsKey(c.ID))
            {
                oldPosition.Add(c.ID, position);
            }
        }
        int[]   arrSorted = AutoChooseCardTaLa.SortCardTaLa(arr_id.ToArray(), CardAn, ref isSortOderBy);
        Vector3 newPos, oldPos;

        for (int j = 0; j < ArrayCardHand.listCardHand.Count; j++)
        {
            Card c = ArrayCardHand.listCardHand[j];
            if (j < arrSorted.Length)
            {
                c.SetVisible(true);
                c.ResetCard(true, true);
                newPos = c.transform.localPosition;
                oldPos = oldPosition[arrSorted[j]];

                c.SetCardWithId(arrSorted[j]);
                if (CardAn.Contains(c.ID))
                {
                    c.SetActiveBorder(true);
                }
                else
                {
                    c.SetActiveBorder(false);
                }
                c.transform.localPosition = oldPos;
                c.transform.DOLocalMoveX(newPos.x, 0.2f);
                c.transform.SetSiblingIndex(j);
            }
            else
            {
                c.SetVisible(false);
            }
        }

        StartCoroutine(ChoXepLai());
    }
Beispiel #2
0
    IEnumerator WaitGuiBai(int[] idCards, PhomPlayer playerTu, bool isTao)
    {
        List <int> Phom1 = new List <int>();

        for (int i = 0; i < ArrayCardPhom[0].listCardHand.Count; i++)
        {
            Card c = ArrayCardPhom[0].listCardHand[i];
            if (c.isBatHayChua)
            {
                Phom1.Add(c.ID);
            }
        }

        for (int i = 0; i < idCards.Length; i++)
        {
            Phom1.Add(idCards[i]);
            Card cTu;
            if (isTao)
            {
                cTu = playerTu.cardTaLaManager.ArrayCardHand.GetCardbyIDCard(idCards[i]);
            }
            else
            {
                cTu = playerTu.cardTaLaManager.GetCardOnArrayCard(playerTu.cardTaLaManager.ArrayCardHand);
            }
            cTu.SetVisible(false);
            int indexP = 0;
            if (!AutoChooseCardTaLa.CheckPhom(Phom1.ToArray()))
            {
                Phom1.Remove(idCards[i]);
                indexP = 1;
            }
            ArrayCard arr  = ArrayCardPhom[indexP];
            Card      cDen = GetCardOnArrayCard(arr);
            cDen.transform.localPosition = arr.GetPositonCardActive();
            cDen.setSmall(!isTao);
            cDen.SetCardWithId(idCards[i]);
            Vector3 vtFrom = arr.transform.InverseTransformPoint(isTao ? cTu.transform.position : playerTu.cardTaLaManager.ArrayCardHand.transform.position);
            StartCoroutine(cDen.MoveFrom(vtFrom, CONST_DUR, 0, () => {
                arr.SortCardActive();
                cDen.setSmall(true);
                SortCardPhom(arr);
            }));
            yield return(new WaitForSeconds(0.2f));
        }
        if (isTao)
        {
            yield return(new WaitForSeconds(0.2f));

            playerTu.cardTaLaManager.ArrayCardHand.SortCardActive();
        }
    }
Beispiel #3
0
    void SortCardPhom(ArrayCard arrC)
    {
        List <int> Phom1 = new List <int>();

        for (int i = 0; i < arrC.listCardHand.Count; i++)
        {
            Card c = arrC.listCardHand[i];
            if (c.isBatHayChua)
            {
                Phom1.Add(c.ID);
            }
        }

        int[] arr = Phom1.OrderBy(x => AutoChooseCardTaLa.GetValue(x)).ThenBy(x => AutoChooseCardTaLa.GetType(x)).ToArray();
        arrC.SetCardKhiKetThucGame(arr);
    }
Beispiel #4
0
 internal void OnPhomha(Message message)
 {
     try {
         int len = message.reader().ReadInt();
         for (int i = 0; i < len; i++)
         {
             int   len2 = message.reader().ReadInt();
             int[] phom = new int[len2];
             for (int j = 0; j < len2; j++)
             {
                 phom[j] = message.reader().ReadInt();
             }
             List <int[]> listP = AutoChooseCardTaLa.GetPhomTrenTayMultiArray(phom);
             for (int k = 0; k < listP.Count; k++)
             {
                 ((PhomPlayer)playerMe).cardTaLaManager.HaBai(listP[k], true, ListIdCardAn);
             }
         }
     } catch (Exception e) {
         Debug.LogException(e);
     }
 }
Beispiel #5
0
    internal void OnDropPhomSuccess(string nick, int[] arrayPhom)
    {
        PhomPlayer pl = (PhomPlayer)GetPlayerWithName(nick);

        if (pl != null)
        {
            bool         isMe   = nick.Equals(ClientConfig.UserInfo.UNAME);
            List <int[]> phommm = AutoChooseCardTaLa.GetPhomTrenTayMultiArray(arrayPhom);
            for (int i = 0; i < phommm.Count; i++)
            {
                pl.cardTaLaManager.HaBai(phommm[i], isMe, ListIdCardAn);
            }

            //if (isMe) {
            //    int[] p = AutoChooseCardTaLa.GetPhomTrenTayOneArray(pl.cardTaLaManager.GetCardIdCardHand());
            //    if (p.Length <= 0)
            //        SetActiveButton(false, false, true, false, false, false, false, true);
            //    else
            //        SetActiveButton(false, false, true, false, false, true, false, true);
            //}
        }
    }
Beispiel #6
0
    internal override void OnFireCard(string nick, string turnName, int[] card)
    {
        base.OnFireCard(nick, turnName, card);
        PhomPlayer plFire = (PhomPlayer)GetPlayerWithName(nick);

        cardDanhTruocDo = card[0];
        if (plFire != null)
        {
            plFire.SetTurn(0, false);
            plFire.cardTaLaManager.OnFireCard(card[0], nick.Equals(ClientConfig.UserInfo.UNAME));

            if (nick.Equals(ClientConfig.UserInfo.UNAME))
            {
                if (plFire.cardTaLaManager.NumCardFire() >= 3)
                {
                    //		int[] arrr = AutoChooseCardTaLa.GetPhomTrenTayOneArray(plFire.cardTaLaManager.GetCardIdCardHand());
                    //		if (arrr.Length <= 0) {
                    //			SetActiveButton(false, false, false, false, false, false, true);
                    //		} else
                    //			SetActiveButton(false, false, false, false, false, true, false);

                    bool isHaP = AutoChooseCardTaLa.CheckPhom(plFire.cardTaLaManager.GetCardIdCardHand());
                    Debug.LogError("vao day ne:  " + isHaP);
                    SetActiveButton(false, false, false, false, false, isHaP, true);
                    //} else {
                    //	SetActiveButton(false, false, true, false, false, false, true);
                    //}
                }
                else
                {
                    SetActiveButton(false, false, false, false, false, false, true);
                }
            }
            else
            {
                SetTurn(turnName, null);
            }
        }
    }
Beispiel #7
0
    internal override void OnInfome(Message message)
    {
        base.OnInfome(message);
        try {
            bool bocbai = false, anbai = false, haphom = false, danhbai = false;
            GameControl.instance.TimerTurnInGame = 20;
            playerMe.IsPlaying = (true);
            int   sizeCardHand = message.reader().ReadByte();
            int[] cardHand     = new int[sizeCardHand];
            for (int i = 0; i < sizeCardHand; i++)
            {
                cardHand[i] = message.reader().ReadByte();
            }

            ((PhomPlayer)playerMe).cardTaLaManager.ArrayCardHand.SetActiveCardWithArrID(cardHand);

            int   sizeCardFire = message.reader().ReadByte();
            int[] cardFire     = new int[sizeCardFire];
            for (int i = 0; i < sizeCardFire; i++)
            {
                cardFire[i] = message.reader().ReadByte();
            }
            ((PhomPlayer)playerMe).cardTaLaManager.ArrayCardFire.SetActiveCardWithArrID(cardFire);

            int sizeCardPhom = message.reader().ReadByte();
            if (sizeCardPhom > 0)
            {
                int[] cardPhom = new int[sizeCardPhom];
                for (int i = 0; i < sizeCardFire; i++)
                {
                    cardPhom[i] = message.reader().ReadByte();
                }
                List <int[]> listP = AutoChooseCardTaLa.GetPhomTrenTayMultiArray(cardPhom);
                for (int k = 0; k < listP.Count; k++)
                {
                    ((PhomPlayer)playerMe).cardTaLaManager.HaBai(listP[k], true, ListIdCardAn);
                }
            }

            string turnName = message.reader().ReadUTF();
            int    turnTime = message.reader().ReadInt();

            PhomPlayer plTurn = (PhomPlayer)GetPlayerWithName(turnName);
            if (plTurn != null)
            {
                plTurn.SetTurn(turnTime);
            }

            if (turnName.Equals(ClientConfig.UserInfo.UNAME))
            {
                if (plTurn.cardTaLaManager.NumCardFire() >= 4)
                {
                    haphom = true;
                }
                else
                {
                    int[] cardMe = plTurn.cardTaLaManager.GetCardIdCardHand();
                    if (cardMe.Length < 10)
                    {
                        bocbai = true;
                    }
                    else
                    {
                        danhbai = true;
                    }
                    int[] cardPhom = AutoChooseCardTaLa.GetPhomAnDuoc(cardMe, cardDanhTruocDo, ListIdCardAn.ToArray());

                    if (cardPhom != null)
                    {
                        anbai  = true;
                        bocbai = true;
                    }
                }
                //    SetActiveButton(false, false, true, sizeCardFire > 0);
                //} else {
                //    SetActiveButton(false, false, false, false);
            }

            SetActiveButton(false, false, danhbai, bocbai, anbai, haphom, false);
        } catch (Exception e) {
            Debug.LogException(e);
        }
    }
Beispiel #8
0
    internal override void InfoCardPlayerInTbl(Message message, string turnName, int time, sbyte numP)
    {
        base.InfoCardPlayerInTbl(message, turnName, time, numP);
        try {
            int numCardNoc = 0;
            for (int i = 0; i < numP; i++)
            {
                string     nameP = message.reader().ReadUTF();
                PhomPlayer pl    = (PhomPlayer)GetPlayerWithName(nameP);
                if (pl != null)
                {
                    pl.IsPlaying = (true);
                    int[] temp = new int[9];
                    for (int j = 0; j < temp.Length; j++)
                    {
                        temp[j] = 52;
                    }
                    pl.cardTaLaManager.SetChiaBai(temp, false);

                    int sizeCardAn = message.reader().ReadInt();
                    for (int j = 0; j < sizeCardAn; j++)
                    {
                        pl.cardTaLaManager.SetCardAn(message.reader().ReadInt(), j);
                    }
                    int   sizeRub  = message.reader().ReadInt();
                    int[] cardDanh = new int[sizeRub];
                    for (int j = 0; j < sizeRub; j++)
                    {
                        cardDanh[j] = message.reader().ReadInt();
                    }
                    pl.cardTaLaManager.ArrayCardFire.SetActiveCardWithArrID(cardDanh);

                    numCardNoc += sizeRub;

                    int sizePhom = message.reader().ReadByte();
                    if (sizePhom > 0)
                    {
                        int[] phom = new int[sizePhom];
                        for (int j = 0; j < sizePhom; j++)
                        {
                            phom[j] = message.reader().ReadByte();
                        }
                        List <int[]> listP = AutoChooseCardTaLa.GetPhomTrenTayMultiArray(phom);
                        for (int k = 0; k < listP.Count; k++)
                        {
                            pl.cardTaLaManager.HaBai(listP[k], false);
                        }
                    }
                }
            }
            SetNumCardLoc(numP * 4 - numCardNoc);

            GameControl.instance.TimerTurnInGame = time;
            //SetTurn(turnName, null);
            BasePlayer plTurn = GetPlayerWithName(turnName);
            if (plTurn != null)
            {
                plTurn.SetTurn(time);
            }
            if (turnName.Equals(ClientConfig.UserInfo.UNAME))
            {
                SetActiveButton(false, false, true, true, false, false, false);                //kiem tra an dc hay ko
            }
            else
            {
                SetActiveButton(false, false, false, false, false, false, false);
            }
        } catch (Exception e) {
            Debug.LogException(e);
        }
    }