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); }); } }
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); }); } }
public static void Reset() { playerGamingSyn = null; gameOperStartSyn = null; actionNotify = null; huSyn = null; finalSettleSyn = null; }
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); }); } }
//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); }); } }