米斯特利亚Wiki正在建设中,本WIKI编辑权限开放!

全站通知:

模块:ItemsAdd

来自米斯特利亚WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:ItemsAdd/doc创建

local data = mw.text.jsonDecode(mw.title.new('模块:ItemsAdd/AddData.json'):getContent())

local p={}

local function getUnNil(tableArgs)
	for key, value in pairs(tableArgs) do
		if value ~= nil and value ~= "" then
			return value
		end
	end
	return ""
end

-- 获取途径
function p._source(itemName)
	if not data[itemName] then
		return ""
	end
	local wikitext = (data[itemName] and data[itemName]['获取途径']) or ""
	local frame = mw.getCurrentFrame()
	return frame:preprocess(wikitext)
end

function p.source(frame)
	local itemName = frame.args[1]
	return p._source(itemName)
end

-- 配方获取途径
function p._recipeSource(itemName)
	if not data[itemName] then
		return ""
	end
	local wikitext = (data[itemName] and data[itemName]['配方获取途径']) or ""
	local frame = mw.getCurrentFrame()
	return frame:preprocess(wikitext)
end

function p.recipeSource(frame)
	local itemName = frame.args[1]
	return p._recipeSource(itemName)
end

-- 出售价格
function p._sellValue(itemName)
	if not data[itemName] then
		return ""
	end
	local wikitext = getUnNil({data[itemName]['出售区间'], data[itemName]['出售价格']})
	local frame = mw.getCurrentFrame()
	return frame:preprocess(wikitext)
end

function p.sellValue(frame)
	local itemName = frame.args[1]
	return p._sellValue(itemName)
end

-- 地点
function p._location(itemName)
	if not data[itemName] then
		return ""
	end
	local wikitext = data[itemName]['地点'] or ""
	local frame = mw.getCurrentFrame()
	return frame:preprocess(wikitext)
end
function p.location(frame)
	local itemName = frame.args[1]
	return p._location(itemName)
end

-- 属性加成
function p._attr(itemName)
	if not data[itemName] then
		return ""
	end
	local frame = mw.getCurrentFrame()
	local tmpArgs={
		["生命值"] = data[itemName]['生命'] or "",
		["体力值"] = data[itemName]['体力'] or "",
		["魔力值"] = data[itemName]['魔力'] or ""
	}
	
	return frame:expandTemplate{
            title = '属性加成',
            args = tmpArgs
    }
end

function p.attr(frame)
	local itemName = frame.args[1]
	return p._attr(itemName)
end

-- 对话npc
function p._comment(itemName)
	if not data[itemName] then
		return ""
	end
	local npcName = data[itemName]['对话npc'] or ""
	local comment = data[itemName]['对话内容'] or ""
	local wikitext = "{{人物|" .. npcName .. "}}" .. ":<br />" .. comment
	local frame = mw.getCurrentFrame()
	return frame:preprocess(wikitext)
end
function p.comment(frame)
	local itemName = frame.args[1]
	return p._comment(itemName)
end

--[[
local f = mw.getCurrentFrame()
mw.log("--------------------------------")
f.args={"阿尔达青铜剑"}
mw.log("获取途径")
mw.log(p.source(f))
mw.log("出售价格")
mw.log(p.sellValue(f))
mw.log("地点")
mw.log(p.location(f))
mw.log("对话npc")
mw.log(p.comment(f))
mw.log("--------------------------------")
f.args={"南瓜派"}
mw.log("属性加成")
mw.log(p.attr(f))
mw.log("配方获取途径")
mw.log(p.recipeSource(f))
]]--
return p