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