public void InitUserGameState(ISFSObject data) { var gdata = App.GetGameData <SssGameData>(); int seat = data.GetInt("seat"); SssPlayer panel = gdata.GetPlayer <SssPlayer>(seat, true); bool selfReadyState = data.ContainsKey("state") && data.GetBool("state"); panel.SetReadyStatue(selfReadyState); if (data.ContainsKey("isput")) { Dealer.FaPai(panel); //为玩家创建13张手牌 int isput = data.GetInt("isput"); if (isput > 0) { panel.MoveHandCardNoAnim(); } else { //播放等待动画 panel.RepositionCards(); panel.Waitting(); } } //比牌阶段,所有人直接显示所有手牌 else if (data.ContainsKey("playerinfo")) { var matchInfo = GetMatchInfoOnInitUserGameState(data); Dealer.FaPai(panel); panel.MoveHandCardNoAnim(); panel.ShowAllHandPoker(matchInfo); if (matchInfo.Special > (int)CardType.none) { panel.HandCardsType.SetSpecialMarkActive(true); panel.HandCardsType.ShowTotalScore(matchInfo.TtScore); } else { panel.GetGameInfoInitUser(matchInfo); } } //自己会有手牌,是选牌阶段 if (data.ContainsKey("cards")) { if (data.ContainsKey("isput") && data.GetInt("isput") == 0) { ChoiseMgr.ShowChoiseView(data); } } //比牌阶段初始化 if (data.ContainsKey("userscore")) { TurnRes.InitTurnResultInfo(data.GetSFSObject("userscore")); TurnRes.ShowAllResultItem(); } if (data.ContainsKey("score")) { int score = data.GetInt("score"); if (score > 0) { ResultMgr.WinSeats.Add(seat); panel.ShowResultLabel(score); } else if (score < 0) { ResultMgr.LoseSeats.Add(seat); panel.ShowResultLabel(score); } } }
public override void GameResponseStatus(int type, ISFSObject response) { var gdata = App.GetGameData <SssGameData>(); YxDebug.Log("Request == " + type); if (!App.GetRServer <SssjpGameServer>().HasGetGameInfo) { YxDebug.LogError("GameInfo还没有初始化完成!!"); return; } switch (type) { case GameRequestType.Cards: if (!gdata.IsPlayed) { gdata.IsPlaying = true; SettingMenu.SetRoomModelList(); } gdata.IsPlaying = true; SetChoiseModel(gdata.ChoiseModel); WeiXinInviteBtn.ChatInviteBtn.SetActive(false); //隐藏微信邀请按钮 OnGameStart(response); ClockCd.MoveClock(ClockParent); ClockCd.HaveWarning = true; DealPoker(response); if (gdata.IsBankerModel) { foreach (var user in gdata.PlayerList) { var player = (SssPlayer)user; player.SetBankerMarkActive(); } } gdata.CurRound++; if (gdata.IsRoomGame) { RoomInfo.UpdataCurRound(); //如果是开房模式,刷新房间数据 } break; case GameRequestType.Match: //停止选牌 StopAllCoroutines(); ClockCd.StopCountDown(); ChoiseMgr.HideChoiseView(); //隐藏选牌界面 //刷新玩家的手牌 foreach (var user in gdata.PlayerList) { var player = (SssPlayer)user; if (player.Info != null && player.IsReady) { Dealer.FaPai(player); } } //将玩家手牌恢复到正确的位置 ISFSArray playersInfo = response.GetSFSArray("playerinfo"); foreach (ISFSObject player in playersInfo) { int stopSeat = player.GetInt("seat"); SssPlayer panel = gdata.GetPlayer <SssPlayer>(stopSeat, true); Dealer.FaPai(panel); panel.StopWaitting(); panel.MoveHandCardNoAnim(); } List <UserMatchInfo> handCardsList = GetMatchInfoList(response); MatchMgr.MatchCards(handCardsList); //比牌 HistoryMgr.GetHistoryInfo(handCardsList); //添加历史记录 break; case GameRequestType.FinishChoise: int choiseSeat = response.GetInt("seat"); SssPlayer fcPanel = gdata.GetPlayer <SssPlayer>(choiseSeat, true); fcPanel.FinishChoiseCards(); break; case GameRequestType.Result: ResultMgr.ResultFlyChips(response); HistoryMgr.AddHistoryInfo(response); if (response.ContainsKey("banker")) { gdata.BankerSeat = response.GetInt("banker"); } App.GameData.GStatus = YxFramwork.Enums.YxEGameStatus.Normal; break; case GameRequestType.AllowReady: foreach (var user in gdata.PlayerList) { var player = (SssPlayer)user; player.OnAllowReady(); } Reset(); break; case GameRequestType.CouldStart: if (App.GameData.SelfSeat == 0) { App.GetGameData <SssGameData>().GetPlayer <SssPlayer>().OnCouldStart(); } break; } }
public void InitUserGameState(ISFSObject data) { var gdata = App.GetGameData <SssGameData>(); if (data.ContainsKey("isput")) { SssPlayer user = gdata.GetPlayer <SssPlayer>(data.GetInt("seat"), true); Dealer.FaPai(user); //为玩家创建13张手牌 int isput = data.GetInt("isput"); if (isput > 0) { user.MoveHandCardNoAnim(); } else { //播放等待动画 user.RepositionCards(); user.Waitting(); } } //比牌阶段,所有人直接显示所有手牌 else if (data.ContainsKey("duns")) { SssPlayer user = gdata.GetPlayer <SssPlayer>(data.GetInt("seat"), true); Dealer.FaPai(user); user.MoveHandCardNoAnim(); ISFSObject duns = data.GetSFSObject("duns"); ISFSArray dunsInfo = duns.GetSFSArray("duninfo"); var cardsValList = dunsInfo.Cast <ISFSObject>().SelectMany(dun => dun.GetIntArray("cards")).ToList(); user.ShowAllHandPoker(cardsValList); } //自己会有手牌,是选牌阶段 if (data.ContainsKey("cards")) { if (data.ContainsKey("isput") && data.GetInt("isput") == 0) { ChoiseMgr.ShowChoiseView(data); } } //比牌阶段初始化 if (data.ContainsKey("userscore")) { TurnRes.InitTurnResultInfo(data.GetSFSObject("userscore")); TurnRes.ShowAllResultItem(); } if (data.ContainsKey("score")) { int seat = data.GetInt("seat"); int score = data.GetInt("score"); if (score > 0) { ResultMgr.WinSeats.Add(seat); gdata.GetPlayer <SssPlayer>(seat, true).ShowResultLabel(score); } else if (score < 0) { ResultMgr.LoseSeats.Add(seat); gdata.GetPlayer <SssPlayer>(seat, true).ShowResultLabel(score); } } }