此处公告通常对读者进行申明或对该WIKI某些规则进行公告,请在确认后修改本通告。本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~

全站通知:

模块:数据库

来自偶像大师闪耀色彩棱镜之歌WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:数据库/doc创建

local p = {}

function p.pJsonDec(frame)   -- P卡解析传入页面名
	local pageToUid = require('模块:P卡卡片名UID对照')
	local uid = pageToUid[frame.args[1]]
	local path = "Produce_idol_data".."/"..uid -- json数据存放路径
    local data = mw.text.jsonDecode(mw.title.new(path):getContent()) -- 解码json为lua table
    return data
end

function p.sJsonDec(frame)   -- S卡解析传入页面名
	local pageToUid = require('模块:S卡卡片名UID对照')
	local uid = pageToUid[frame.args[1]]
	local path = "Support_card_data".."/"..uid -- json数据存放路径
    local data = mw.text.jsonDecode(mw.title.new(path):getContent()) -- 解码json为lua table
    return data
end

-- P卡部分
p["P卡基本信息"]=function(frame)
	local translate = require('模块:偶像名翻译')
    local data = p.pJsonDec(frame) --传入uid
    local mlProduceIdolText_Name = translate[data.mlCharacterText_Name] -- P卡名
    local initialStar = data.initialStar -- P卡稀有度
    local release_Date = data.release_Date -- 实装日期
    local mlCharacterText_Name = translate[data.mlCharacterText_Name] -- 角色名
    frame:callParserFunction{name='#vardefine',args={'P卡卡片名',mlProduceIdolText_Name}}
    frame:callParserFunction{name='#vardefine',args={'稀有度',initialStar}}
    frame:callParserFunction{name='#vardefine',args={'pUid',data.mstProduceIdolId}}
    frame:callParserFunction{name='#vardefine',args={'实装日期',release_Date}}
    frame:callParserFunction{name='#vardefine',args={'角色名',mlCharacterText_Name}}
end

p["P卡能力值"]=function(frame)
    local data = p.pJsonDec(frame) --传入uid
    local idolParameter_vocal= data.idolParameter.vocal --vocal数值
    local idolParameter_dance= data.idolParameter.dance --dance数值
    local idolParameter_visual= data.idolParameter.visual --visual数值
    local idolParameter_mental= data.idolParameter.mental --mental数值
    frame:callParserFunction{name='#vardefine',args={'VO',idolParameter_vocal}}
    frame:callParserFunction{name='#vardefine',args={'DA',idolParameter_dance}}
    frame:callParserFunction{name='#vardefine',args={'VI',idolParameter_visual}}
    frame:callParserFunction{name='#vardefine',args={'ME',idolParameter_mental}}
end

p["P卡偶像技能"]=function(frame)
    local data = p.pJsonDec(frame) --传入uid
	local skillVariableNames = {"P卡偶像技能1", "P卡偶像技能2", "P卡偶像技能3", "P卡偶像技能4", "P卡偶像技能5"}
	local skillIconVariableNames = {"P卡偶像技能1图标", "P卡偶像技能2图标", "P卡偶像技能3图标", "P卡偶像技能4图标", "P卡偶像技能5图标"}
	for i = 1, 5 do
		local skillData = data.idolSkillList[i]
    	frame:callParserFunction{name='#vardefine', args={skillVariableNames[i], skillData.mlIdolSkillText_Name}}
    	frame:callParserFunction{name='#vardefine', args={skillIconVariableNames[i], skillData.idolSkillActionEffectList[1].actionEffectList[1].iconId}}
    	for j = 1, 5 do
    		frame:callParserFunction{name='#vardefine', args={string.format('%s_LV%d效果', skillVariableNames[i], j), skillData.idolSkillActionEffectList[j].actionEffectList[1].mlProduceCard_Description}}
    	end
	end
end

p["P卡演出技能"]=function(frame)
    local data = p.pJsonDec(frame) --传入uid
	for i = 1, 2 do  -- 两个演出技能
	    local liveSkill = data.potentialLiveSkillList[i].mlPotentialLiveSkillText_Title
	    local liveSkill_id = data.potentialLiveSkillList[i].mstPotentialLiveSkillId
	    frame:callParserFunction{name='#vardefine', args={'演出技能'..i, liveSkill}}
	    frame:callParserFunction{name='#vardefine', args={'演出技能'..i..'图标编号', liveSkill_id}}
	    for level = 1, 5 do  --技能有5个等级
	        local liveSkill_effect = data.potentialLiveSkillList[i].levelList[level].mlPotentialLiveSkillText_Description
	        frame:callParserFunction{name='#vardefine', args={'演出技能'..i..'-LV'..level..'效果', liveSkill_effect}}
	    end
	end
end
-- S卡部分
p["S卡基本信息"]=function(frame)
	local translate = require('模块:偶像名翻译')
    local data = p.sJsonDec(frame) --传入uid
    local mlSupportCharaText_Name = translate[data.mlSupportCharaText_Name] -- P卡名
	local rarity = data.rarity -- s卡稀有度
    local release_Date = data.release_Date -- 实装日期
    local mlCharacterText_Name = translate[data.mlCharacterText_Name] -- 角色名
    frame:callParserFunction{name='#vardefine',args={'S卡卡片名',mlSupportCharaText_Name}}
    frame:callParserFunction{name='#vardefine',args={'稀有度',rarity}}
    frame:callParserFunction{name='#vardefine',args={'sUid',data.mstSupportCharacterId}}
    frame:callParserFunction{name='#vardefine',args={'实装日期',release_Date}}
    frame:callParserFunction{name='#vardefine',args={'角色名',mlCharacterText_Name}}
end

p["支援能力"]=function(frame)
    local data = p.sJsonDec(frame) --传入uid
	for i = 1, #data.supportEffectList do
    	local supportEffect = data.supportEffectList[i]
    	local supportEffectName = supportEffect.mlSupportEffectText_Name
    	local supportEffectId = supportEffect.mstSupportEffectId
    	local supportEffectDescription = supportEffect.mlSupportEffectText_Description
		frame:callParserFunction{name='#vardefine', args={'支援能力'..i, supportEffectName}}
    	frame:callParserFunction{name='#vardefine', args={'支援能力'..i..'图标id', supportEffectId}}
    	frame:callParserFunction{name='#vardefine', args={'支援能力'..i..'效果', supportEffectDescription}}
	end
end

p["潜在支援技能"]=function(frame)
	local data = p.sJsonDec(frame) --传入uid
	for i = 1, #data.potentialSupportSkillList do
    	local potentialSupportSkill = data.potentialSupportSkillList[i]
    	local potentialSupportSkillName = potentialSupportSkill.mlPotentialSupportSkillText_Name
    	local potentialSupportSkillId = potentialSupportSkill.mstPotentialSupportSkillId
    	local potentialSupportSkillDescription = potentialSupportSkill.mlPotentialSupportSkillText_Description
		frame:callParserFunction{name='#vardefine', args={'潜在支援技能'..i, potentialSupportSkillName}}
		frame:callParserFunction{name='#vardefine', args={'潜在支援技能'..i..'ID', potentialSupportSkillId}}
		frame:callParserFunction{name='#vardefine', args={'潜在支援技能'..i..'描述', potentialSupportSkillDescription}}
	end
end

return p