Module:GameSkills: Difference between revisions
From SpiritVale Wiki
More actions
No edit summary |
No edit summary |
||
| Line 6: | Line 6: | ||
-- - Adds .sv-skill-card + data-max-level / data-level hooks for JS | -- - Adds .sv-skill-card + data-max-level / data-level hooks for JS | ||
-- - Replaces large Lv1/Lv2/... lists with data-series dynamic spans | -- - Replaces large Lv1/Lv2/... lists with data-series dynamic spans | ||
-- - | -- - Removes "General" + "Type" section bars and merges Level Select + Type into one unified top band | ||
-- | -- (Level Select on the left; Type/Element/Target/Cast Type list on the right) | ||
-- - NEW (list-mode): Wraps all skills in ONE wrapper panel and each skill in a stable .sv-skill-item | |||
-- so CSS dividers work reliably under Citizen/table wrappers. | |||
-- | -- | ||
-- Requires the JS you installed in MediaWiki:Common.js. | -- Requires the JS you installed in MediaWiki:Common.js. | ||
-- Uses | -- Uses Common.css classes: | ||
-- .sv-topband-cell, .sv-topband-table, .sv-type-table, .sv-level-ui, .sv-level-title, .sv-level-label, .sv-level-slider | -- .sv-topband-cell, .sv-topband-table, .sv-type-table, .sv-level-ui, .sv-level-title, .sv-level-label, .sv-level-slider | ||
-- .sv-skill-collection, .sv-skill-item | |||
local GameData = require("Module:GameData") | local GameData = require("Module:GameData") | ||
| Line 339: | Line 342: | ||
if baseText and baseN ~= nil then | if baseText and baseN ~= nil then | ||
local total = baseN + perPart | local total = baseN + perPart | ||
table.insert(series, string.format("%s%% %s", fmtNum(total), basis)) | table.insert(series, string.format("%s%% %s", fmtNum(total), basis)) | ||
elseif baseText then | elseif baseText then | ||
table.insert(series, string.format("%s + %s%% %s", baseText, fmtNum(perPart), basis)) | table.insert(series, string.format("%s + %s%% %s", baseText, fmtNum(perPart), basis)) | ||
else | else | ||
table.insert(series, string.format("%s%% %s", fmtNum(perPart), basis)) | table.insert(series, string.format("%s%% %s", fmtNum(perPart), basis)) | ||
end | end | ||
| Line 819: | Line 819: | ||
wrap:addClass("sv-level-ui") | wrap:addClass("sv-level-ui") | ||
wrap:tag("div") | wrap:tag("div") | ||
:addClass("sv-level-title") | :addClass("sv-level-title") | ||
:wikitext("Level Select") | :wikitext("Level Select") | ||
wrap:tag("div") | wrap:tag("div") | ||
:addClass("sv-level-label") | :addClass("sv-level-label") | ||
:wikitext("Level <span class=\"sv-level-num\">" .. tostring(level) .. "</span> / " .. tostring(maxLevel)) | :wikitext("Level <span class=\"sv-level-num\">" .. tostring(level) .. "</span> / " .. tostring(maxLevel)) | ||
wrap:tag("div"):addClass("sv-level-slider") | wrap:tag("div"):addClass("sv-level-slider") | ||
| Line 884: | Line 881: | ||
cell:addClass("sv-topband-cell") | cell:addClass("sv-topband-cell") | ||
-- Nested table ( | -- Nested table (what Common.css targets) | ||
local inner = cell:tag("table") | local inner = cell:tag("table") | ||
inner:addClass("sv-topband-table") | inner:addClass("sv-topband-table") | ||
| Line 960: | Line 957: | ||
------------------------------------------------------------------ | ------------------------------------------------------------------ | ||
-- Users (kept as rows; | -- Users (kept as rows; caller decides show/hide) | ||
------------------------------------------------------------------ | ------------------------------------------------------------------ | ||
if showUsers then | if showUsers then | ||
| Line 1,126: | Line 1,123: | ||
end | end | ||
-- ONE wrapper panel (table-like list mode) | |||
local root = mw.html.create("div") | local root = mw.html.create("div") | ||
root:addClass("sv-skill-collection") | |||
root:addClass("spiritvale-skill-list") -- keep for compatibility / other CSS | |||
for _, rec in ipairs(matches) do | |||
-- Stable per-skill wrapper so dividers work even under Citizen wrappers | |||
local item = root:tag("div"):addClass("sv-skill-item") | |||
item:wikitext(buildInfobox(rec, { showUsers = false, inList = true })) | |||
end | |||
return tostring(root) | |||
end | end | ||