Example #1
0
 public int TurnFixedTime;//操作固定时间
 public void ResetData()
 {
     msgQueue.Clear();
     if (mStartGameData.roomInfo.currGameCount < mStartGameData.roomInfo.maxGameCount)
     {
         mStartGameData.roomInfo.currGameCount++;
     }
     if (allPlayersCardsInfoStruct != null)
     {
         for (int i = 0; i < allPlayersCardsInfoStruct.Length; i++)
         {
             if (allPlayersCardsInfoStruct[i] == null)
             {
                 continue;
             }
             allPlayersCardsInfoStruct[i].ClearAllData();
         }
     }
     //mLitSem = null;
     mSettlData = null;
     mCurSlectCardList.Clear();
     mySelfCards.Clear();
     isHu  = false;
     eFixe = new int[2] {
         0, 0
     };
     isHasFixeCard       = true;
     isMyHit             = false;
     hitCardCanHuList    = null;
     hasCanHuListCards   = null;
     mSycOptListResponse = null;
     OptCachInChange     = null;
     AllPlayerEfixe      = null;
     mZhuangSeatId       = 0;
 }
Example #2
0
    /// <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();
        }
    }
Example #3
0
    /// <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);
    }
Example #4
0
 /// <summary>
 /// 小结算
 /// </summary>
 /// <param name="info"></param>
 private void ServerSettlement(MJGameSettlementInfo info)
 {
     if (mGameSettlementView == null)
     {
         mGameSettlementView = GetWidget <MJGameSettlementView>("Windows/Majiang/GameUI/GameSettlementView", transform);
     }
     mGameSettlementView.gameObject.SetActive(true);
     mGameSettlementView.SetData(info, MJGameModel.Inst.mMaxMaxMul);
     mGameSettlementView.SetBackBtnShow(OnBackClick);
 }
Example #5
0
    private CallBack mBackClickCall;//返回点击回调



    public void SetData(MJGameSettlementInfo info, int maxFanshu, bool isshowBtn = true)
    {
        mInfo = info;
        mContinueBtn.gameObject.SetActive(isshowBtn);
        //mBackBtn.gameObject.SetActive(false);
        mShareBtn.gameObject.SetActive(isshowBtn);
        if (info.settleContainer != null && info.settleContainer != null)
        {
            int        len   = info.settleContainer.Count;
            int        count = mGrid.transform.childCount;
            GameObject obj;
            float      maxPoint = -10000000f;
            for (int i = 0; i < len; i++)
            {
                if (info.settleContainer[i].score > maxPoint)
                {
                    maxPoint = info.settleContainer[i].score;
                }
            }
            bool isBigWinner = false;//是否是大赢家

            for (int i = 0; i < len; i++)
            {
                if (i < count)
                {
                    obj = mGrid.transform.GetChild(i).gameObject;
                }
                else
                {
                    obj = NGUITools.AddChild(mGrid.gameObject, mItem);
                }
                obj.SetActive(true);
                isBigWinner = maxPoint == info.settleContainer[i].score && maxPoint > 0 ? true : false;
                obj.GetComponent <MJGameSettlementItem>().SetData(info.settleContainer[i], 0, isBigWinner);
            }
            mGrid.Reposition();
        }
    }
Example #6
0
 public void WaitSecond(MJGameSettlementInfo data)
 {
     if (mGameUI == null || data == null)
     {
         return;
     }
     mModel.mStartGameData.roomInfo.roomState = eRoomState.READY;
     mGameUI.ServerSettlement(data);
     mGameUI.ReSetUI();
     mModel.ResetData();
     if (data.settleContainer != null)
     {
         MJGameSettlementPlayerInfo p;
         for (int i = 0; i < data.settleContainer.Count; i++)
         {
             p = data.settleContainer[i];
             //mModel.mPlayerdata[p.seatId - 1].mPlayerInfo.score += p.score;
             mGameUI.SetScore(p.seatId, MJGameModel.Inst.mRoomPlayers[p.seatId].gold, p.score);
         }
     }
     mModel.mCurPlayCount++;
     mGameUI.SetPlayNum(mModel.mCurPlayCount, true); //设置局数显示
     mGameUI.SetLeftCardNum(0, false);               //隐藏剩余牌数量
 }