◆少前百科是非盈利性、非官方的少女前线维基百科。
◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科
◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科
◆To foreigners,You can use twitter to contact us.
Icon Nyto Silver.png

“模块:SquadTables”的版本间的差异

来自少前百科GFwiki
跳转至: 导航搜索
 
第84行: 第84行:
  
 
local function addChipTable()
 
local function addChipTable()
chipTable = root:tag('table'):addClass('stattable chip-table')
+
local cpuTable = root:tag('table'):addClass('stattable cpu-table')
chipTable:tag('tr')
+
cpuTable:tag('tr')
 
:tag('th'):addClass('gflabelbg'):attr('colspan', 5):wikitext('芯片')
 
:tag('th'):addClass('gflabelbg'):attr('colspan', 5):wikitext('芯片')
local firstRow = chipTable:tag('tr')
+
local cpuRow = cpuTable:tag('tr')
firstRow:tag('td'):attr({colspan = 2, rowspan = 4})
+
cpuRow:tag('td'):addClass('cpu-cell'):attr('rowspan', 4)
 
:tag('div'):addClass('cpu-center'):wikitext(args['芯片5'])
 
:tag('div'):addClass('cpu-center'):wikitext(args['芯片5'])
local row = firstRow
+
local row = cpuRow
 
local sums = {}
 
local sums = {}
 
for i = 1, 4 do
 
for i = 1, 4 do
第96行: 第96行:
 
chips[i] = 0
 
chips[i] = 0
 
sums[i] = row:tag('td'):attr('colspan', 2)
 
sums[i] = row:tag('td'):attr('colspan', 2)
row = chipTable:tag('tr')
+
if i < 4 then
 +
row = cpuTable:tag('tr')
 +
end
 
end
 
end
 +
chipTable = root:tag('table'):addClass('stattable chip-table')
 +
row = chipTable:tag('tr')
 
row:tag('th'):wikitext('芯片')
 
row:tag('th'):wikitext('芯片')
 
for i = 1, 10 do
 
for i = 1, 10 do

2024年5月5日 (日) 12:09的最新版本

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

local p = {}
local args
local root
local chipTable
local advanceTable
local attris = {'杀伤', '破防', '精度', '装填'}
local chips = {}
local advances = {}

local function addSumTable()
	local sumTable = root:tag('table'):addClass('stattable attr-sum-table')
	sumTable:tag('tr')
		:tag('th'):addClass('gflabelbg'):attr('colspan', 5):wikitext('面板数值')
	local thead = sumTable:tag('tr')
	thead:tag('td'):wikitext('属性')
	thead:tag('td'):wikitext('基础数值')
	thead:tag('td'):wikitext('芯片加成')
	thead:tag('td'):wikitext('迭代上限')
	thead:tag('td'):wikitext('最大数值')
	for i = 1, 4 do
		local attriRow = sumTable:tag('tr')
		local attri = attris[i]
		local baseAttri = args['基础' .. attri]
		attriRow:tag('td'):wikitext(attri)
		attriRow:tag('td'):wikitext(baseAttri)
		attriRow:tag('td'):wikitext(chips[i])
		attriRow:tag('td'):wikitext(advances[i])
		attriRow:tag('td'):wikitext(baseAttri + chips[i] + advances[i])
	end
end

local function addAdvanceAttri(i)
	local advanceRow = advanceTable:tag('tr')
	advanceRow:tag('td'):wikitext('LV.', i)
	local starCell = advanceRow:tag('td')
	local q = math.floor(i / 2)
	local r = i % 2
	local span = starCell:tag('span'):addClass('orange-star')
	span:wikitext(mw.ustring.rep('★', q), mw.ustring.rep('☆', r))
	starCell:tag('span'):wikitext(mw.ustring.rep('★', 5 - q - r))
	for a = 1, 4 do
		local attri = tonumber(args['迭代' .. tostring(i) .. attris[a]])
		advanceRow:tag('td'):wikitext(attri or '')
		advances[a] = advances[a] + (attri or 0)
	end
end

local function addAdvanceTable()
	advanceTable = root:tag('table'):addClass('stattable advance-table')
	advanceTable:tag('tr')
		:tag('th'):addClass('gflabelbg'):attr('colspan', 6):wikitext('迭代')
	local thead = advanceTable:tag('tr')
	thead:tag('td'):wikitext('对应等级')
	thead:tag('td'):wikitext('星级')
	for i = 1, 4 do
		thead:tag('td'):wikitext(attris[i])
		advances[i] = 0
	end
	for i = 1, 10 do
		addAdvanceAttri(i)
	end
end

local function round(n)
	return math.floor(n + 0.5)
end

local function addChipAttri(i)
	local chipRow = chipTable:tag('tr'):attr('id', string.format('chip-%s-%d', string.lower(args['代号']), i))
	local chipNum = '芯片' .. tostring(i)
	chipRow:tag('td'):wikitext(chipNum)
	for a = 1, 4 do
		local attriCell = chipRow:tag('td')
		local attri = tonumber(args[chipNum .. attris[a]])
		if attri ~= nil then
			attriCell:tag('span'):wikitext(round(0.6*attri))
			attriCell:tag('span'):wikitext(attri)
			local maxValue = round(2.5*attri)
			attriCell:tag('span'):wikitext(maxValue)
			chips[a] = chips[a] + maxValue
		end
	end
end

local function addChipTable()
	local cpuTable = root:tag('table'):addClass('stattable cpu-table')
	cpuTable:tag('tr')
		:tag('th'):addClass('gflabelbg'):attr('colspan', 5):wikitext('芯片')
	local cpuRow = cpuTable:tag('tr')
	cpuRow:tag('td'):addClass('cpu-cell'):attr('rowspan', 4)
		:tag('div'):addClass('cpu-center'):wikitext(args['芯片5'])
	local row = cpuRow
	local sums = {}
	for i = 1, 4 do
		row:tag('td'):wikitext(attris[i])
		chips[i] = 0
		sums[i] = row:tag('td'):attr('colspan', 2)
		if i < 4 then
			row = cpuTable:tag('tr')
		end
	end
	chipTable = root:tag('table'):addClass('stattable chip-table')
	row = chipTable:tag('tr')
	row:tag('th'):wikitext('芯片')
	for i = 1, 10 do
		addChipAttri(i)
	end
	for i = 1, 4 do
		row:tag('th'):wikitext(attris[i])
		sums[i]:wikitext(chips[i])
	end
end

function p.main(frame)
	args = frame:getParent().args
	root = mw.html.create()
	addChipTable()
	addAdvanceTable()
	addSumTable()
	return tostring(root)
end

return p