缺氧 wiki 编辑团队提示:注册账号并登录后体验更佳,且可通过参数设置定制优化您的浏览体验!
该站点为镜像站点,如果你想帮助这个由玩家志愿编辑的 wiki 站点,请前往原站点参与编辑,
同时欢迎加入编辑讨论群 851803695 与其他编辑者一起参与建设!
全站通知:
模块:属性信息框
刷
历
编
跳到导航
跳到搜索
-- Module:属性信息框
local p = {}
local fstr = mw.ustring.format -- shortcut for formattig a string
local po = require([[Module:Po]]).po
local getArgs = require('Module:Dev/Arguments').getArgs
-- test by: mw.logObject(p._getList("*123\n*456\n"))
function p._getList(s)
if s == nil then return {} end
out = {}
local xs = mw.text.split(s, "\n+")
for _, e in ipairs(xs) do
local m = mw.ustring.match(e, "^%s*%*%s*(.+)%s*$")
if m ~= nil then table.insert(out, m) end
end
return out
end
-- test by: = p.name({"Construction"})
function p.name(args)
args = getArgs(args)
local key = args[1]
return po(fstr("STRINGS.DUPLICANTS.ATTRIBUTES.%s.NAME", key:upper()))
end
-- test by: = p.desc({"Construction"})
function p.desc(args)
args = getArgs(args)
local key = args[1]
local desc = po(fstr("STRINGS.DUPLICANTS.ATTRIBUTES.%s.DESC", key:upper()))
return fstr("'''%s'''%s", p.name(args), desc)
end
-- test by: = p.effects({"*123\n*456\n"})
function p.effects(args)
args = getArgs(args)
local es = p._getList(args[1])
local out = {}
local suffix = "<br>"
for _, e in ipairs(es) do
table.insert(out, e .. "(每点属性)" .. suffix)
end
return table.concat(out, "")
end
-- test by: = p.trained({"* 进行[[建造]][[工作]]。"})
function p.trained(args)
args = getArgs(args)
local out = {}
local ts = p._getList(args[1])
local suffix = "<br>"
for _, t in ipairs(ts) do table.insert(out, t .. suffix) end
return table.concat(out, "")
end
-- test by: = p.skills({"* 改良建造 I, +2\n* 改良建造 II, +2\n* 改良建造 III, +2\n* 应用科学研究, +2"})
function p.skills(args)
args = getArgs(args)
local out = {}
local ss = p._getList(args[1])
local suffix = "<br>"
for _, s in ipairs(ss) do
local skill = mw.text.split(s, ",%s*")
local name = skill[1]
local bonus = skill[2]
local nameWithHat = mw.title.new(fstr("File:%s帽子.png", name)).exists
local hatImg = nameWithHat and (name .. "帽子") or name
local expandedImg = mw.getCurrentFrame():expandTemplate{
title = "物品",
args = {fstr("技能/%s", name), name, img = hatImg, notext = 1}
}
table.insert(out,
fstr(
"<span style='font-size:2em;'>%s</span> [[%s]](%s)%s",
expandedImg, name, bonus, suffix))
end
return table.concat(out, "")
end
-- test by: = p.traits({"\n* 早起鸟, -5\n* 夜猫子, -5"})
function p.traits(args)
args = getArgs(args)
local out = {}
local ts = p._getList(args[1])
local suffix = "<br>"
for _, t in ipairs(ts) do
local trait = mw.text.split(t, ",%s*")
local name = trait[1]
local bonus = trait[2]
table.insert(out, fstr("%s(%s)%s", name, bonus, suffix))
end
return table.concat(out, "")
end
-- test by: = p.other({"\n* 中暑, -5\n* 低温症, -5"})
function p.other(args)
args = getArgs(args)
local out = {}
local os = p._getList(args[1])
local suffix = "<br>"
for _, o in ipairs(os) do
local trait = mw.text.split(o, ",%s*")
local name = trait[1]
local bonus = trait[2]
table.insert(out, fstr("%s(%s)%s", name, bonus, suffix))
end
return table.concat(out, "")
end
return p