コード例 #1
0
ファイル: RoomMgr.cs プロジェクト: isoundy000/shmj3d
    public HuPushInfo updateHu(JsonObject data)
    {
        HuPushInfo info = JsonUtility.FromJson <HuPushInfo>(data.ToString());

        seats[info.seatindex].hued = true;
        return(info);
    }
コード例 #2
0
ファイル: GameManager.cs プロジェクト: isoundy000/shmj3d
    public void Hu(HuPushInfo info, Action cb)
    {
        int seat = info.seatindex;

        //MainViewMgr.GetInstance().showAction (seat, "hu");
        //AudioManager.GetInstance().PlayEffectAudio("hu");
        hideChupai();
        DHM_CardManager cm = PlayerManager.GetInstance().getCardManager(seat);

        SwitchTo(seat);
        cm.HuPai(info, cb);
    }
コード例 #3
0
ファイル: DHM_CardManager.cs プロジェクト: isoundy000/shmj3d
 public void HuPai(HuPushInfo info, Action cb)
 {
     _handCardMgr.HuPai(info, cb);
 }
コード例 #4
0
    void InitHandler()
    {
        NetMgr       net = NetMgr.GetInstance();
        RoomMgr      rm  = RoomMgr.GetInstance();
        PomeloClient pc  = net.pc;

        pc.on("login_result", data => {
            Debug.Log("login_result");

            object ob;
            if (!data.TryGetValue("errcode", out ob))
            {
                return;
            }

            int ret = Convert.ToInt32(ob);
            if (ret != 0)
            {
                Debug.Log("login_result ret=" + ret);
                return;
            }

            JsonObject room = (JsonObject)data["data"];

            rm.updateRoom(room);

            DispatchEvent("game_reset");
        });

        pc.on("login_finished", data => {
            Debug.Log("login_finished");

            string table = "04.table3d";
            string name  = SceneManager.GetActiveScene().name;

            if (name != table)
            {
                mHandlerMap.Clear();
                LoadingScene.LoadNewScene(table);
            }
            else
            {
                if (rm.isPlaying())
                {
                    net.send("ready");
                }
            }
        });

        pc.on("exit_result", data => {
            string reason = (string)data["reason"];

            if (reason == "kick")
            {
                GameAlert.GetInstance().show("您已被管理员请出房间", () => {
                    GameManager.GetInstance().exit();
                });
            }
            else if (reason == "request")
            {
                GameManager.GetInstance().exit();
            }
        });

        pc.on("exit_notify_push", data => {
            int uid       = Convert.ToInt32(data["value"]);
            int seatindex = rm.userExit(uid);

            DispatchEvent("user_state_changed", seatindex);
        });

        pc.on("dispress_push", data => {
            GameManager.GetInstance().exit();
        });

        pc.on("new_user_comes_push", data => {
            int seatindex = rm.newUserCome(data);

            DispatchEvent("user_state_changed", seatindex);
        });

        pc.on("user_state_push", data => {
            int seatindex = rm.updateUser(data);

            DispatchEvent("user_state_changed", seatindex);
        });

        pc.on("game_wait_maima_push", data => {
            rm.updateMaima(data);

            DispatchEvent("game_wait_maima");
        });

        pc.on("game_maima_push", data => {
            rm.updateMaima(data);

            DispatchEvent("game_maima");
        });

        pc.on("user_ready_push", data => {
            int seatindex = rm.updateUser(data);

            DispatchEvent("user_state_changed", seatindex);
        });

        pc.on("game_dice_push", data => {
            rm.updateState(data);

            DispatchEvent("game_dice");
        });

        pc.on("game_holds_push", data => {
            Debug.Log("get game_holds_push");

            int si = rm.updateSeat(data);
            DispatchEvent("game_holds", si);
        });

        pc.on("game_holds_len_push", data => {
            Debug.Log("get game_holds_len_push");

            int si = rm.updateSeat(data);

            DispatchEvent("game_holds_len", si);
        });

        pc.on("game_state_push", data => {
            rm.updateState(data);

            DispatchEvent("game_state");
        });

        pc.on("game_begin_push", data => {
            Debug.Log("get game_begin_push");

            rm.newRound();
            rm.updateState(data);

            foreach (PlayerInfo p in rm.players)
            {
                p.ready = false;
                DispatchEvent("user_state_changed", p.seatindex);
            }

            DispatchEvent("game_begin");
        });

        pc.on("game_playing_push", data => {
            Debug.Log("get game_playing_push");
            rm.updateState(data);

            DispatchEvent("game_playing");
        });

        pc.on("game_sync_push", data => {
            Debug.Log("get game_sync_push");

            if (!data.ContainsKey("pseudo"))
            {
                rm.updateState(data);
                rm.updateSeats((JsonArray)data["seats"]);
            }

            DispatchEvent("user_hf_updated");
            DispatchEvent("game_sync");
        });

        pc.on("hangang_notify_push", data => {
            int seatindex = Convert.ToInt32(data["seatindex"]);
            DispatchEvent("hangang_notify", seatindex);
        });

        pc.on("game_action_push", data => {
            Debug.Log("get game_action_push");
            rm.updateAction(data);

            DispatchEvent("game_action");
        });

        pc.on("game_chupai_push", data => {
            Debug.Log("get game_chupai_push");
            rm.updateState(data);

            ChupaiPush cp = JsonUtility.FromJson <ChupaiPush> (data.ToString());
            rm.updateLimit(cp.turn, cp.limit);

            if (cp.bg == true)
            {
                return;
            }

            DispatchEvent("game_turn_change");
        });

        pc.on("game_num_push", data => {
            rm.updateRoomInfo(data);

            DispatchEvent("game_num");
        });

        pc.on("game_over_push", data => {
            rm.updateOverInfo(data);

            DispatchEvent("game_over");
        });

        pc.on("mj_count_push", data => {
            rm.updateState(data);

            if (data.ContainsKey("bg"))
            {
                return;
            }

            DispatchEvent("mj_count");
        });

        pc.on("hu_push", data => {
            HuPushInfo info = rm.updateHu(data);

            if (info.bg)
            {
                return;
            }

            DispatchEvent("hupai", info);
        });

        pc.on("game_chupai_notify_push", data => {
            Debug.Log("get game_chupai_notify_push");
            ActionInfo info = rm.doChupai(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("game_chupai_notify", info);
        });

        pc.on("game_hf_push", data => {
            rm.updateFlowers(data);

            Debug.Log("get game_hf_push");

            DispatchEvent("user_hf_updated");
        });

        pc.on("game_af_push", data => {
            ActionInfo info = rm.doAddFlower(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("user_hf_updated", info);
        });

        pc.on("game_mopai_push", data => {
            Debug.Log("get game_mopai_push");
            ActionInfo info = rm.doMopai(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("game_mopai", info);
        });

        pc.on("guo_notify_push", data => {
            Debug.Log("get guo_notify_push");
            ActionInfo info = rm.doGuo(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("guo_notify", info);
        });

        pc.on("guo_result", data => {
            Debug.Log("get guo_result");
            DispatchEvent("guo_result");
        });

        pc.on("peng_notify_push", data => {
            ActionInfo info = rm.doPeng(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("peng_notify", info);
        });

        pc.on("chi_notify_push", data => {
            ActionInfo info = rm.doChi(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("chi_notify", info);
        });

        pc.on("gang_notify_push", data => {
            GangInfo info = rm.doGang(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("gang_notify", info);
        });

        pc.on("ting_notify_push", data => {
            TingInfo info = rm.doTing(data);

            if (info.bg == true)
            {
                return;
            }

            DispatchEvent("ting_notify", info.seatindex);
        });

        pc.on("chat_push", data => {
            ChatInfo info = JsonUtility.FromJson <ChatInfo>(data.ToString());

            DispatchEvent("chat", info);
        });

        pc.on("quick_chat_push", data => {
            QuickChatInfo info = JsonUtility.FromJson <QuickChatInfo>(data.ToString());

            DispatchEvent("quick_chat_push", info);
        });

        pc.on("emoji_push", data => {
            EmojiPush info = JsonUtility.FromJson <EmojiPush>(data.ToString());
            DispatchEvent("emoji_push", info);
        });

        pc.on("demoji_push", data => {
            Debug.Log("get demoji_push");
            DEmojiPush info = JsonUtility.FromJson <DEmojiPush>(data.ToString());
            DispatchEvent("demoji_push", info);
        });

        pc.on("dissolve_notice_push", data => {
            DissolveInfo dv = JsonUtility.FromJson <DissolveInfo>(data.ToString());
            rm.dissolve     = dv;

            DispatchEvent("dissolve_notice", dv);
        });

        pc.on("dissolve_done_push", data => {
            Debug.Log("dissolve_done_push");
            DispatchEvent("dissolve_done");
        });

        pc.on("dissolve_cancel_push", data => {
            Debug.Log("dissolve_cancel_push");

            DissolveCancel dc = JsonUtility.FromJson <DissolveCancel>(data.ToString());

            DispatchEvent("dissolve_cancel", dc);
        });

        pc.on("voice_msg_push", data => {
            VoiceMsgPush vm = JsonUtility.FromJson <VoiceMsgPush>(data.ToString());
            DispatchEvent("voice_msg", vm);
        });

        pc.on("start_club_room", data => {
        });

        pc.on("club_room_updated", data => {
            DispatchEvent("club_room_updated", data);
        });

        pc.on("clu_room_removed", data => {
            DispatchEvent("clu_room_removed", data);
        });

        pc.on("club_message_notify", data => {
            ClubMessageNotify ret = JsonUtility.FromJson <ClubMessageNotify>(data.ToString());

            sclub_message_notify = ret;

            DispatchEvent("club_message_notify", ret);
        });

        pc.on("sys_message_updated", data => {
            DispatchEvent("sys_message_updated", data);
        });

        pc.on("recommend_room_updated", data => {
            Debug.Log("recommend_room_updated");
            DispatchEvent("recommend_room_updated", data);
        });
    }
コード例 #5
0
    IEnumerator _HuPai(HuPushInfo info, Action cb)
    {
        bool       myself = isMyself();
        bool       zimo   = info.iszimo;
        int        layer  = myself ? LayerMask.NameToLayer("Self") : LayerMask.NameToLayer("ZhuoPai");
        List <int> holds  = info.holds;

        holds.Sort((a, b) => a - b);

        if (!myself)
        {
            for (int i = 0; i < _handCardList.Count && i < holds.Count; i++)
            {
                HandCardItem item = _handCardList [i];

                int          id   = holds [i];
                GameObject   obj  = ResourcesMgr.GetInstance().LoadMJ(id);
                HandCardItem card = new HandCardItem(id, obj);
                obj.layer = layer;
                obj.tag   = tagValue;
                obj.transform.SetParent(_HandCardPlace);

                obj.transform.localRotation = item.getObj().transform.localRotation;
                obj.transform.localPosition = item.getObj().transform.localPosition;

                _handCardList [i] = card;
                item.destroy();
            }

            foreach (HandCardItem item in _handCardList)
            {
                item.setLayer("ZhuoPai");
            }
        }

        if (_MoHand != null)
        {
            _MoHand.destroy();
        }

        if (true)
        {
            int        id  = info.hupai;
            GameObject obj = ResourcesMgr.GetInstance().LoadMJ(id);
            _MoHand   = new HandCardItem(id, obj);
            obj.layer = layer;
            obj.tag   = tagValue;
            obj.transform.SetParent(_MoHandPos);
            obj.transform.rotation = _MoHandPos.rotation;
            obj.transform.position = _MoHandPos.TransformPoint(0.0731f * offSetX, 0, 0);
        }

        _MoHand.setInteractable(false, false);

        bool anim   = false;
        bool replay = ReplayMgr.GetInstance().isReplay();

        if (!myself && !replay)
        {
            _MoHandPos.transform.Translate(0, 0, 0.04f);
            _MoHandPos.transform.Rotate(-90, 0, 0);
            anim = true;
        }

        if (anim)
        {
            Transform  huHandSpawn = this.transform.parent.Find("HandSpawn");
            GameObject huHand      = ResourcesMgr.mInstance.InstantiateGameObjectWithType("HupaiHand", ResourceType.Hand);
            huHand.transform.rotation = huHandSpawn.rotation;
            huHand.transform.position = huHandSpawn.position;
            huHand.GetComponent <DHM_HandAnimationCtr> ().huPaiEvent += HuPaiEventHandle;
        }

        if (!zimo)
        {
            DHM_RecyleHandCardManager.playHu();
        }
        else
        {
            Transform trans = _MoHand.getObj().transform;

            if (!myself)
            {
                GameObject ob = Instantiate(Resources.Load("Prefab/Meishu/fx_hu"), trans) as GameObject;
                Transform  ts = ob.transform;
                ts.localPosition = new Vector3(0, 0.24f, 0.13f);
            }
        }

        _MoHand.setHu();
        yield return(new WaitForSeconds(1.0f));

/*
 *              if (huPaiSpawn == null)
 *          huPaiSpawn = this.transform.parent.Find("HuPaiSpwan");
 *
 *      GameObject effectObj = Instantiate(_huEffect);
 *      effectObj.SetActive(true);
 *      effectObj.transform.position = huPaiSpawn.position;
 *
 *              GameObject huCard = ResourcesMgr.GetInstance ().LoadMJ (id);
 *      huCard.transform.rotation = huPaiSpawn.rotation;
 *      huCard.transform.position = huPaiSpawn.position;
 *      huCard.transform.SetParent(huPaiSpawn);
 */

        AudioManager.GetInstance().PlayEffectAudio("hu");
        MainViewMgr mm = MainViewMgr.GetInstance();

        if (zimo)
        {
            mm.showAction(seatindex, "zimo");
        }
        else
        {
            mm.showAction(seatindex, "hu");
            if (info.target >= 0)
            {
                mm.showAction(info.target, "dianpao");
            }
        }

        yield return(new WaitForSeconds(4.0f));

        cb();
    }
コード例 #6
0
 public void HuPai(HuPushInfo info, Action cb)
 {
     StartCoroutine(_HuPai(info, cb));
 }
コード例 #7
0
ファイル: MainViewMgr.cs プロジェクト: isoundy000/shmj3d
    void InitEventHandlers()
    {
        GameMgr gm = GameMgr.GetInstance();
        RoomMgr rm = RoomMgr.GetInstance();

        gm.AddHandler("mj_count", data => {
            mjcnt.text = rm.state.numofmj + "张";
        });

        gm.AddHandler("game_num", data => {
            //gamenum.text = "第" + rm.info.numofgames + "局(" + rm.conf.maxGames + ")";
            gamenum.text = "[D82828]" + rm.info.numofgames + "[FFFFFF]/" + rm.conf.maxGames + "局";
        });

        gm.AddHandler("new_user", data => {
            InitSingleSeat((int)data);
        });

        gm.AddHandler("user_state_changed", data => {
            refreshBtns();
            InitSingleSeat((int)data);
        });

        gm.AddHandler("game_begin", data => {
            enablePrepare(false);
            refreshBtns();
            InitSeats();
        });

        gm.AddHandler("game_sync", data => {
            enablePrepare(false);
            refreshBtns();
            InitSeats();
            mjcnt.text = rm.state.numofmj + "张";
            //gamenum.text = "第" + rm.info.numofgames + "局(" + rm.conf.maxGames + ")";
            gamenum.text = "[D82828]" + rm.info.numofgames + "[FFFFFF]/" + rm.conf.maxGames + "局";
        });

        gm.AddHandler("hupai", data => {
            HuPushInfo info = (HuPushInfo)data;
            InitSingleSeat(info.seatindex);
        });

        gm.AddHandler("game_num", data => {
            refreshBtns();
        });

        gm.AddHandler("game_state", data => {
            refreshBtns();
            InitSeats();
        });

        gm.AddHandler("ting_notify", data => {
            InitSingleSeat((int)data);
        });

        gm.AddHandler("user_ready", data => {
            InitSingleSeat((int)data);
        });

        gm.AddHandler("chat", data => {
            ChatInfo info = (ChatInfo)data;

            chat(info.sender, info.content);
        });

        gm.AddHandler("voice_msg", data => {
            voice((VoiceMsgPush)data);
        });

        gm.AddHandler("quick_chat_push", data => {
            QuickChatInfo info = (QuickChatInfo)data;
            quickchat(info.sender, info.content);
        });

        gm.AddHandler("emoji_push", data => {
            EmojiPush info = (EmojiPush)data;

            emoji(info.sender, info.content + 1);
        });

        gm.AddHandler("demoji_push", data => {
            DEmojiPush info = (DEmojiPush)data;

            demoji(info.sender, info.target, info.id);
        });
    }