// [ProtoMember(1)] // public List<SingleSettlementInfo> SingleSettlementInfos; // // [ProtoMember(2)] // public EndType IsWinner { get; set; } // // /// <summary> 翻开的牌 </summary> // [ProtoMember(3)] // public List<Card> OpenCards { get; set; } // // /// <summary> 推导出的牌 </summary> // [ProtoMember(4)] // public List<Card> OtherCards { get; set; } GameEndActionResp GetEndResp() { GameEndActionResp endResp = new GameEndActionResp(); endResp.Type = RoundEndType.RoundEnd; endResp.SingleSettlement = new SingleSettlementResp(); endResp.SingleSettlement.SingleSettlementInfos = new List <SingleSettlementInfo> (); //判断输赢 bool isHu = false; for (int i = 0; i < responsePack.endList.Count; i++) { RoundMessageRecord roundRecord = responsePack.endList[i]; if (roundRecord.Name == mUIMainModel.PlayerInfo.NickName) { isHu = roundRecord.IsHu; } } endResp.SingleSettlement.IsWinner = isHu ? EndType.Victory : EndType.Fail; //??? 流局的怎么搞 for (int i = 0; i < responsePack.endList.Count; i++) { SingleSettlementInfo settleInfo = GetSettleInfo(responsePack.endList[i]); endResp.SingleSettlement.SingleSettlementInfos.Add(settleInfo); } return(endResp); }
public void Refresh(SingleSettlementInfo msg) { Initialize(); this.mRoundMessage = msg; if (mRoundMessage != null) { SetVisible(true); UserInfo temp = null; if (GameMgr.Instance.isFromRecord) { temp = mUIGameModel.GetLiamUser(mRoundMessage.UserID); } else { temp = mUIGameModel.GetUser(mRoundMessage.UserID); } if (temp != null) { mZhuangIcon.gameObject.SetVisible(temp.IsZhuang); mOwnerIcon.gameObject.SetVisible(temp.IsOwner); AsyncImageDownload.Instance.SetAsyncImage(temp.HeadUrl, mHeadIcon); } mLabelName.text = mRoundMessage.Name; mLabelDes.text = mRoundMessage.IsHu ? mRoundMessage.HuFlag : string.Empty; mCurrCardItem.Refresh(mRoundMessage.CurCard, DirectionType.bottom); mHandCardItem.Refresh(mRoundMessage.HandCards, DirectionType.bottom); if (!mRoundMessage.HandCardGroups.IsNullOrEmpty()) { for (int i = 0; i < mRoundMessage.HandCardGroups.Count; i++) { mHandCradGroupItems[i].Refresh(mRoundMessage.HandCardGroups[i].Cards, DirectionType.bottom); } } mLabelTotalScore.text = mRoundMessage.Scores.TryGetValue(ScoreConst.TotalScore).ToString(); mLabelHupai.text = mRoundMessage.Scores.TryGetValue(ScoreConst.HuScore).ToString(); mLabelJingPai.text = mRoundMessage.Scores.TryGetValue(ScoreConst.BaoCardScore).ToString(); mHuSprite.gameObject.SetVisible(mRoundMessage.IsHu); mGunnerSprite.gameObject.SetVisible(mRoundMessage.Flag == 1); } else { SetVisible(false); } }
SingleSettlementInfo GetSettleInfo(RoundMessageRecord record) { SingleSettlementInfo settleInfo = new SingleSettlementInfo(); //Debug.Log ("############ "+record.CurCard); settleInfo.UserID = record.UserID; settleInfo.Name = record.Name; settleInfo.IsHu = record.IsHu; // if (string.IsNullOrEmpty(record.HandCardGroups) || record.CurCard == "null") { settleInfo.HandCardGroups = null; } else { settleInfo.HandCardGroups = LitJson.JsonMapper.ToObject <List <CardGroup> >(record.HandCardGroups); } // settleInfo.HandCards = LitJson.JsonMapper.ToObject <List <Card> > (record.HandCards); // if (string.IsNullOrEmpty(record.CurCard) || record.CurCard == "null") { settleInfo.CurCard = null; } else { settleInfo.CurCard = LitJson.JsonMapper.ToObject <Card> (record.CurCard); } settleInfo.Scores = LitJson.JsonMapper.ToObject <Dictionary <string, int> > (record.Scores); settleInfo.TotalScore = record.TotalScore; settleInfo.HuFlag = record.HuFlag; settleInfo.Flag = record.Flag; return(settleInfo); }