模块:EquipmentInfoList
此模块的文档可以在模块:EquipmentInfoList/doc创建
-- 模块:EventShopCounter
-- 功能:统计活动商店数据中各阶段的物品数量
local p = {} -- 模块对外接口表
function p.countItems(frame)
local args = frame.args
local dataText = args.data or ''
-- 初始化计数器
local counters = {
["金色阶段"] = 0,
["紫色阶段"] = 0,
["灰色阶段"] = 0,
["无限库存区"] = 0,
["其他"] = 0
}
local currentStage = "其他"
-- 按行解析数据
for line in dataText:gmatch("[^\r\n]+") do
local parts = {}
for part in line:gmatch("([^;]*);;") do
table.insert(parts, part)
end
if #parts >= 2 then
local control = parts[1]
local content = parts[2]
-- 判断是否为阶段标题行(以“X”开头且内容包含“阶段”或“区”)
if control == 'X' and (content:find("阶段") or content:find("区")) then
currentStage = content
-- 判断是否为普通物品行(以“0”或“1”开头)
elseif control == '0' or control == '1' then
if counters[currentStage] then
counters[currentStage] = counters[currentStage] + 1
else
counters["其他"] = counters["其他"] + 1
end
end
end
end
-- 生成结果文本
local result = "'''各阶段物品数量统计:'''<br/>"
for stage, count in pairs(counters) do
result = result .. string.format("* %s: %d 个<br/>", stage, count)
end
return result
end
return p -- 必须返回模块接口