本Wiki对全体读者开放编辑,如有编辑相关问题欢迎添加首页交流群询问,欢迎更多玩家加入我们。
按右上角“WIKI功能→编辑”即可修改页面内容。
全站通知:
模块:角色
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:角色/doc创建
local p = {}
local acandy = require("模块:ACandy")
local get = require("模块:Get")
local a, Raw, Fragment = acandy.a, acandy.Raw, acandy.Fragment
local div, span, ul, li = a.div, a.span, a.ul, a.li
local skinData = mw.loadData("模块:角色/SkinData")
local qualityColor = {
["完美"] = "#e8ae48",
["卓越"] = "#ca53f7",
["精致"] = "#5d7fff",
["初始"] = "#ECECEC",
}
-- 获取当前页面标题
local function getPageTitle()
return mw.title.getCurrentTitle().text
end
----角色页角色时装----
local function createSkinTab(frame, roleName, skinName, skinQuality)
local borderColor = qualityColor[skinQuality] -- 获取品质颜色
local skinTabNav, skinTabContent = "", ""
if skinQuality ~= "卓越" then
skinTabNav = li { style = "display: inline;border-radius:5px;margin:0 3px;padding:5px;", frame:callParserFunction('#tag:a', { '立绘', href = '#'..skinName..'立绘', ['data-toggle'] = 'tab' }) }
skinTabContent = div { class = "tab-pane", id = skinName.."立绘", "[[文件:"..roleName.."-"..skinName.."立绘.png]]" }
end
-- 返回时装标签和内容
return li { class = "bili-list-style", style = "padding: 0;border: 3px solid "..borderColor..";",
span { class = "tab-panel",
skinName,
},
},
div { class = "resp-tab-content",
div { class = "tab skinImgTab", style = "display: flex;width: 100%;flex-direction: row-reverse;",
ul { class = "tab-nav", style = "margin: 0 0 0 0.8em;writing-mode: vertical-rl;",
li { class = "active", style = "display: inline;margin: 0 3px;padding: 5px;", frame:callParserFunction('#tag:a', { '模型正面', href = '#'..skinName..'模型正面', ['data-toggle'] = 'tab' }) },
li { style = "display: inline;margin: 0 3px;padding: 5px;", frame:callParserFunction('#tag:a', { '模型背面', href = '#'..skinName..'模型背面', ['data-toggle'] = 'tab' }) },
skinTabNav,
},
div { class = "tab-content",
div { class = "tab-pane active", id = skinName.."模型正面", frame:expandTemplate{ title = 'EagerImg'} .. "[[文件:"..roleName.."皮肤-"..skinName..".jpg|link=]]" },
div { class = "tab-pane", id = skinName.."模型背面", "[[文件:"..roleName.."皮肤-"..skinName.."_背面.jpg|link=]]" },
skinTabContent,
},
},
}
end
p["角色时装"] = function (frame)
local pageName = getPageTitle() -- 获取角色名称
local skinsByQuality = {
["私服"] = {}, ["传说"] = {}, ["完美"] = {}, ["卓越"] = {},
}
-- 根据品质分类角色皮肤
local roleSkinData = skinData[pageName]
if roleSkinData then
for skinName, skin in pairs(roleSkinData) do
local rarity = skin['稀有度']
local skinsOfThisQuality = skinsByQuality[rarity]
if skinsOfThisQuality then
skinsOfThisQuality[#skinsOfThisQuality + 1] = skinName
end
end
end
-- 插入默认“作战服”
local tabLabels, tabBodies = {}, {}
tabLabels[1], tabBodies[1] = createSkinTab(frame, pageName, "作战服", "初始")
-- 遍历其他品质皮肤
for quality in get("私服", "传说", "完美", "卓越") do
local len = #tabLabels
for i, skinName in ipairs(skinsByQuality[quality]) do
local label, body = createSkinTab(frame, pageName, skinName, quality)
tabLabels[len + i] = label
tabBodies[len + i] = body
end
end
-- 设置第一个为激活状态
if tabLabels[1] then
tabLabels[1].class = (tabLabels[1].class or "") .. " active"
tabBodies[1].style = (tabBodies[1].style or "") .. ";display:block"
end
-- 返回角色时装的HTML
return div { class = "resp-tabs role-skin-tabs",
ul { class = "resp-tabs-list clearfix",
tabLabels,
},
div { class = "resp-tabs-container",
tabBodies,
},
}, a.br
end
return p