示例#1
0
        /// <summary>
        /// 港式五张的结算方法
        /// </summary>
        public void DoResult(ISFSObject data)
        {
            var gdata = App.GetGameData <GangwuGameData>();

            ISFSArray        isfsArr = data.GetSFSArray("result");
            List <Transform> wheres  = new List <Transform>();

            foreach (ISFSObject isfsObj in isfsArr)
            {
                int         win   = isfsObj.GetInt("win");
                int         seat  = isfsObj.GetInt("seat");
                PlayerPanel panel = gdata.GetPlayer <PlayerPanel>(seat, true);

                //标记赢家的位置信息
                if (panel.Info != null)
                {
                    panel.Coin = isfsObj.GetLong("ttgold");
                    panel.RefreshPanel();
                }

                if (panel.PokersTrans[0].childCount > 0)
                {
                    int[]     cards = isfsObj.GetIntArray("cards");
                    PokerCard poker = panel.PokersTrans[0].GetChild(0).GetComponent <PokerCard>();

                    poker.SetCardId(cards[0]);
                    poker.SetCardFront();
                }

                if (win > 0)
                {
                    var resultSeat = seat;
                    var pokerType  = panel.UserBetPoker.PokerType;
                    if (panel.PokersTrans[panel.PokersTrans.Length - 1].childCount > 0)
                    {
                        pokerType.spriteName = "ct_" + isfsObj.GetUtfString("cardsName");
                        pokerType.MakePixelPerfect();
                        pokerType.transform.localScale = resultSeat == gdata.SelfSeat ? Vector3.one : new Vector3(1.5f, 1.5f, 1.5f);
                        pokerType.gameObject.SetActive(true);
                    }
                    panel.WinEffect.SetActive(true);

                    //如果是特殊牌型,需要播放牌型特效
                    if (EffectsMgr.NeedShowEffect(isfsObj.GetUtfString("cardsName")))
                    {
                        EffectsMgr.PlayParticleEffect("ct_" + isfsObj.GetUtfString("cardsName"), 2f, true);
                    }

                    if (resultSeat == gdata.SelfSeat)
                    {
                        Facade.Instance <MusicManager>().Play("win");
                        EffectsMgr.PlayYouWin();
                    }

                    wheres.Add(panel.UserIcon.transform);
                }
            }
            if (wheres.Count > 0)
            {
                BetMgr.BigBetStack.SendBetToSomewhere(wheres);
            }
        }
示例#2
0
        /// <summary>
        /// 结算一个人
        /// </summary>
        // ReSharper disable once UnusedMember.Local
        private void ResultSomeone()
        {
            var gdata = App.GetGameData <TexasGameData>();

            gdata.IsGameStart = false;
            gdata.GStatus     = YxEGameStatus.Normal;
            //初始化
            PokerResultInit();

            if (_resultIndex >= ResultData.Count)
            {
                ResultDone();
                return;
            }

            var resultData  = ResultData[_resultIndex];
            var resultCount = resultData.Count;
            var selfSeat    = gdata.SelfSeat;

            for (var i = 0; i < resultCount; i++)
            {
                var someone  = resultData[i];
                var isGiveUp = someone.ContainsKey("isGiveUp") && someone.GetBool("isGiveUp");
                var isWinner = someone.GetInt("gold") > 0;
                int onesSeat = someone.GetInt("seat");
                var player   = gdata.GetPlayer <PlayerPanel>(onesSeat, true);


                player.WinEffect.SetActive(true);
                if (someone.ContainsKey("cards"))
                {
                    var cards = someone.GetIntArray("cards");

                    player.UserBetPoker.PokerType.gameObject.SetActive(true);
                    player.UserBetPoker.PokerType.spriteName =
                        ((PokerType)someone.GetInt("type")).ToString();
                    player.UserBetPoker.PokerType.MakePixelPerfect();

                    if (isWinner)
                    {
                        player.ShowWinPoker(cards);
                    }

                    if (someone.GetInt("type") >= (int)PokerType.ct_FollHouse && !isGiveUp)
                    {
                        player.SetPlayerDepth(200);
                        foreach (var card in PublicPokers)
                        {
                            card.SetCardDepth(210);
                        }
                        EffectsMagr.PlayParticleEffect(((PokerType)someone.GetInt("type")).ToString(), 2f, true);
                    }
                }


                if (someone.GetInt("seat") != selfSeat || someone.GetInt("type") >= (int)PokerType.ct_FollHouse ||
                    isGiveUp)
                {
                    continue;
                }
                Facade.Instance <MusicManager>().Play("win");
                EffectsMagr.PlayYouWin();
            }
            BetMagr.SendBetToWin(resultData);

            _resultIndex++;
        }