欢迎大家来到沙石镇时光中文维基!本站编辑权限开放,欢迎加入中文维基 QQ 群「沙海时光」:372816689
目前正在进行全站数据更新,期间可能会存在显示异常的问题。

全站通知:

模块:Influences

来自沙石镇时光维基
跳到导航 跳到搜索

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

local Helper = require("Module:Helper")
local SocialLevel = require("Module:SocialLevel")
local NpcProtoData = require("Module:NpcProtoData")
local AssetItemChinese = Helper.LoadAsset("Module:AssetItemChinese")
local influencesData = Helper.LazyLoad("Module:InfluencesData")
local cache = require "mw.ext.LuaCache"
local KEY_PREFIX = "Module:Influences"
local EXP_TIME = 172800
local p = {}


function getText(id)
    if (AssetItemChinese[id]) then
        return AssetItemChinese[id]
    end

    return nil
end

p.getInfluences = function(frame)
	-- local name = frame.args[1]
	-- local id = tonumber(frame.args[1])
	local cacheKey = KEY_PREFIX .. "getInfluences" .. frame.args[1]
	cache.delete(cacheKey) -- 清除旧版数据
    if (cache.get(cacheKey)) then
        local result = cache.get(cacheKey)
        return result
    end
    
	local id = NpcProtoData.id(frame)
	if not id then
	    return "输入的参数有误。"
	end
    local influences = influencesData[id]

    if not influences then
        return "该人物不存在关系加成。"
    end

    local result = {}
    for _, influence in ipairs(influences) do
        local socialLevelText = "" .. SocialLevel.getName({args = {influence.socialLevel}})  -- 这里占位符
        local transIdText = "" .. getText(influence.transId)  -- 这里占位符
        local rangeMin = SocialLevel.getRangeMin({args = {influence.socialLevel}})
        local heart = math.ceil((rangeMin / 1000) * 7)
        table.insert(result, ";" .. socialLevelText .. " " ..Helper.ExpandTemplate("relationship", {
                    [1] = "star",
                    [2] = heart
                }) .. "\n" .. ":" .. transIdText)
    end
    local influences = table.concat(result, "\n\n")
    cache.set(cacheKey, influences, EXP_TIME)
    return influences
end

return p