/// <summary> /// 定缺成功 数据处理 /// </summary> public void UpdateHandCardsAfterFix(MJoptInfoData data) { MJGameModel.Inst.SetMyFixedType(data.type); CardsInfoStruct mMJmyInfo = MJGameModel.Inst.allPlayersCardsInfoStruct[MJGameModel.Inst.mMySeatId]; List <int> newHandCards = mMJmyInfo.handList; if (mMJmyInfo != null && mMJmyInfo.currCard != 0) { newHandCards.Add(mMJmyInfo.currCard); } mMJmyInfo.fixedType = data.type; newHandCards = MJGameModel.Inst.ChangList(newHandCards, data.type); for (int i = 0; i < newHandCards.Count; i++) { if (newHandCards[i] > MJGameModel.Inst.eFixe[0] && newHandCards[i] < MJGameModel.Inst.eFixe[1]) { MJGameModel.Inst.isHasFixeCard = true; break; } MJGameModel.Inst.isHasFixeCard = false; } if (MJGameModel.Inst.allPlayersCardsInfoStruct[MJGameModel.Inst.mMySeatId].isHasCurrCard) { MJGameModel.Inst.allPlayersCardsInfoStruct[MJGameModel.Inst.mMySeatId] .currCard = newHandCards[newHandCards.Count - 1]; MJGameModel.Inst.allPlayersCardsInfoStruct[MJGameModel.Inst.mMySeatId].currCard = newHandCards[newHandCards.Count - 1]; newHandCards.RemoveAt(newHandCards.Count - 1); } MJGameModel.Inst.allPlayersCardsInfoStruct[MJGameModel.Inst.mMySeatId] .handList = newHandCards; }
public void InfoOnePlayerPengCard(MJPlayerBase player, CardsInfoStruct info) { if (info == null) { player.InitPengCards(eMJInstructionsType.PENG, null); } else { List <MJliangcard> list = new List <MJliangcard>(); if (info.gangList != null) { player.InitGangCards(eMJInstructionsType.GANG, info.gangList); } if (info.huList != null) { player.InitHuCards(eMJInstructionsType.HU, info.huList); } if (info.pengList != null) { //list.AddRange(info.pengList); player.InitPengCards(eMJInstructionsType.PENG, info.pengList); } } }
/// <summary> /// 初始化胡牌 /// </summary> /// <param name="player"></param> /// <param name="info"></param> public void InitHuCard(MJPlayerBase player, CardsInfoStruct info, int huType = -1) { if (info.huList != null && info.huList.Count >= 0) { player.InitHuCards(eMJInstructionsType.HU, info.huList, huType); } }
/// <summary> /// 小结算 /// </summary> /// <param name="msg"></param> private void OnSettlement(MessageData msg) { litSemResponse data = msg.Read <litSemResponse>(); CardsInfoStruct[] playerCardsDatas = MJGameModel.Inst.allPlayersCardsInfoStruct; bool isNoWinner = true;//是否是流局 for (int i = 0; i < playerCardsDatas.Length; i++) { if (playerCardsDatas[i] != null && playerCardsDatas[i].huList != null && playerCardsDatas[i].huList.Count > 0) { isNoWinner = false; break; } } if (isNoWinner) //流局 { mGameUI.ServerNoWinner(); } #region 小结算数据处理 MJGameSettlementInfo mSettlData = new MJGameSettlementInfo(); MJGameModel.Inst.mLitSem = data; mSettlData.isEnd = true; mSettlData.isHu = !isNoWinner; mSettlData.settleContainer = new List <MJGameSettlementPlayerInfo>(); for (int i = 0; i < data.litSemList.Count; i++) { MJGameSettlementPlayerInfo oneSettlementPlayerInfo = new MJGameSettlementPlayerInfo(); int seatID = data.litSemList[i].seatId; PlayerInfoStruct onePData = MJGameModel.Inst.mRoomPlayers[seatID]; //玩家信息 CardsInfoStruct cdata = MJGameModel.Inst.allPlayersCardsInfoStruct[seatID]; //牌信息 oneSettlementPlayerInfo.seatId = seatID; oneSettlementPlayerInfo.userId = onePData.uId; oneSettlementPlayerInfo.nickName = onePData.nickName; oneSettlementPlayerInfo.score = data.litSemList[i].currScore; oneSettlementPlayerInfo.headUrl = onePData.headUrl; oneSettlementPlayerInfo.shoupai = data.litSemList[i].handList; oneSettlementPlayerInfo.peng = cdata.pengList; oneSettlementPlayerInfo.gang = cdata.gangList; oneSettlementPlayerInfo.huPai = cdata.huList; oneSettlementPlayerInfo.huOrder = data.litSemList[i].huOrder; oneSettlementPlayerInfo.huDes = data.litSemList[i].huIntro; mSettlData.settleContainer.Add(oneSettlementPlayerInfo); } #endregion MJGameModel.Inst.mSettlData = mSettlData; MJGameModel.Inst.mState = eMJRoomStatus.GAMEOVER; MJGameModel.Inst.mStartGameData.roomInfo.roomState = eRoomState.GAMEOVER;//改变房间状态 SetTimeout.add(1, ChangHandsCardsShow); SetTimeout.add(5, ShowSmallSettle); //清理离开游戏的玩家 if (mGameUI != null) { mGameUI.SetAllPlayerOutLine(); } }
/// <summary> /// 小结算 /// </summary> /// <param name="msg"></param> public void OnSettlement() { if (mModel.CurRecordDetailData == null) { return; } litSemResponse data = mModel.CurRecordDetailData.semData; if (data == null) { return; } CardsInfoStruct[] playerCardsDatas = MJGameModel.Inst.allPlayersCardsInfoStruct; bool isNoWinner = true;//是否是流局 for (int i = 0; i < playerCardsDatas.Length; i++) { if (playerCardsDatas[i] != null && playerCardsDatas[i].huList != null && playerCardsDatas[i].huList.Count > 0) { isNoWinner = false; break; } } if (isNoWinner) //流局 { mGameUI.ServerNoWinner(); } #region 小结算数据处理 MJGameSettlementInfo mSettlData = new MJGameSettlementInfo(); mSettlData.isEnd = true; mSettlData.isHu = !isNoWinner; mSettlData.settleContainer = new List <MJGameSettlementPlayerInfo>(); for (int i = 0; i < data.litSemList.Count; i++) { MJGameSettlementPlayerInfo oneSettlementPlayerInfo = new MJGameSettlementPlayerInfo(); int seatID = data.litSemList[i].seatId; PlayerInfoStruct onePData = MJGameModel.Inst.mRoomPlayers[seatID]; //玩家信息 CardsInfoStruct cdata = MJGameModel.Inst.allPlayersCardsInfoStruct[seatID]; //牌信息 oneSettlementPlayerInfo.seatId = seatID; oneSettlementPlayerInfo.userId = onePData.uId; oneSettlementPlayerInfo.nickName = onePData.nickName; oneSettlementPlayerInfo.score = data.litSemList[i].currScore; oneSettlementPlayerInfo.headUrl = onePData.headUrl; oneSettlementPlayerInfo.shoupai = data.litSemList[i].handList; oneSettlementPlayerInfo.peng = cdata.pengList; oneSettlementPlayerInfo.gang = cdata.gangList; oneSettlementPlayerInfo.huPai = cdata.huList; oneSettlementPlayerInfo.huDes = data.litSemList[i].huIntro; mSettlData.settleContainer.Add(oneSettlementPlayerInfo); } #endregion MJGameModel.Inst.mSettlData = mSettlData; mGameUI.GetChaJiaoData(data.flowSemList); }
public void InitOnePlayerCollectCards(MJPlayerBase player, CardsInfoStruct info) { if (info == null) { player.InitCollectCard(null); } else { player.InitCollectCard(info.hitList); } }
/// <summary> /// 初始化其他玩家牌 /// </summary> /// <param name="player"></param> /// <param name="info"></param> /// <param name="oinfo"></param> public void InitOtherPlayerCards(MJPlayerBase player, PlayerInfoStruct info, CardsInfoStruct oinfo) { //手牌 int cur = oinfo.isHasCurrCard ? 1 : 0; InitOnePlayerHandCards(player, null, oinfo.cardNum, cur); //打出的牌 InitOnePlayerCollectCards(player, oinfo); InitOnePlayerPengCard(player, oinfo); //胡牌 InitHuCard(player, oinfo); }
/// <summary> /// 初始化或刷新自己的牌 /// </summary> /// <param name="player"></param> /// <param name="info"></param> /// <param name="myinfo"></param> public void InitSelfPlayerCards(MJPlayerBase player, PlayerInfoStruct info, CardsInfoStruct myinfo, MJoptInfoData opt = null) { //手牌 SQDebug.Log(myinfo.currCard); InitOnePlayerHandCards(player, myinfo.handList, 0, myinfo.currCard); //打出的牌 InitOnePlayerCollectCards(player, myinfo); //碰的牌 InitOnePlayerPengCard(player, myinfo); //胡牌 if (opt != null) { bool zimo = false; if (opt.huType != null) { for (int i = 0; i < opt.huType.Length; i++) { if (opt.huType[i] == (int)eHuType.ZIMO) { zimo = true; } } } if (zimo) { InitHuCard(player, myinfo, (int)eHuType.ZIMO); } else { InitHuCard(player, myinfo); } } else { //胡牌 InitHuCard(player, myinfo); } }