편집 요약 없음 |
편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
local p = {} | local p = {} | ||
local function parseValues(str) | local function parseValues(str) | ||
local values = {} | local values = {} | ||
| 36번째 줄: | 35번째 줄: | ||
local tbl = mw.html.create("table"):addClass("wikitable") | local tbl = mw.html.create("table"):addClass("wikitable") | ||
:css{ | :css{ | ||
flex="1", min_width="300px", text_align="center", border_collapse=" | flex="1", min_width="300px", text_align="center", border_collapse="separate", | ||
margin="0", border_radius="8px", overflow | border_spacing="0", margin="0", border_radius="8px", overflow="hidden" | ||
} | } | ||
-- 헤더 | -- 헤더 | ||
tbl:tag("tr") | local tr = tbl:tag("tr") | ||
local headers = {"능력치", "성장치", "Lv1", "Lv50", "Lv120"} | |||
local widths = {"30%", "17.5%", "17.5%", "17.5%", "17.5%"} | |||
for i, header in ipairs(headers) do | |||
tr:tag("th"):css{ | |||
background_color="#2E3B84", | |||
color="white", | |||
:tag("th"):css | font_weight="bold", | ||
padding="8px", | |||
width=widths[i] | |||
}:wikitext(header) | |||
end | |||
-- | -- 행 | ||
for i, stat in ipairs(tblStats) do | for i, stat in ipairs(tblStats) do | ||
local tr = tbl:tag("tr") | local tr = tbl:tag("tr") | ||
-- 능력치 이름 | -- 능력치 이름 | ||
tr:tag("td"):css | tr:tag("td"):css{ | ||
-- 입력값: 홀짝행 | background_color="#446DFF", | ||
color="white", | |||
font_weight="bold", | |||
text_align="left", | |||
padding="6px" | |||
}:wikitext(stat.name) | |||
-- 입력값: 홀짝행 배경색 | |||
local bg = (i % 2 == 1) and "#EDF3FF" or "" | local bg = (i % 2 == 1) and "#EDF3FF" or "" | ||
for j=1,4 do | for j=1,4 do | ||
tr:tag("td"):css | tr:tag("td"):css{ | ||
background_color=bg, | |||
padding="6px", | |||
width="17.5%" | |||
}:wikitext(stat.vals[j] or "") | |||
end | end | ||
end | end | ||
-- 모서리 둥글게 | |||
tbl:css("border-radius","8px") | |||
return tbl | return tbl | ||
end | end | ||
html:node(makeTable({unpack(stats,1,7)})) -- 왼쪽 | |||
html:node(makeTable({unpack(stats,1,7)})) | html:node(makeTable({unpack(stats,8,14)})) -- 오른쪽 | ||
html:node(makeTable({unpack(stats,8,14)})) | |||
return tostring(html) | return tostring(html) | ||
2025년 11월 22일 (토) 02:41 판
이 모듈에 대한 설명문서는 모듈:궤적시리즈/하늘의 궤적/캐릭터 스테이터스/설명문서에서 만들 수 있습니다
local p = {}
local function parseValues(str)
local values = {}
for val in string.gmatch(str or "", "([^,]+)") do
table.insert(values, val)
end
return values
end
function p.renderCharacterStats(frame)
local stats = {
{name="HP", vals=parseValues(frame.args.HP)},
{name="STR", vals=parseValues(frame.args.STR)},
{name="DEF", vals=parseValues(frame.args.DEF)},
{name="ATS", vals=parseValues(frame.args.ATS)},
{name="ADF", vals=parseValues(frame.args.ADF)},
{name="DEX", vals=parseValues(frame.args.DEX)},
{name="AGL", vals=parseValues(frame.args.AGL)},
{name="MOV", vals=parseValues(frame.args.MOV)},
{name="RNG", vals=parseValues(frame.args.RNG)},
{name="SPD", vals=parseValues(frame.args.SPD)},
{name="HIT", vals=parseValues(frame.args.HIT)},
{name="CRT", vals=parseValues(frame.args.CRT)},
{name="EVA", vals=parseValues(frame.args.EVA)},
{name="MEVA", vals=parseValues(frame.args.MEVA)}
}
local html = mw.html.create("div"):css{
display="flex", flex_wrap="wrap", gap="10px",
justify_content="center", align_items="flex-start"
}
local function makeTable(tblStats)
local tbl = mw.html.create("table"):addClass("wikitable")
:css{
flex="1", min_width="300px", text_align="center", border_collapse="separate",
border_spacing="0", margin="0", border_radius="8px", overflow="hidden"
}
-- 헤더
local tr = tbl:tag("tr")
local headers = {"능력치", "성장치", "Lv1", "Lv50", "Lv120"}
local widths = {"30%", "17.5%", "17.5%", "17.5%", "17.5%"}
for i, header in ipairs(headers) do
tr:tag("th"):css{
background_color="#2E3B84",
color="white",
font_weight="bold",
padding="8px",
width=widths[i]
}:wikitext(header)
end
-- 행
for i, stat in ipairs(tblStats) do
local tr = tbl:tag("tr")
-- 능력치 이름
tr:tag("td"):css{
background_color="#446DFF",
color="white",
font_weight="bold",
text_align="left",
padding="6px"
}:wikitext(stat.name)
-- 입력값: 홀짝행 배경색
local bg = (i % 2 == 1) and "#EDF3FF" or ""
for j=1,4 do
tr:tag("td"):css{
background_color=bg,
padding="6px",
width="17.5%"
}:wikitext(stat.vals[j] or "")
end
end
-- 모서리 둥글게
tbl:css("border-radius","8px")
return tbl
end
html:node(makeTable({unpack(stats,1,7)})) -- 왼쪽
html:node(makeTable({unpack(stats,8,14)})) -- 오른쪽
return tostring(html)
end
return p