public static int GetRandomNumberByAccumulateWeight(IntPtr l)
    {
        int result;

        try
        {
            RandomNumber          randomNumber = (RandomNumber)LuaObject.checkSelf(l);
            Dictionary <int, int> weights;
            LuaObject.checkType <Dictionary <int, int> >(l, 2, out weights);
            int randomNumberByAccumulateWeight = randomNumber.GetRandomNumberByAccumulateWeight(weights);
            LuaObject.pushValue(l, true);
            LuaObject.pushValue(l, randomNumberByAccumulateWeight);
            result = 2;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }