static int FindLast(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        List <fogs.proto.msg.GameModeInfo>      obj  = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
        Predicate <fogs.proto.msg.GameModeInfo> arg0 = null;
        LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

        if (funcType2 != LuaTypes.LUA_TFUNCTION)
        {
            arg0 = (Predicate <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObject(L, 2, typeof(Predicate <fogs.proto.msg.GameModeInfo>));
        }
        else
        {
            LuaFunction func = LuaScriptMgr.GetLuaFunction(L, 2);
            arg0 = (param0) =>
            {
                int top = func.BeginPCall();
                LuaScriptMgr.PushObject(L, param0);
                func.PCall(top, 1);
                object[] objs = func.PopValues(top);
                func.EndPCall(top);
                return((bool)objs[0]);
            };
        }

        fogs.proto.msg.GameModeInfo o = obj.FindLast(arg0);
        LuaScriptMgr.PushObject(L, o);
        return(1);
    }
    static int Add(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        List <fogs.proto.msg.GameModeInfo> obj = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");

        fogs.proto.msg.GameModeInfo arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
        obj.Add(arg0);
        return(0);
    }
    static int get_Item(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        List <fogs.proto.msg.GameModeInfo> obj = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
        int arg0 = (int)LuaScriptMgr.GetNumber(L, 2);

        fogs.proto.msg.GameModeInfo o = obj[arg0];
        LuaScriptMgr.PushObject(L, o);
        return(1);
    }
    static int Insert(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 3);
        List <fogs.proto.msg.GameModeInfo> obj = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
        int arg0 = (int)LuaScriptMgr.GetNumber(L, 2);

        fogs.proto.msg.GameModeInfo arg1 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 3, typeof(fogs.proto.msg.GameModeInfo));
        obj.Insert(arg0, arg1);
        return(0);
    }
    static int Remove(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        List <fogs.proto.msg.GameModeInfo> obj = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");

        fogs.proto.msg.GameModeInfo arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
        bool o = obj.Remove(arg0);

        LuaScriptMgr.Push(L, o);
        return(1);
    }
    static int _Createfogs_proto_msg_GameModeInfo(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 0)
        {
            fogs.proto.msg.GameModeInfo obj = new fogs.proto.msg.GameModeInfo();
            LuaScriptMgr.PushObject(L, obj);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: fogs.proto.msg.GameModeInfo.New");
        }

        return(0);
    }
    static int BinarySearch(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 2)
        {
            List <fogs.proto.msg.GameModeInfo> obj  = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
            fogs.proto.msg.GameModeInfo        arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
            int o = obj.BinarySearch(arg0);
            LuaScriptMgr.Push(L, o);
            return(1);
        }
        else if (count == 3)
        {
            List <fogs.proto.msg.GameModeInfo>      obj  = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
            fogs.proto.msg.GameModeInfo             arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
            IComparer <fogs.proto.msg.GameModeInfo> arg1 = (IComparer <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObject(L, 3, typeof(IComparer <fogs.proto.msg.GameModeInfo>));
            int o = obj.BinarySearch(arg0, arg1);
            LuaScriptMgr.Push(L, o);
            return(1);
        }
        else if (count == 5)
        {
            List <fogs.proto.msg.GameModeInfo> obj = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
            int arg0 = (int)LuaScriptMgr.GetNumber(L, 2);
            int arg1 = (int)LuaScriptMgr.GetNumber(L, 3);
            fogs.proto.msg.GameModeInfo             arg2 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 4, typeof(fogs.proto.msg.GameModeInfo));
            IComparer <fogs.proto.msg.GameModeInfo> arg3 = (IComparer <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObject(L, 5, typeof(IComparer <fogs.proto.msg.GameModeInfo>));
            int o = obj.BinarySearch(arg0, arg1, arg2, arg3);
            LuaScriptMgr.Push(L, o);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: List<fogs.proto.msg.GameModeInfo>.BinarySearch");
        }

        return(0);
    }
    static int LastIndexOf(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 2)
        {
            List <fogs.proto.msg.GameModeInfo> obj  = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
            fogs.proto.msg.GameModeInfo        arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
            int o = obj.LastIndexOf(arg0);
            LuaScriptMgr.Push(L, o);
            return(1);
        }
        else if (count == 3)
        {
            List <fogs.proto.msg.GameModeInfo> obj  = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
            fogs.proto.msg.GameModeInfo        arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
            int arg1 = (int)LuaScriptMgr.GetNumber(L, 3);
            int o    = obj.LastIndexOf(arg0, arg1);
            LuaScriptMgr.Push(L, o);
            return(1);
        }
        else if (count == 4)
        {
            List <fogs.proto.msg.GameModeInfo> obj  = (List <fogs.proto.msg.GameModeInfo>)LuaScriptMgr.GetNetObjectSelf(L, 1, "List<fogs.proto.msg.GameModeInfo>");
            fogs.proto.msg.GameModeInfo        arg0 = (fogs.proto.msg.GameModeInfo)LuaScriptMgr.GetNetObject(L, 2, typeof(fogs.proto.msg.GameModeInfo));
            int arg1 = (int)LuaScriptMgr.GetNumber(L, 3);
            int arg2 = (int)LuaScriptMgr.GetNumber(L, 4);
            int o    = obj.LastIndexOf(arg0, arg1, arg2);
            LuaScriptMgr.Push(L, o);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: List<fogs.proto.msg.GameModeInfo>.LastIndexOf");
        }

        return(0);
    }
    static int get_times(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);

        fogs.proto.msg.GameModeInfo obj = (fogs.proto.msg.GameModeInfo)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name times");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index times on a nil value");
            }
        }

        LuaScriptMgr.Push(L, obj.times);
        return(1);
    }
    static int set_npc(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);

        fogs.proto.msg.GameModeInfo obj = (fogs.proto.msg.GameModeInfo)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name npc");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index npc on a nil value");
            }
        }

        obj.npc = (uint)LuaScriptMgr.GetNumber(L, 3);
        return(0);
    }
    static int set_game_mode(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);

        fogs.proto.msg.GameModeInfo obj = (fogs.proto.msg.GameModeInfo)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name game_mode");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index game_mode on a nil value");
            }
        }

        obj.game_mode = (fogs.proto.msg.GameMode)LuaScriptMgr.GetNetObject(L, 3, typeof(fogs.proto.msg.GameMode));
        return(0);
    }