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()); }
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(); } }
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); }
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); } }
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); //} } }
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); } } }
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); } }
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); } }