모듈:LoRCosmetics
외관
이 모듈에 대한 설명문서는 모듈:LoRCosmetics/설명문서에서 만들 수 있습니다
local p = {}
function p.skinPage(frame)
local cardCode = frame.args[1] or frame:getParent().args[1]
if not cardCode or cardCode == "" then
return "<div class='error'>No card code provided to Module:LoRCosmetics</div>"
end
local skinsData = mw.loadData('Module:LoRCosmetics/skins')
local cardSkins = skinsData[cardCode]
if not cardSkins then
return "<div class='error'>No skins data found for card code: " .. tostring(cardCode) .. "</div>"
end
-- Sort skins by idx
local sortedSkins = {}
for skinName, skinInfo in pairs(cardSkins) do
table.insert(sortedSkins, {name = skinName, info = skinInfo})
end
table.sort(sortedSkins, function(a, b)
return (a.info.idx or 0) < (b.info.idx or 0)
end)
local tabberParts = {}
table.insert(tabberParts, "<tabber>")
for i, skin in ipairs(sortedSkins) do
if i > 1 then
table.insert(tabberParts, "|-|")
end
table.insert(tabberParts, skin.name .. "=")
local info = skin.info
local costText = "Free"
if info.cost and info.cost > 0 then
costText = tostring(info.cost) .. " Coins"
end
local rarity = info.rarity or "Base"
local release = info.release or "Unknown"
local html = "<div class='lor-skin-container'>"
html = html .. "<div class='lor-skin-header'>"
html = html .. "<div class='lor-skin-name'>" .. skin.name .. "</div>"
html = html .. "<div class='lor-skin-meta'>"
html = html .. "<div class='lor-skin-meta-item'><span class='lor-skin-meta-label'>Rarity:</span>" .. rarity .. "</div>"
html = html .. "<div class='lor-skin-meta-item'><span class='lor-skin-meta-label'>Cost:</span>" .. costText .. "</div>"
html = html .. "<div class='lor-skin-meta-item'><span class='lor-skin-meta-label'>Release:</span>" .. release .. "</div>"
html = html .. "</div>"
html = html .. "</div>"
html = html .. "<div class='lor-skin-cards'>"
local assoc = info.associatedCards or {}
for _, card in ipairs(assoc) do
local assocCode = card.cardcode
local name = card.name or "Card"
local flavor = card.flavor or ""
local artists = info.splashartist or {}
local artistText = table.concat(artists, ", ")
local filename
if skin.name == "Original" then
filename = assocCode .. "-full.png"
else
filename = assocCode .. "_" .. skin.name .. "-full.png"
end
html = html .. "<div class='lor-skin-card-box'>"
html = html .. "<div class='lor-skin-card-title'>" .. name .. " (" .. assocCode .. ")</div>"
html = html .. "<div class='lor-skin-card-image'>[[File:" .. filename .. "|400px]]</div>"
if flavor ~= "" then
html = html .. "<div class='lor-skin-card-flavor'>\"" .. flavor .. "\"</div>"
end
if artistText ~= "" then
html = html .. "<div class='lor-skin-card-artist'><span class='lor-skin-meta-label'>Artist:</span>" .. artistText .. "</div>"
end
html = html .. "</div>"
end
html = html .. "</div>"
html = html .. "</div>"
table.insert(tabberParts, html)
end
table.insert(tabberParts, "</tabber>")
local wikitext = table.concat(tabberParts, "\n")
return frame:preprocess(wikitext)
end
return p