-- automatically generated by the FlatBuffers compiler, do not modify

-- namespace: fb

local flatbuffers = require('flatbuffers')

local skillconfigTR = {} -- the module
local skillconfigTR_mt = {} -- the class metatable

function skillconfigTR.New()
    local o = {}
    setmetatable(o, {__index = skillconfigTR_mt})
    return o
end
function skillconfigTR.GetRootAsskillconfigTR(buf, offset)
    local n = flatbuffers.N.UOffsetT:Unpack(buf, offset)
    local o = skillconfigTR.New()
    o:Init(buf, n + offset)
    return o
end
function skillconfigTR_mt:Init(buf, pos)
    self.view = flatbuffers.view.New(buf, pos)
end
function skillconfigTR_mt:_id()
    local o = self.view:Offset(4)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR_mt:_name()
    local o = self.view:Offset(6)
    if o ~= 0 then
        return self.view:String(o + self.view.pos)
    end
end
function skillconfigTR_mt:_description()
    local o = self.view:Offset(8)
    if o ~= 0 then
        return self.view:String(o + self.view.pos)
    end
end
function skillconfigTR_mt:_cooltime()
    local o = self.view:Offset(10)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR_mt:_costsp()
    local o = self.view:Offset(12)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR_mt:_attackdistance()
    local o = self.view:Offset(14)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Float32, o + self.view.pos)
    end
    return 0.0
end
function skillconfigTR_mt:_attackangle()
    local o = self.view:Offset(16)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Float32, o + self.view.pos)
    end
    return 0.0
end
function skillconfigTR_mt:_attacktargettags(j)
    local o = self.view:Offset(18)
    if o ~= 0 then
        local a = self.view:Vector(o)
        return self.view:String(a + ((j-1) * 4))
    end
    return ''
end
function skillconfigTR_mt:_attacktargettagsLength()
    local o = self.view:Offset(18)
    if o ~= 0 then
        return self.view:VectorLen(o)
    end
    return 0
end
function skillconfigTR_mt:_impacttype(j)
    local o = self.view:Offset(20)
    if o ~= 0 then
        local a = self.view:Vector(o)
        return self.view:String(a + ((j-1) * 4))
    end
    return ''
end
function skillconfigTR_mt:_impacttypeLength()
    local o = self.view:Offset(20)
    if o ~= 0 then
        return self.view:VectorLen(o)
    end
    return 0
end
function skillconfigTR_mt:_nextbattlerid()
    local o = self.view:Offset(22)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR_mt:_atkratio()
    local o = self.view:Offset(24)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Float32, o + self.view.pos)
    end
    return 0.0
end
function skillconfigTR_mt:_durationtime()
    local o = self.view:Offset(26)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Float32, o + self.view.pos)
    end
    return 0.0
end
function skillconfigTR_mt:_atkinterval()
    local o = self.view:Offset(28)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Float32, o + self.view.pos)
    end
    return 0.0
end
function skillconfigTR_mt:_skillprefab()
    local o = self.view:Offset(30)
    if o ~= 0 then
        return self.view:String(o + self.view.pos)
    end
end
function skillconfigTR_mt:_animationname()
    local o = self.view:Offset(32)
    if o ~= 0 then
        return self.view:String(o + self.view.pos)
    end
end
function skillconfigTR_mt:_hitfxprefab()
    local o = self.view:Offset(34)
    if o ~= 0 then
        return self.view:String(o + self.view.pos)
    end
end
function skillconfigTR_mt:_level()
    local o = self.view:Offset(36)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR_mt:_attacktype()
    local o = self.view:Offset(38)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR_mt:_selectortype()
    local o = self.view:Offset(40)
    if o ~= 0 then
        return self.view:Get(flatbuffers.N.Int32, o + self.view.pos)
    end
    return 0
end
function skillconfigTR.Start(builder) builder:StartObject(19) end
function skillconfigTR.Add_id(builder, Id) builder:PrependInt32Slot(0, Id, 0) end
function skillconfigTR.Add_name(builder, Name) builder:PrependUOffsetTRelativeSlot(1, Name, 0) end
function skillconfigTR.Add_description(builder, Description) builder:PrependUOffsetTRelativeSlot(2, Description, 0) end
function skillconfigTR.Add_cooltime(builder, Cooltime) builder:PrependInt32Slot(3, Cooltime, 0) end
function skillconfigTR.Add_costsp(builder, Costsp) builder:PrependInt32Slot(4, Costsp, 0) end
function skillconfigTR.Add_attackdistance(builder, Attackdistance) builder:PrependFloat32Slot(5, Attackdistance, 0.0) end
function skillconfigTR.Add_attackangle(builder, Attackangle) builder:PrependFloat32Slot(6, Attackangle, 0.0) end
function skillconfigTR.Add_attacktargettags(builder, Attacktargettags) builder:PrependUOffsetTRelativeSlot(7, Attacktargettags, 0) end
function skillconfigTR.Start_attacktargettagsVector(builder, numElems) return builder:StartVector(4, numElems, 4) end
function skillconfigTR.Add_impacttype(builder, Impacttype) builder:PrependUOffsetTRelativeSlot(8, Impacttype, 0) end
function skillconfigTR.Start_impacttypeVector(builder, numElems) return builder:StartVector(4, numElems, 4) end
function skillconfigTR.Add_nextbattlerid(builder, Nextbattlerid) builder:PrependInt32Slot(9, Nextbattlerid, 0) end
function skillconfigTR.Add_atkratio(builder, Atkratio) builder:PrependFloat32Slot(10, Atkratio, 0.0) end
function skillconfigTR.Add_durationtime(builder, Durationtime) builder:PrependFloat32Slot(11, Durationtime, 0.0) end
function skillconfigTR.Add_atkinterval(builder, Atkinterval) builder:PrependFloat32Slot(12, Atkinterval, 0.0) end
function skillconfigTR.Add_skillprefab(builder, Skillprefab) builder:PrependUOffsetTRelativeSlot(13, Skillprefab, 0) end
function skillconfigTR.Add_animationname(builder, Animationname) builder:PrependUOffsetTRelativeSlot(14, Animationname, 0) end
function skillconfigTR.Add_hitfxprefab(builder, Hitfxprefab) builder:PrependUOffsetTRelativeSlot(15, Hitfxprefab, 0) end
function skillconfigTR.Add_level(builder, Level) builder:PrependInt32Slot(16, Level, 0) end
function skillconfigTR.Add_attacktype(builder, Attacktype) builder:PrependInt32Slot(17, Attacktype, 0) end
function skillconfigTR.Add_selectortype(builder, Selectortype) builder:PrependInt32Slot(18, Selectortype, 0) end
function skillconfigTR.End(builder) return builder:EndObject() end

return skillconfigTR -- return the module