public virtual void ParseData(ISFSObject data) { if (data.ContainsKey(RequestKeyOther.KeyTType)) { _type = data.GetInt(RequestKeyOther.KeyTType); } else if (data.ContainsKey(RequestKey.KeyType)) { _type = data.GetInt(RequestKey.KeyType); } if (data.ContainsKey(RequestKey.KeyOpCard)) { Card = data.GetInt(RequestKey.KeyOpCard); } else if (data.ContainsKey(RequestKey.KeyCard)) { Card = data.GetInt(RequestKey.KeyCard); } if (data.ContainsKey("from")) { _fromSeat = data.GetInt("from"); } if (data.ContainsKey("dan")) { _dan = true; } if (data.ContainsKey(RequestKey.KeySeat)) { _seat = data.GetInt(RequestKey.KeySeat); } if (data.ContainsKey(RequestKey.KeyCards)) { int[] values = data.GetIntArray(RequestKey.KeyCards); foreach (int value in values) { CardDatas.Add(value); } UtilFunc.OutPutList(CardDatas, "吃碰杠 " + _type); } SetCard(); SetCardDatas(); SetAllCardDatas(); }
public virtual void SetShowInfo(TableData table, Texture[] defineArray) { gameObject.SetActive(true); if (RoomID != null) { RoomID.text = table.RoomInfo.RoomID + ""; } if (RoundImg != null) { RoundImg.sprite = table.RoomInfo.GameLoopType == EnGameLoopType.round ? JuImg : QuanImg; } if (Round != null) { Round.text = table.RoomInfo.CurrRound + "/" + table.RoomInfo.MaxRound; } if (TimeData != null) { TimeData.text = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss"); } foreach (OnRoudResultItem item in Items) { item.SetVisible = false; item.Chair = -1; } var seatList = new List <int>(); for (int i = 0; i < UtilData.CurrGamePalyerCnt; i++) { seatList.Add(i); } //根据胡牌玩家排序 seatList.Sort((a, b) => { bool isAHu = table.Result.HuSeat.Contains(a); bool isBHu = table.Result.HuSeat.Contains(b); if (isAHu && !isBHu) { return(-1); } if (!isAHu && isBHu) { return(1); } if (isAHu && isBHu) { int aScore = table.Result.HuGold[a]; int bScore = table.Result.HuGold[b]; if (aScore < bScore) { return(-1); } if (aScore > bScore) { return(1); } } return(0); }); UtilFunc.OutPutList(seatList, "游戏结束 玩家胡牌排序后"); if (BaoArea != null) { int bao = table.Result.bao; if (bao > 0) { GameObject baoItem = D2MahjongMng.Instance.GetMj(bao, EnD2MjType.Up, bao); baoItem.transform.parent = BaoArea; baoItem.transform.localPosition = Vector3.zero; baoItem.transform.localScale = Vector3.one; } } int huCnt = 1; for (int i = 0; i < seatList.Count; i++) { int seat = seatList[i]; Items[i].SetVisible = true; Items[i].Name = table.UserDatas[seat].name; Items[i].UserID = table.UserDatas[seat].id.ToString(); Items[i].StrHuInfo = table.Result.HuName[seat]; Items[i].IntHuScore = table.Result.HuGold[seat]; Items[i].IntGangScore = table.Result.GangGlod[seat]; Items[i].IntScore = table.Result.Gold[seat]; Items[i].IsHu = false; Items[i].SetPiaoScore = table.Result.PiaoGlod[seat]; Items[i].IsBanker = seat == table.BankerSeat; // 码分 Items[i].SetNiaoScore = table.Result.NiaoGold[seat]; //吃碰杠加入 Items[i].SetCpgCard(table.UserCpg[seat]); Items[i].SetHardCard(table.UserHardCard[seat].ToArray(), table.Laizi); //设置胡牌信息 if (huCnt++ <= table.Result.HuSeat.Count) { Items[i].IsHu = true; Items[i].SetHardCard(new[] { table.Result.HuCard }, table.Laizi); } Items[i].SortCardGroup(); Items[i].HuTypeValue = table.Result.UserHuType[seat]; int sex = table.UserDatas[seat].Sex; sex = sex >= 0 ? sex : 0; Items[i].SetHeadImg(table.UserDatas[seat].HeadImage, defineArray[sex % 2]); } if (UtilData.RoomType == EnRoomType.YuLe) { _startCall = () => { Hide(); EventDispatch.Dispatch((int)NetEventId.OnGameRestart, new EventData()); }; } bool isMeWin = table.Result.HuSeat.Contains(table.PlayerSeat); if (isMeWin) { if (Gril != null) { Gril.sprite = GrilWin; Facade.Instance <MusicManager>().Play("win"); Gril.SetNativeSize(); } if (Result != null) { Result.sprite = WinSpr; } } else { if (Gril != null) { Gril.sprite = GrilLost; Facade.Instance <MusicManager>().Play("loss"); Gril.SetNativeSize(); } if (Result != null) { Result.sprite = LostSpr; } } if (table.Result.HuType == MjRequestData.MJReqTypeLastCd) //流局 { if (Result != null) { Result.sprite = HeSpr; } } }
public override void SetShowInfo(TableData table, Texture[] defineArray) { ShareScoreUiGob.SetActive(false); ShareLianZhuangUiGob.SetActive(false); ShareFlowerUiGob.SetActive(false); Btns.SetActive(false); foreach (var ewgob in ErweiGobs) { ewgob.SetActive(false); } BackToHallBtn.SetActive(table.RoomInfo.RoomType == EnRoomType.YuLe); gameObject.SetActive(true); MahjongManager.Instance.Reset(); if (RoomID != null) { RoomID.text = table.RoomInfo.RoomID + ""; } if (RoundImg != null) { RoundImg.sprite = table.RoomInfo.GameLoopType == EnGameLoopType.round ? JuImg : QuanImg; } if (Round != null) { Round.text = table.RoomInfo.CurrRound + "/" + table.RoomInfo.MaxRound; } foreach (OnRoudResultItem item in Items) { item.SetVisible = false; } var seatList = new List <int>(); for (int i = 0; i < UtilData.CurrGamePalyerCnt; i++) { seatList.Add(i); } //根据胡牌玩家排序 seatList.Sort((a, b) => { bool isAHu = table.Result.HuSeat.Contains(a); bool isBHu = table.Result.HuSeat.Contains(b); if (isAHu && !isBHu) { return(-1); } if (!isAHu && isBHu) { return(1); } if (isAHu && isBHu) { int aScore = table.Result.HuGold[a]; int bScore = table.Result.HuGold[b]; if (aScore < bScore) { return(-1); } if (aScore > bScore) { return(1); } } return(0); }); UtilFunc.OutPutList(seatList, "游戏结束 玩家胡牌排序后"); if (BaoArea != null) { int bao = table.Result.bao; if (bao > 0) { GameObject baoItem = D2MahjongMng.Instance.GetMj(bao, EnD2MjType.Up, bao); baoItem.transform.parent = BaoArea; baoItem.transform.localPosition = Vector3.zero; baoItem.transform.localScale = Vector3.one; } } //是否赢 bool isMeWin = table.Result.HuSeat.Contains(table.PlayerSeat); //是否流局 bool isLiuJu = table.Result.HuType == MjRequestData.MJReqTypeLastCd; int huCnt = 1; for (int i = 0; i < seatList.Count; i++) { int seat = seatList[i]; Items[i].SetVisible = true; Items[i].Name = table.UserDatas[seat].name; var hunameInfo = table.Result.HuName[seat]; Items[i].StrHuInfo = hunameInfo; Items[i].IntHuScore = table.Result.HuGold[seat]; Items[i].IntGangScore = table.Result.GangGlod[seat]; Items[i].IntScore = table.Result.Gold[seat]; Items[i].IsHu = false; Items[i].IsBanker = seat == table.BankerSeat; // 码分 Items[i].SetNiaoScore = table.Result.NiaoGold[seat]; //吃碰杠加入 Items[i].SetCpgCardJp(table.UserCpg[seat], table.Laizi); Items[i].SetHardCard(table.UserHardCard[seat].ToArray(), table.Laizi); bool ishu = false; //设置胡牌信息 if (huCnt++ <= table.Result.HuSeat.Count) { ishu = true; Items[i].IsHu = true; Items[i].SetHardCard(new[] { table.Result.HuCard }, table.Laizi); } Items[i].SortCardGroup(); Items[i].HuTypeValue = table.Result.UserHuType[seat]; Items[i].SetHeadImg(table.UserDatas[seat].HeadImage, defineArray[table.UserDatas[seat].Sex % 2]); if (OnerdExtraMsgItems[i] != null) { var bgimg = OnerdExtraMsgItems[i].GetComponent <Image>(); if (bgimg != null) { if (!isLiuJu) { bgimg.sprite = isMeWin ? WinbgImg : LosebgImg; } else { bgimg.sprite = HebgImg; } } var buzhangList = new int[] {}; var buzhangLen = table.Result.BuZhangList.Count; if (buzhangLen >= seat && buzhangLen > 0) { buzhangList = table.Result.BuZhangList[seat]; } OnerdExtraMsgItems[i].SetExtraInfo(table.Result.Huaname[seat], table.Result.Taicnt[seat], table.Result.Huacnt[seat], CheckLaiziGroup(table.UserHardCard[seat].ToArray(), table.Result.HuCard, ishu, table.Laizi), buzhangList, table.Laizi, table.Result.IsBaoPai[seat], table.Result.LianZhuangInfo[seat], table.Fanpai); } #region 添加分享信息 var shareGoldScore = table.Result.ShareShowGold[seat]; if (seat == table.PlayerSeat) { var jptabledata = table as JpTableData; if (jptabledata != null) { //胡了,且分数足够分享 var ishuAndShareScore = ishu && shareGoldScore >= jptabledata.ShareHuScoreValue; //没胡,但花数足够分享 var nohuAndShareHua = !ishu && table.Result.Huacnt[seat] >= jptabledata.ShareHuHuaNumValue; if (ishuAndShareScore || nohuAndShareHua) { ShareScoreUiGob.SetActive(true); //分数信息 if (ishuAndShareScore) { SelfPlayerHuScoreText.text = YxUtiles.GetShowNumber(shareGoldScore).ToString(CultureInfo.InvariantCulture) + "分"; SelfPlayerHuScoreText1.text = "总积分:" + YxUtiles.GetShowNumber(shareGoldScore).ToString(CultureInfo.InvariantCulture) + "分"; HurawImgBg.SetActive(true); HuaShareRawImgBg.SetActive(false); } else if (nohuAndShareHua) { HuaNumtext.text = "花:" + table.Result.Huacnt[seat]; HuaNumtext1.text = "花:" + table.Result.Huacnt[seat]; HurawImgBg.SetActive(false); HuaShareRawImgBg.SetActive(true); } //头像信息 SetShareHeadImg(table.UserDatas[seat].HeadImage, ShareHeadImgScore, defineArray[table.UserDatas[seat].Sex % 2]); //按钮 Btns.SetActive(true); var cdinfoOnrditem = CardsInfoZone.GetComponent <OnRoudResultItem>(); cdinfoOnrditem.Cleare(); cdinfoOnrditem.SetCpgCardJp(table.UserCpg[seat], table.Laizi); cdinfoOnrditem.SetHardCard(table.UserHardCard[seat].ToArray(), table.Laizi); if (ishu) { cdinfoOnrditem.SetHardCard(new[] { table.Result.HuCard }, table.Laizi); } cdinfoOnrditem.SortCardGroup(); cdinfoOnrditem.StrHuInfo = hunameInfo; var onrdextramessage = CardsInfoZone.GetComponent <OneRdExtraMessShow>(); onrdextramessage.SetExtraInfo(table.Result.Huaname[seat], table.Result.Taicnt[seat], table.Result.Huacnt[seat], CheckLaiziGroup(table.UserHardCard[seat].ToArray(), table.Result.HuCard, ishu, table.Laizi), table.Result.BuZhangList[seat], table.Laizi, table.Result.IsBaoPai[seat], table.Result.LianZhuangInfo[seat], table.Fanpai); onrdextramessage.SetEstraCds(); } else if (table.Result.LianZhuangNumInfo[seat] >= jptabledata.LianzhuangNum) { //连庄数信息 SelfPlayerlianzhuangZhuangText.text = table.Result.LianZhuangNumInfo[seat].ToString(CultureInfo.InvariantCulture); //连庄信息 SelfPlayerlianzhuanInfoText.text = table.Result.LianZhuangInfo[seat]; ShareLianZhuangUiGob.SetActive(true); SetShareHeadImg(table.UserDatas[seat].HeadImage, ShareHeadImgLianzhuang, defineArray[table.UserDatas[seat].Sex % 2]); Btns.SetActive(true); } } } #endregion } if (UtilData.RoomType == EnRoomType.YuLe) { _startCall = () => { Hide(); EventDispatch.Dispatch((int)NetEventId.OnGameRestart, new EventData()); }; } if (isMeWin) { if (Gril != null) { Gril.sprite = GrilWin; } if (Result != null) { Result.sprite = WinSpr; } } else { if (Gril != null) { Gril.sprite = GrilLost; } if (Result != null) { Result.sprite = LostSpr; } } if (isLiuJu) //流局 { if (Result != null) { Result.sprite = HeSpr; } } if (_laterUnfoldCor != null) { StopCoroutine(_laterUnfoldCor); } _laterUnfoldCor = StartCoroutine(LaterUnfoldingInfo()); }