欢迎大家来到沙石镇时光中文维基!本站编辑权限开放,欢迎加入中文维基 QQ 群「沙海时光」:372816689
目前正在进行全站数据更新,期间可能会存在显示异常的问题。
全站通知:
模块:Relic
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:Relic/doc创建
local Helper = require("Module:Helper")
local ItemHelper = require("Module:ItemHelper")
local ItemId = Helper.LazyLoad("Module:ItemId")
local RestoreConfigs = Helper.LazyLoad("Module:AssetRestoreConfigs")
local p = {}
-- APIs --
p.ItemObtainingRelicTable = function(frame)
local itemName = frame.args[1]
if ItemHelper.isImplemented(itemName) then
local restoreConfig = findRestoreConfig(itemName, true)
local header = expandTemplate("ItemObtainingRelic/header", {})
local rows = {}
local args = {}
args.machine = "古物修复机"
if (restoreConfig.extraItemCost[1] ~= nil) then
args.extraItemCost1 = ItemHelper.getInGameName(restoreConfig.extraItemCost[1].id)
args.extraItemCost1amt = restoreConfig.extraItemCost[1].count
end
if (restoreConfig.partsItemIds[1] ~= nil) then
args.mat1 = ItemHelper.getInGameName(restoreConfig.partsItemIds[1])
args.mat1amt = 1
end
if (restoreConfig.partsItemIds[2] ~= nil) then
args.mat2 = ItemHelper.getInGameName(restoreConfig.partsItemIds[2])
args.mat2amt = 1
end
if (restoreConfig.partsItemIds[3] ~= nil) then
args.mat3 = ItemHelper.getInGameName(restoreConfig.partsItemIds[3])
args.mat3amt = 1
end
if (restoreConfig.partsItemIds[4] ~= nil) then
args.mat4 = ItemHelper.getInGameName(restoreConfig.partsItemIds[4])
args.mat4amt = 1
end
if (restoreConfig.partsItemIds[5] ~= nil) then
args.mat5 = ItemHelper.getInGameName(restoreConfig.partsItemIds[5])
args.mat5amt = 1
end
if (restoreConfig.costTime) then
local hours = math.floor(restoreConfig.costTime / 60)
local minutes = restoreConfig.costTime % 60
args.costTime = hours .. "h " .. minutes .. "m"
end
local row = expandTemplate("ItemObtainingRelic/row", args)
table.insert(rows, row)
return header .. table.concat(rows, "") .. "|}"
else
return itemName .. "is currently unimplemented."
end
end
-- Helpers --
function getItemId(itemName)
local name = itemName
if name == nil then
name = mw.getCurrentFrame():getParent():getTitle()
end
name, _ = name:gsub("&#(%d+);", function(n)
return string.char(n)
end)
local id = ItemId[name:lower()]
if id == nil then
error("Cannot find item: " .. itemName)
end
return id
end
function expandTemplate(title, args)
return mw.getCurrentFrame():expandTemplate{
title = title,
args = args
}
end
function findRestoreConfigByItemId(itemId, assertRestorable)
if (RestoreConfigs[itemId]) then
return RestoreConfigs[itemId]
else
if assertRestorable then
error("Item cannot be restored: " .. ItemHelper.getName(itemId))
else
return nil
end
end
end
function findRestoreConfig(itemName, assertRestorable)
local itemId = getItemId(itemName)
return findRestoreConfigByItemId(itemId, assertRestorable)
end
-- Debug --
p.debug = function()
local args = {
"Great Wall"
}
local frame = {
args = args
}
expandTemplate = function(title, args)
ret = "{{" .. title
for k, v in pairs(args) do
ret = ret .. "|" .. k .. "=" .. tostring(v)
end
return ret .. "}}"
end
r = p.ItemObtainingRelicTable(frame)
mw.logObject(r)
end
return p

沪公网安备 31011002002714 号