void UpdateGameClean(LocalNotification e) { ArgsGameCleanInfo msg = e.param as ArgsGameCleanInfo; if (msg != null) { Debug.Log("GameClean:" + msg.playerId + "Rank:" + msg.rank); ShowCleanPlayer(msg); } }
void RefreshAllData(LocalNotification e) { SelfCardsManager.Instance.ClearAllSelectCards(); ArgsRefreshData args = e.param as ArgsRefreshData; if (args != null) { var roomInfo = RoomInfo.Instance; InitLicense(); InitSelfData(); //检查亮牌 // ReConnectShowLightCard(); //刷新其他玩家剩余牌数 IEnumerator <MsgPlayerInfo> iPlayersCardLastNum = args.playerInfoList.GetEnumerator(); while (iPlayersCardLastNum.MoveNext()) { var posType = roomInfo.GetPlayerPosById(iPlayersCardLastNum.Current.player_id); var lastCardCount = (int)iPlayersCardLastNum.Current.remaindCarsNum; // playerRestCardNum[posType] = lastCardCount; // SetRestCardNum(lastCardCount, posType); } //刷新最后三轮牌的数据 IEnumerator <MsgLast3Card> iPlayersLast3Card = args.last3CardList.GetEnumerator(); while (iPlayersLast3Card.MoveNext()) { var posType = roomInfo.GetPlayerPosById(iPlayersLast3Card.Current.player_id); if (posType != EPlayerPositionType.ENull) { // if (!IsGameOverPlayer(args.gameOverInfoList, iPlayersLast3Card.Current.player_id)) ; { // RefreshPlayerCards(posType, iPlayersLast3Card.Current.card, false); } } } //刷新所有玩家头游状态 if (args.gameOverInfoList != null && args.gameOverInfoList.Count > 0) { for (int i = 0; i < args.gameOverInfoList.Count; i++) { var gameOverItem = args.gameOverInfoList[i]; PlayingGameInfo.Instance.AddLastCleanPlayerDic(roomInfo.GetPlayerPosById(gameOverItem.player_id)); ArgsGameCleanInfo cleanArgs = new ArgsGameCleanInfo(); cleanArgs.playerId = gameOverItem.player_id; cleanArgs.rank = gameOverItem.rank; NotificationCenter.Instance().PostDispatchEvent((uint)ENotificationMsgType.EGameClean, cleanArgs); } } CheckShowTeamerCards(args.djCards); //展示对家的牌 } }
void UpdateGameClean(LocalNotification e) { ArgsGameCleanInfo msg = e.param as ArgsGameCleanInfo; if (msg != null) { if (msg.playerId == PlayerInfo.Instance.mPlayerPid) { Debug.Log("GameClean:" + msg.playerId + "Rank:" + msg.rank); CleanSelfGameStatus(msg.rank); } } }
void ShowCleanPlayer(ArgsGameCleanInfo msg) { if (msg != null) { //这边加一个暂停 ulong playerId = msg.playerId; MsgGuandanGameRank rank = msg.rank; if (playerId != PlayerInfo.Instance.mPlayerPid) { CleanOtherGameStatus(RoomInfo.Instance.GetPlayerPositionType((uint)playerId), rank); } } }
void RevcCanPutOutCard(MsgGlobal msg) { SelfCardsManager.Instance.initTonghuashunTip(); MsgGuandanRoom data = msg.guandan_room; NotificaPlayerPut(data.action.action_id, data.action.last_operation_pid, data.action.action_type, data.ybq); //玩家出牌箭头指示 (更新玩家出牌状态) //游戏中胜利是否判断 var gameOverInfo = data.game_over_info; bool isGameOver = gameOverInfo.Count > 0; if (isGameOver) { PlayingGameInfo.Instance.mGameOverInfoList = gameOverInfo; //用于记录 ,临时退出 } PlayingGameInfo.Instance.mPlayingStatus = EPlayingStatus.EBureau; var selfId = PlayerInfo.Instance.mPlayerPid; ArgsCanputOutCard args = new ArgsCanputOutCard(); args.playerId = (uint)data.action.action_id; //当前出牌玩家id args.cards = data.action.last_card; //出牌信息 args.putOutType = data.action.last_ct; //玩家出牌类型 args.lastPlayerId = (uint)data.action.last_action_id; args.actionType = data.action.action_type; //玩家是否是借风之类 args.lastOperationPId = data.action.last_operation_pid; // 上一次打出牌的玩家id(非不出) args.sendCardInfo = data.send_card_info; // 每个玩家都要对比手牌数量 args.DjCards = data.djCards; SelfCardsManager.Instance.mIsRecevCardTip = false; SelfCardsManager.Instance.mMsgAction = data.action; NotificationCenter.Instance().PostDispatchEvent((uint)ENotificationMsgType.ECanPutOutCard, args); //结算(出头游) var gameCleanInfo = data.player_clean_info; if (gameCleanInfo != null) { Debug.Log("=========玩家" + gameCleanInfo.player_id + "胜利" + gameCleanInfo.rank + "游"); var posType = RoomInfo.Instance.GetPlayerPositionType(gameCleanInfo.player_id); PlayingGameInfo.Instance.AddLastCleanPlayerDic(posType); ArgsGameCleanInfo e = new ArgsGameCleanInfo(); e.playerId = gameCleanInfo.player_id; e.rank = gameCleanInfo.rank; NotificationCenter.Instance().PostDispatchEvent((uint)ENotificationMsgType.EGameClean, e); } if (isGameOver) { ArgsMsgGameOverMsg argsGameOver = new ArgsMsgGameOverMsg(); for (int i = 0; i < gameOverInfo.Count; i++) { var itemInfo = gameOverInfo[i]; argsGameOver.mGameOverList.Add(itemInfo); if (itemInfo.player_id == selfId) //是自己的情况,计算加分 { PlayingGameInfo.Instance.mScore += (int)itemInfo.goal; } else { RoomInfo.Instance.GetPlayerInfoById(itemInfo.player_id).goal += (int)itemInfo.goal; } } //展示最后出的手牌 if (data.game_over_card != null) { var lastCard = data.game_over_card.send_card_info; if (lastCard != null && lastCard.Count > 0) { for (int i = 0; i < lastCard.Count; i++) { argsGameOver.mShowLastCard.Add(lastCard[i]); } } } argsGameOver.mIsTotalOver = PlayingGameInfo.Instance.mGameInfo.game_index == RoomInfo.Instance.mRoom.game_num; NotificationCenter.Instance().PostDispatchEvent((uint)ENotificationMsgType.EGameBureauOver, argsGameOver); } }