此模块的文档可以在Module:Test/doc创建
local p ={}
local ship_data = mw.loadData('Module:ship.data')
local map_data = mw.loadData('Module:map.data')
local slotitem_data = mw.loadData('Module:slotitem.data')
local slotitem_type = mw.loadData('Module:slotitem.type')
local spd = {[5]='低', [10]='高', [0]='-', ['']='?'}
local leng = {'短', '中', '長', '超長', [0]='-'}
function sortDesc(a, b) return b[1] < a[1] end
function sortAsc(a, b) return b[1] > a[1] end
function p.info(frame)
local list = require('module:list')
local slotitem_id = tonumber(frame.args[1]) or 1
local si_data = slotitem_data[slotitem_id]
local res = {}
res[#res+1] = '<table class="wikitable" style="width:100%"><tr>'
res[#res+1] = '<td style="width:260px;">[[file:slotitem_card_' .. string.format('%03d',slotitem_id) .. '.png|link=]]</td>'
res[#res+1] = '<td style="">No.' .. string.format('%03d',slotitem_id) .. '<br/>' .. si_data[2] .. '<br/>' .. si_data[30] .. '</td></tr></table>'
res[#res+1] = '<table class="wikitable" style="width:100%"><tr><th>裝備素質</th></tr>'
res[#res+1] = '<tr><td>'
for i=7,17 do
if si_data[i] ~= 0 then
--res[#res+1] = '[[file:' .. '|link=]]' .. si_data[i]
end
end
res[#res+1] = '</td></tr></table>'
res[#res+1] = '<table class="wikitable" style="width:100%">'
res[#res+1] = '<tr><th>可裝備艦種</th></tr>'
res[#res+1] = '<tr><td>'
local stype = mw.loadData('module:ship.type')
local i = 1
--for i=1,#stype do
while stype[i] do
res[#res+1] = '<div class="SIBTori">'
res[#res+1] = '<div class="SIBTbg">[[File:ItemBoattype_'
res[#res+1] = string.format('%02d', i)
res[#res+1] = '.png|100px|link=]]</div>'
if stype[i][si_data[5]+4] == 1 then
res[#res+1] = '<div class="SIBTbg">'
else
res[#res+1] = '<div class="SIBTtxt">'
end
res[#res+1] = stype[i][2]
res[#res+1] = '</div>'
res[#res+1] = '</div>'
i = i + 1
end
res[#res+1] = '</td></tr>'
res[#res+1] = '</table>'
res[#res+1] = '<h2>同型裝備</h2>'
--{{#invoke:list|slotitem|type=1}}
res[#res+1] = list.slotitem{args={type=si_data[5]}}
res[#res+1] = '<h2>預載艦娘</h2>'
local sh_data = mw.loadData('module:test.data')
local tmp = {}
for i=1,#sh_data[eq][2] do
for key,value in pairs(sh_data) do
--if value[eq][2][i] == 1 then tmp[#tmp+1] = {value[1],key} end
res[#res+1] = value[1] .. '/'
end
end
res[#res+1] = '<h2>建造</h2>'
res[#res+1] = '請參閱[http://kancolle-db.net/ 艦これ統計データベース(仮)]'
return table.concat(res)
end
function p.test2(frame)
--local res = {}
--return frame:callParserFunction('#tag', 'tabber', '1=test1|-|2=test2')
return frame:callParserFunction('#time', 'Y-m-d H:i:s')
--return table.concat(res)
end
function p.test(frame)
local map_no = frame.args[1]
local map_pt = frame.args[2]
local s_data = map_data[2][map_no][map_pt]
local res = {}
for key, value in ipairs(s_data) do
res[#res+1] = ship_org(key, value)
end
return table.concat(res)
end
function ship_org(idx, pid)
local res = {}
res[#res+1] = '<table border="1" cellpadding="1" cellspacing="1" class="article-table" style="float:center; width:100%; font-size:16px; margin:2px;">'
res[#res+1] = '<tr><th>編組' .. idx .. ':單縱 / 制空值 0</th></tr>'
res[#res+1] = '<tr><td>'
for key, value in ipairs(pid) do
res[#res+1] = ship_mini(value)
end
res[#res+1] = '</td></tr></table>'
return table.concat(res)
end
function ship_mini(pid)
local res = {}
local sno
if ship_data[pid][1] == '' then
sno = '000'
else
sno = string.format('%03d', ship_data[pid][1])
end
res[#res+1] = '<div style="float:left; width:160px; background-color:#'
if ship_data[pid][3] == 'elite' then
res[#res+1] = 'f08080'
elseif ship_data[pid][3] == 'flagship' then
res[#res+1] = 'ffe364'
else
res[#res+1] = '808080'
end
res[#res+1] = '; padding:2px; margin:1px;">[[File:imgmini_1_' .. sno .. '.png|160px|link=]]<br/>' .. ship_data[pid][2] .. '<br/>HP: ' .. ship_data[pid][7] .. '</div>'
return table.concat(res)
end
function p.slotitem(frame)
local cat1 = frame.args[1] or 1
local cat2 = frame.args['type'] or 0 --type
local rare = frame.args[2] or -1
local res = {}
local sitem_idx = {}
if cat1 == '' then cat1 = 1 end
if cat2 == '' then cat2 = 0 end
if rare == '' then rare = -1 end
if frame.args[3] == nil or frame.args[3] == '' then frame.args[3] = 0 end
local str_split = function(s, p)
local rt = {}
string.gsub(s, '[^'..p..']+', function(w) table.insert(rt,w) end )
return rt
end
local si_type = str_split(cat2,',')
res[#res+1] = '<table border="0" cellpadding="1" cellspacing="1" class="wikitable sortable mw-datatable" style="width:100%; text-align:center; font-size:14px; line-height:22px;"><tr><th>編號</th><th style="width:120px;">名稱</th><th>類別</th><th>[[File:Icon_Range.png|18px|link=]]</th><th>[[File:Icon_Gun.png|18px|link=]]</th><th>[[File:Icon_AA.png|18px|link=]]</th><th>[[File:Icon_ASW.png|18px|link=]]</th><th>[[File:Icon_Torpedo.png|18px|link=]]</th><th>[[File:Icon_Dive.png|18px|link=]]</th><th>[[File:Icon_Hit.png|18px|link=]]</th><th>[[File:Icon_LOS.png|18px|link=]]</th><th>[[File:Icon_Evasion.png|18px|link=]]</th><th>[[File:Icon_Armor.png|18px|link=]]</th></tr>'
for key, value in pairs(slotitem_data) do
local res_tmp = {}
-- local i = 3
--repeat
-- while frame.args[i] do
if (math.ceil(slotitem_data[key][1]/(slotitem_data[key][1]+1)) == cat1*1 or cat1*1 == -1)
--and (slotitem_data[key][5] == frame.args[i]*1 or frame.args[i]*1 == 0)
and (slotitem_data[key][25] == rare*1 or rare*1 == -1) then
for j=1,#si_type do
if cat2 == 0 or slotitem_data[key][5] == si_type[j]*1 then
if slotitem_data[key][1] == 0 then
res_tmp[#res_tmp+1] = '<tr><td data-sort-value="' .. key .. '">-</td>'
else
res_tmp[#res_tmp+1] = '<tr><td data-sort-value="' .. key .. '">' .. string.format('%03d', slotitem_data[key][1]) .. '</td>'
end
res_tmp[#res_tmp+1] = '<td>[[' .. slotitem_data[key][2] .. ']]</td>'
--res_tmp[#res_tmp+1] = '<td>[[file:SlotItemType' .. string.format('%02d', slotitem_data[key][5]) .. '.png|20px|link=]]</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_type[slotitem_data[key][5]] .. '</td>'
--res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][25] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. leng[slotitem_data[key][24]] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][9] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][13] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][14] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][10] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][12] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][16] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][21] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][18] .. '</td>'
res_tmp[#res_tmp+1] = '<td>' .. slotitem_data[key][8] .. '</td>'
res_tmp[#res_tmp+1] = '<td>'
--if slotitem_data[key]['note'] then res_tmp[#res_tmp+1] = slotitem_data[key]['note'] end
res_tmp[#res_tmp+1] = '</td></tr>'
break
end
end
end
sitem_idx[#sitem_idx+1] = {key, table.concat(res_tmp)}
--i = i + 1
--until frame.args[i] == nil or frame.args[i] == ''
-- end
end
table.sort(sitem_idx, sortAsc)
for _, value in ipairs(sitem_idx) do
res[#res+1] = value[2]
end
res[#res+1] = '</table>'
return table.concat(res)
end
return p