コード例 #1
0
ファイル: SocketGame.cs プロジェクト: iuvei/newClient
    void PlayHu(MJPlayer player, GameOperPlayerHuSyn data)
    {
        Vector3 pos = player.handCardLayout.DragCard(data.card, Game.MJMgr.LastDropCard.gameObject);

        Game.MaterialManager.TurnOnHandCard();
        player.handCardLayout.PlayHu();
        Game.SoundManager.PlayHu(data.position);

        if (!PlayHuEffect(data.position))
        {
            EventDispatcher.DispatchEvent(MessageCommand.PlayEffect, data.position, "huUI_EF");
            GameObject eff = Game.PoolManager.EffectPool.Spawn("hu_EF");
            eff.transform.position = pos;
            Game.PoolManager.EffectPool.Despawn(eff, 3);
        }

        if (!data.skipHuSettle)
        {
            Game.Delay(3, () =>
            {
                Game.SoundManager.PlaySettleSound();
                Game.DialogMgr.PushDialog(UIDialog.SettleRoundDialog);
            });
        }
    }
コード例 #2
0
ファイル: SocketGame.cs プロジェクト: iuvei/newClient
    void PlayZimoHu(MJPlayer player, GameOperPlayerHuSyn data)
    {
        Game.MaterialManager.TurnOnHandCard();
        player.handCardLayout.PlayHu();

        Game.SoundManager.PlayWin();
        Vector3 pos = player.DragCard(data.card, true);

        if (!PlayHuEffect(data.position))
        {
            Game.SoundManager.PlayEffect(27);
            Game.SoundManager.PlayZimo(data.position);

            GameObject eff = Game.PoolManager.EffectPool.Spawn("zimou _EF");
            eff.transform.position = pos;
            Game.PoolManager.EffectPool.Despawn(eff, 5);
        }

        if (!data.skipHuSettle)
        {
            Game.Delay(3, () =>
            {
                Game.SoundManager.PlaySettleSound();
                Game.DialogMgr.PushDialog(UIDialog.SettleRoundDialog);
            });
        }
    }
コード例 #3
0
ファイル: RoomMgr.cs プロジェクト: gitshuaidong/MJ
 public static void Reset()
 {
     playerGamingSyn  = null;
     gameOperStartSyn = null;
     actionNotify     = null;
     huSyn            = null;
     finalSettleSyn   = null;
 }
コード例 #4
0
ファイル: SocketGame.cs プロジェクト: iuvei/newClient
    void OnGameOperPlayerHuSyn(GameOperPlayerHuSyn data)
    {
        string huInfo  = GetHuStr(data.resultType);
        string winInfo = GetHuStr(data.winType);

        Debug.LogFormat("===HuSyn:{0}[炮:{1}] card:{2} bao:[{3}] Hu:{4}/Win:{5}", (data.position < 0) ? "流局" : strs[data.position], (data.paoPosition < 0) ? "无" : strs[data.paoPosition], GetCardStr(data.card), GetCardStr(data.bao), huInfo, winInfo);

        RoomMgr.huSyn = data;

        if (RoomMgr.huSyn.resultType == MJUtils.HU_LiuJu)
        {
            Game.SoundManager.PlayFall();
            if (!data.skipHuSettle)
            {
                Game.Delay(3, () =>
                {
                    Game.SoundManager.PlaySettleSound();
                    Game.DialogMgr.PushDialog(UIDialog.SettleRoundDialog);
                });
            }
            return;
        }

        MJPlayer player = Game.MJMgr.GetPlayerByPosition(data.position);
        bool     isMy   = player.index == 0;

        if (data.resultType == MJUtils.HU_ShouPao)//收炮提前判断。只放特效,不用记录数据。
        {
            Game.SoundManager.PlayEffect(28);
            GameObject eff = Game.PoolManager.EffectPool.Spawn("shandian_EF");
            eff.transform.position = Game.MJMgr.LastDropCard.transform.position;
            Game.PoolManager.EffectPool.Despawn(eff, 5);
            player.MJHand.PlayShouPao(data.card, isMy);
            return;
        }

        List <GameOperPlayerSettle> list = data.detail;

        foreach (GameOperPlayerSettle s in list)
        {
            Debug.LogFormat("===OnGameOperPlayerHuSyn:{0} fanNum:{1} handcard:[{2}]", strs[s.position], s.fanNum, ToStr(s.handcard));

            if (s.position == data.position)
            {
                player.handCardLayout.Refresh(s.handcard);
            }
        }

        bool zimo = (data.paoPosition == -1 || data.paoPosition == data.position);

        if (zimo)
        {
            PlayZimoHu(player, data);
        }
        else
        {
            bool isPao = false;
            if (-1 != data.paoPosition)
            {
                Game.SoundManager.PlayEffect(28);
                MJPlayer   paoPlayer = Game.MJMgr.GetPlayerByPosition(data.paoPosition);
                GameObject eff       = Game.PoolManager.EffectPool.Spawn("shandian_EF");
                eff.transform.position = Game.MJMgr.LastDropCard.transform.position;
                Game.PoolManager.EffectPool.Despawn(eff, 5);

                isPao = paoPlayer.index == 0;
            }

            Game.Delay(1, () =>
            {
                bool isWin = player.index == 0;
                if (isWin)
                {
                    Game.SoundManager.PlayWin();
                }
                else if (isPao)
                {
                    Game.SoundManager.PlayLose();
                }

                PlayHu(player, data);
            });
        }
    }
