Documentation for this module may be created at Module:Sandbox/LVL/doc

local p = {}
local ItemData = require('Module:ItemData')
local Lang     = require('Module:Lang')
local Dict     = require('Module:Dictionary')

-- localised labels cached once
local labels = {
    title   = Dict.translate('Items'),
    weapon  = Lang.get_string('CitadelCategoryWeapon', 'en'),
    armor   = Lang.get_string('CitadelCategoryArmor',  'en'),
    tech    = Lang.get_string('CitadelCategoryTech',   'en'),
}

-- tiny helper to build a gradient bar
local function gradientBar(text, targetPage)
    return string.format(
    '[[%s|<span style="color:#FFF5E8;font-family:\'Retail Demo\',sans-serif;font-weight:bold;text-shadow:0 2px 2px #000,0 0 2px #000;">%s</span>]]',
    targetPage, text
)
end

function p.main()
    local cats = {
        { name='Weapon', label=labels.weapon, page=Dict.translate('Weapon Item', {lang_code_override='en'})..'{{if_lang}}' },
        { name='Armor',  label=labels.armor,  page=Dict.translate('Armor Item',  {lang_code_override='en'})..'{{if_lang}}' },
        { name='Tech',   label=labels.tech,   page=Dict.translate('Tech Item',   {lang_code_override='en'})..'{{if_lang}}' },
    }

    local pieces = {}
    for _, c in ipairs(cats) do
        table.insert(pieces,
            '|group' .. #pieces+1 .. ' = ' ..
            '|list'  .. #pieces   .. '  = ' ..
            gradientBar(c.label, c.page) ..
            '{{#invoke:ItemData/nav|write_item_slot_subgroup|'..c.name..'|get_item_nav_bulletpoints}}'
        )
    end

    -- build the Navbox call
    return mw.getCurrentFrame():expandTemplate{
        title = 'Navbox',
        args  = {
            name       = 'Items',
            title      = '[[Item{{if_lang}}|<span style="color:#FFF5E8;font-weight:bold;font-family:\'Retail Demo\',serif;font-size:18px;text-shadow:0 2px 2px #000,0 0 2px #000;">'..labels.title..'</span>]]',
            state      = '',
            titlestyle = 'border-radius:8px;background-image:linear-gradient(#987556,#e8be86);font-family:\'PT Serif\',serif;',
            groupstyle = 'border-radius:8px 0 0 8px;background-image:linear-gradient(#c1a671,#d0bb95);font-family:\'Forevs Demo Bold\',serif;padding:5px;text-align:center;',
            abovestyle = 'background:#bdad9f;',
            aboveclass = 'hlist',
            ['']       = table.concat(pieces, '\n')
        }
    }
end

return p