Example #1
0
    /// <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;
    }
Example #2
0
    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);
            }
        }
    }
Example #3
0
 /// <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);
     }
 }
Example #4
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 #5
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 #6
0
 public void InitOnePlayerCollectCards(MJPlayerBase player, CardsInfoStruct info)
 {
     if (info == null)
     {
         player.InitCollectCard(null);
     }
     else
     {
         player.InitCollectCard(info.hitList);
     }
 }
Example #7
0
    /// <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);
    }
Example #8
0
    /// <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);
        }
    }