コード例 #5
0
ファイル: SocketGame.cs プロジェクト: gitshuaidong/MJ
    //int[] wins = new int[] {
    //    MJUtils.HU_BaoZhongBao,
    //    MJUtils.HU_DaiLou,
    //    MJUtils.HU_GuaDaFeng,
    //    MJUtils.HU_HongZhong,
    //    MJUtils.HU_Hu,
    //    MJUtils.HU_KaiPaiZha,
    //    MJUtils.HU_MoBao
    //};
    //void _OnGameOperPlayerHuSyn(GameOperPlayerHuSyn data)
    //{
    //    string huInfo = GetHuStr(data.resultType);
    //    string winInfo = GetHuStr(data.winType);
    //    Debug.LogFormat("===HuSyn:{0}[炮:{1}] card:{2} bao:[{3}] Hu:{4}/Win:{5}", (data.position < 0) ? "流局" : strs[data.position], (data.paoPosition < 0) ? "无" : strs[data.paoPosition], GetCardStr(data.card), GetCardStr(data.bao), huInfo, winInfo);

    //    RoomMgr.huSyn = data;

    //    if (RoomMgr.huSyn.resultType != MJUtils.HU_LiuJu)
    //    {
    //        MJPlayer player = Game.MJMgr.GetPlayerByPosition(data.position);
    //        MjData pData = Game.MJMgr.MjData[data.position];

    //        bool zimo = (data.paoPosition == -1 || data.paoPosition == data.position);

    //        List<GameOperPlayerSettle> list = data.detail;
    //        foreach (GameOperPlayerSettle s in list)
    //        {
    //            Debug.LogFormat("===OnGameOperPlayerHuSyn:{0} fanNum:{1} handcard:[{2}]", strs[s.position], s.fanNum, ToStr(s.handcard));

    //            if (s.position == data.position)
    //            {
    //                player.handCardLayout.Refresh(s.handcard);
    //            }
    //        }

    //        if (zimo)
    //        {
    //            Game.SoundManager.PlayEffect(27);
    //            Game.SoundManager.PlayZimo(data.position);
    //            player.DragCard(data.card, true);
    //        }
    //        else
    //        {
    //            if (-1 != data.paoPosition)
    //            {
    //                Game.SoundManager.PlayEffect(28);
    //                MJPlayer paoPlayer = Game.MJMgr.GetPlayerByPosition(data.paoPosition);
    //                GameObject eff = Game.PoolManager.EffectPool.Spawn("shandian_EF");
    //                eff.transform.position = Game.MJMgr.LastDropCard.transform.position;
    //                Game.PoolManager.EffectPool.Despawn(eff, 2);
    //            }

    //            Game.SoundManager.PlayHu(data.position);
    //            player.handCardLayout.DragCard(data.card, Game.MJMgr.LastDropCard.gameObject);
    //        }

    //        Game.MaterialManager.TurnOnHandCard();
    //        player.handCardLayout.PlayHu();

    //        PlayHuEffect(data.position);

    //        bool isMy = player.index == 0;
    //        if (isMy)
    //        {
    //            Game.SoundManager.PlayWin();
    //        }
    //        else
    //        {
    //            if (data.paoPosition != -1)
    //            {
    //                MJPlayer paoPplayer = Game.MJMgr.GetPlayerByPosition(data.paoPosition);
    //                isMy = paoPplayer.index == 0;
    //                if (isMy)
    //                {
    //                    Game.SoundManager.PlayLose();
    //                }
    //            }
    //        }
    //    }
    //    else
    //    {
    //        Game.SoundManager.PlayFall();
    //    }

    //    if (!data.skipHuSettle)
    //    {
    //        Game.Delay(3, () =>
    //        {
    //            Game.SoundManager.PlaySettleSound();
    //            Game.DialogMgr.PushDialog(UIDialog.SettleRoundDialog);
    //            IsBusy = false;
    //        });
    //    }
    //}

    void OnGameOperPlayerHuSyn(GameOperPlayerHuSyn data)
    {
        string huInfo  = GetHuStr(data.resultType);
        string winInfo = GetHuStr(data.winType);

        Debug.LogFormat("===HuSyn:{0}[炮:{1}] card:{2} bao:[{3}] Hu:{4}/Win:{5}", (data.position < 0) ? "流局" : strs[data.position], (data.paoPosition < 0) ? "无" : strs[data.paoPosition], GetCardStr(data.card), GetCardStr(data.bao), huInfo, winInfo);

        RoomMgr.huSyn = data;

        if (RoomMgr.huSyn.resultType == MJUtils.HU_LiuJu)
        {
            Game.SoundManager.PlayFall();
            if (!data.skipHuSettle)
            {
                Game.Delay(3, () =>
                {
                    Game.SoundManager.PlaySettleSound();
                    Game.DialogMgr.PushDialog(UIDialog.SettleRoundDialog);
                });
            }
            return;
        }

        MJPlayer player = Game.MJMgr.GetPlayerByPosition(data.position);
        MjData   pData  = Game.MJMgr.MjData[data.position];
        List <GameOperPlayerSettle> list = data.detail;

        foreach (GameOperPlayerSettle s in list)
        {
            Debug.LogFormat("===OnGameOperPlayerHuSyn:{0} fanNum:{1} handcard:[{2}]", strs[s.position], s.fanNum, ToStr(s.handcard));

            if (s.position == data.position)
            {
                player.handCardLayout.Refresh(s.handcard);
            }
            ////////////////////////
            if (!RoomMgr.IsSingeRoom())
            {
                if (!RoomMgr.IsVipRoom())
                {
                    if (Game.MJMgr.MjData[s.position].player.coin + s.fanNum * Game.Instance.baseScore < 0)
                    {
                        Game.MJMgr.MjData[s.position].player.coin = 0;
                    }
                    else
                    {
                        Game.MJMgr.MjData[s.position].player.coin += s.fanNum * Game.Instance.baseScore;
                    }
                }
                else
                {
                    Game.MJMgr.MjData[s.position].player.score += s.fanNum;
                }
                EventDispatcher.DispatchEvent(MessageCommand.MJ_UpdatePlayPage);
            }
            ////////////////////////
        }

        bool zimo = (data.paoPosition == -1 || data.paoPosition == data.position);

        if (zimo)
        {
            PlayZimoHu(player, data);
        }
        else
        {
            bool isPao = false;
            if (-1 != data.paoPosition)
            {
                Game.SoundManager.PlayEffect(28);
                MJPlayer   paoPlayer = Game.MJMgr.GetPlayerByPosition(data.paoPosition);
                GameObject eff       = Game.PoolManager.EffectPool.Spawn("shandian_EF");
                eff.transform.position = Game.MJMgr.LastDropCard.transform.position;
                Game.PoolManager.EffectPool.Despawn(eff, 5);

                isPao = paoPlayer.index == 0;
            }

            Game.Delay(1, () =>
            {
                bool isWin = player.index == 0;
                if (isWin)
                {
                    Game.SoundManager.PlayWin();
                }
                else if (isPao)
                {
                    Game.SoundManager.PlayLose();
                }

                PlayHu(player, data);
            });
        }
    }