コード例 #1
0
    public void sync()
    {
        NetMgr       net = NetMgr.GetInstance();
        PomeloClient pc  = net.pc;

        JsonObject data = new JsonObject();

        pc.pseudo("game_sync_push", data);
    }
コード例 #2
0
    public float takeAction(bool background)
    {
        NetMgr       net = NetMgr.GetInstance();
        RoomMgr      rm  = RoomMgr.GetInstance();
        PomeloClient pc  = net.pc;

        ReplayAction action = getNext();

        if (lastAction != null && lastAction.type == ACTION_TYPE.CHUPAI)
        {
            if (action != null &&
                action.type != ACTION_TYPE.PENG &&
                action.type != ACTION_TYPE.GANG &&
                action.type != ACTION_TYPE.CHI &&
                action.type != ACTION_TYPE.HU)
            {
                int        _uid = rm.getUIDBySeatIndex(lastAction.si);
                JsonObject guo  = new JsonObject();
                guo.Add("userId", _uid);
                guo.Add("seatindex", lastAction.si);
                guo.Add("pai", lastAction.pai);
                if (background)
                {
                    guo.Add("bg", true);
                }

                pc.pseudo("guo_notify_push", guo);
            }
        }

        lastAction = action;

        if (action == null)
        {
            return(0);
        }

        JsonObject turn = new JsonObject();

        turn.Add("turn", action.si);
        if (background)
        {
            turn.Add("bg", true);
        }

        float delay = 1.0f;

        int uid = rm.getUIDBySeatIndex(action.si);

        JsonObject data = new JsonObject();

        data.Add("userId", uid);
        data.Add("userid", uid);
        data.Add("pai", action.pai);
        data.Add("seatindex", action.si);
        if (background)
        {
            data.Add("bg", true);
        }

        switch (action.type)
        {
        case ACTION_TYPE.CHUPAI:
            pc.pseudo("game_chupai_notify_push", data);
            return(1.0f);

        case ACTION_TYPE.MOPAI:
            bool flower = false;
            if (action.pai >= 45)
            {
                pc.pseudo("game_af_push", data);
                flower = true;
            }
            else
            {
                pc.pseudo("game_mopai_push", data);
                pc.pseudo("game_chupai_push", turn);
            }

            mCount--;

            JsonObject count = new JsonObject();
            count.Add("numofmj", mCount);
            if (background)
            {
                count.Add("bg", true);
            }

            pc.pseudo("mj_count_push", count);

            return(flower ? 2.0f : 1.0f);

        case ACTION_TYPE.PENG:
            pc.pseudo("peng_notify_push", data);
            pc.pseudo("game_chupai_push", turn);
            return(1.0f);

        case ACTION_TYPE.GANG:
            if (!background)
            {
                pc.pseudo("hangang_notify_push", data);
            }

            pc.pseudo("gang_notify_push", data);
            pc.pseudo("game_chupai_push", turn);
            return(1.0f);

        case ACTION_TYPE.CHI:
            pc.pseudo("chi_notify_push", data);
            pc.pseudo("game_chupai_push", turn);
            return(1.0f);

        case ACTION_TYPE.HU:
            data.Add("hupai", action.pai);
            data.Add("iszimo", false);
            data.Add("target", -1);
            pc.pseudo("hu_push", data);
            return(1.5f);

        case ACTION_TYPE.ZIMO:
            data.Add("hupai", action.pai);
            data.Add("iszimo", true);
            pc.pseudo("hu_push", data);
            return(1.5f);

        case ACTION_TYPE.TING:
            pc.pseudo("ting_notify_push", data);
            return(1.0f);

        default:
            break;
        }

        return(delay);
    }