「Module:SongUnlock」:修訂間差異

增加 738 位元組 、​ 2024年7月31日 (星期三)
IV-α及多条件支持
無編輯摘要
(IV-α及多条件支持)
 
第28行: 第28行:
    end
    end


    local function getResult(func,tag)
    local function getResult(list,tag)
     if type(func) == "function" then return func(tag);end
   for i,func in ipairs(list) do
     return tag:wikitext(tostring(func))
   if i > 1 then tag = tag:wikitext("<br/>") end
     if type(func) == "function" then tag = func(tag) else tag = tag:wikitext(tostring(func)) end
   end
   return tag
    end
    end


第62行: 第65行:
      query = data.singleSongInformation(songName, "name")
      query = data.singleSongInformation(songName, "name")
    end
    end
 
local diffCount
if query("ratingA") then diffCount = 5 else diffCount = 4 end
    local DefaultValue;
    local DefaultValue;
    local isDefault = {
    local isDefault = {
第71行: 第77行:
      type(args["disableAuto"]) == "nil", -- 用于判断应不应该初始化难度IV解禁方法的文本
      type(args["disableAuto"]) == "nil", -- 用于判断应不应该初始化难度IV解禁方法的文本
    }
    }
    local unlockCondition;
    if query("ratingA") then table.insert(isDefault, 5, not doArgExist("难度IV_Alpha解禁方法")) end
    
    
 
    local unlockCondition = {}
    if args["曲目解禁方法"] then -- 老版本/自定义
    if args["曲包"] then -- 
     unlockCondition = args["曲目解禁方法"];
    elseif args["需求旅行者徽章"] then --
     unlockCondition = "使用" .. args["需求旅行者徽章"] .. "个旅行者徽章解锁"
   elseif args["需求等级"] then --
     unlockCondition = "玩家等级达到 " .. args["需求等级"]
   elseif args["旅程模式"] then --
     unlockCondition = "于旅程模式 星球“" .. args["旅程模式"] .. "”内解锁"
   elseif args["章节挑战"] then --
     unlockCondition = "于旅程模式 星球“" .. args["章节挑战"] .. "”内解锁章节挑战"
     DefaultValue = "通关 “" .. args["章节挑战"] .. "” 章节挑战对应难度后解锁"
     isDefault[5] = false;
   elseif args["曲包"] then -- 
      if packName(args["曲包"]) == "[[星际之声]]" 
      if packName(args["曲包"]) == "[[星际之声]]" 
        then unlockCondition = "购买单曲 [" .. songName .. "]"
        then table.insert(unlockCondition, "购买单曲 [" .. songName .. "]")
        else unlockCondition = function(tag)
        else table.insert(unlockCondition, function(tag)
            --"购买歌曲包 [&zwnj;" .. packName(args["曲包"]) .. "&zwnj;]"
            --"购买歌曲包 [&zwnj;" .. packName(args["曲包"]) .. "&zwnj;]"
            return tag:wikitext("购买歌曲包 [")
            return tag:wikitext("购买歌曲包 [")
                  :tag("span"):wikitext(packName(args["曲包"])):done()
                  :tag("span"):wikitext(packName(args["曲包"])):done()
                  :wikitext("]")
                  :wikitext("]")
         end
       end
        end
        )
    else -- 假设前面的条件没一 满足,那么理论 是忘写了
     end
      unlockCondition = "[ 待补充]"
   end
    if args["需求旅行者徽章"] then -- 
     table.insert(unlockCondition, "使用" .. args["需求旅行者徽章"] .. " 旅行者徽章解锁")
     if tonumber(args["需求旅行者徽章"]) > 2 then
     table.insert(unlockCondition, "旅行者等级20以 开放购买") end
   end
   if args["需求等级"] then --
     table.insert(unlockCondition, "玩家等级达到 " .. args["需求等级"])
   end
   if args["旅程模式"] then --
      table.insert(unlockCondition, "于旅程模式 星球“" .. args["旅程模式"] .. "”内解锁")
   end
   if args["章节挑战"] then --
     table.insert(unlockCondition, "于旅程模式 星球“" .. args["章节挑战"] .. "”内解锁章节挑战")
     DefaultValue = " 通关 “" .. args["章节挑战"] .. "” 章节挑战对应难度后解锁"
     isDefault[diffCount+1] = false;
   end
   if args["曲目解禁方法"] then -- 老版本/自定义
     table.insert(unlockCondition, args["曲目解禁方法"])
    end
    end
   if #unlockCondition == 0 then -- 假设前面的条件没一个满足,那么理论上是忘写了
     table.insert(unlockCondition, "[待补充]")
end


    if isDefault[5] then -- 初始化难度IV解禁方法
    if isDefault[diffCount+1] then -- 初始化难度IV解禁方法
      args["难度IV解禁方法"] = args["难度IV解禁方法"] or getCondition(query("rating4"));
      args["难度IV解禁方法"] = args["难度IV解禁方法"] or getCondition(query("rating4"));
      isDefault[4] = false;
      isDefault[4] = false;
第111行: 第127行:
    local function getDefValue(start)
    local function getDefValue(start)
      local tmp = 1;
      local tmp = 1;
      for i=start+1,4 do
      for i=start+1,diffCount do
        if isDefault[i] then tmp = tmp + 1;
        if isDefault[i] then tmp = tmp + 1;
        else return tmp;
        else return tmp;
第137行: 第153行:
    -- 第一行:通用条件
    -- 第一行:通用条件
    local tag = 
    local tag = 
      box:tag("tr"):tag("th"):wikitext("曲目解锁"):attr("rowspan", "5"):css("width", "6em"):done()
      box:tag("tr"):tag("th"):wikitext("曲目解锁"):attr("rowspan", diffCount + 1):css("width", "6em"):done()
        :tag("td"):wikitext("通用条件"):css("width", "8em"):done()
        :tag("td"):wikitext("通用条件"):css("width", "8em"):done()
        :tag("td"); tag = getResult(unlockCondition,tag):done()
        :tag("td"); tag = getResult(unlockCondition,tag):done()
第146行: 第162行:
    summonTag("#e65100","难度Ⅲ","难度III解禁方法")
    summonTag("#e65100","难度Ⅲ","难度III解禁方法")
    summonTag("#ab47bc","难度Ⅳ","难度IV解禁方法")
    summonTag("#ab47bc","难度Ⅳ","难度IV解禁方法")
   if query("ratingA") then summonTag("#ca8bd5","难度Ⅳ-α","难度IV_Alpha解禁方法") end
    
    
    return tostring(box)
    return tostring(box)
249

次編輯