本WIKI由cl的光玊申请于2021年08月04日创建。本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~

全站通知:

模块:歌谱函数

来自偶像荣耀/idoly prideWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:歌谱函数/doc创建

local d = require('模块:歌谱数据')

--解释:[1]为歌曲名称、[2]为谱面类型、[3]为轨道序数、[4]为节拍数

local p = {}

--轨道数量计算

function p.Quality(frame)
        local dtTb = d.tb
        local lane1 = dtTb[frame.args[1]][frame.args[2]][frame.args[3]]
        local num = #lane1
        return num
end

--轨道节拍数

function p.print(frame)
	local dtTb = d.tb
        local beat = dtTb[frame.args[1]][frame.args[2]][frame.args[3]][tonumber(frame.args[4])]
	return beat
end

--轨道位置百分比

function p.situation(frame)
        local dtTb = d.tb
        local percent = (math.abs(dtTb[frame.args[1]][frame.args[2]][frame.args[3]][tonumber(frame.args[4])])) / (dtTb[frame.args[1]][frame.args[2]]["beat"])
        return percent
end

--判断A和SP

function p.choice(frame)
        local dtTb = d.tb
        local lane1 = dtTb[frame.args[1]][frame.args[2]][frame.args[3]]
        local num = #lane1
        local kind = "A"
        for i= 1,num do
            local beat = dtTb[frame.args[1]][frame.args[2]][frame.args[3]][i]
            if (beat < 0)
            then
                kind = "SP"
            end
        end
        return kind
end

function p.GetAllLane(frame)
	
	local dtTb = d.tb
	local output = ""

	for i= 1,5 do
		local outArgs = {}
		p.GetOneLaneInfo(outArgs,dtTb[frame.args[1]][frame.args[2]]["" .. i],dtTb[frame.args[1]][frame.args[2]]["beat"])
		output = output .. frame:expandTemplate{title="歌谱/单轨", args = outArgs}
	end
	
	return output
end

function p.GetOneLaneInfo(outArgs,laneDt,allPoint)
        
	outArgs["总"] = allPoint
	outArgs["类别"] = "A"
	outArgs["SP位"] = 0
	outArgs["技能数"] = #laneDt
        
	for i= 1,#laneDt do
		local beat = laneDt[i]
		outArgs[string.format("位%s", i)] = math.abs(beat)
		if (beat < 0) then
			outArgs["类别"] = "SP"
			outArgs["SP位"] = i
		end
		end
end

function p.GetAllLaneList(frame)
	
	local dtTb = d.tb
	local output = "<tabber>"

	for key, mTb in pairs(dtTb[frame.args[1]]) do
		output = output .. key ..  "= {{歌谱/全轨|" .. frame.args[1] .. "|" .. key .."}}|-|"
	end
	output = output .. "</tabber>"
	
	return frame:preprocess(output)
end

return p