Módulo:Sandbox/Toktom

De RuneScape Wiki
Ir para: navegação, pesquisa

A documentação para este módulo pode ser criada em Módulo:Sandbox/Toktom/doc

-- <nowiki>
local p = {}
local data  = mw.loadData('Módulo:Sandbox/Toktom/Data')

function get_item(item_name)
	for _, item in ipairs(data.armors) do
		if item.name == item_name then
			return item
		end
	end
end

function get_diff_value(item_a_value, item_b_value)
	
	local diff = tonumber(item_b_value) - tonumber(item_a_value)
	
	if diff > 0 then
		color = 'text-green'
		value = '+'
		return diff, color, value
	elseif diff == 0 then
		color = 'text-yellow'
		value = ''
		return diff, color, value
	elseif diff < 0 then
		color = 'text-red'
		value = ''
		return diff, color, value
	end
	
end


function p.main(frame)
	local invokeArgs = frame.args
	local args = frame:getParent().args
	
	p = comparisonTable(args, frame)
	
	return p
end

function comparisonTable(args, frame)
	local item_a = get_item(args.a)
	local item_b = get_item(args.b)
	
	local t = mw.html.create('table')
	:addClass('wikitable')
	:tag('caption') :wikitext('Comparação de equipamento'):done()
	:tag('tr')
	:tag('th')	:wikitext('[[Ficheiro:' .. item_a.name .. '.png|link='..item_a.name..']]'.. '<br/> [['..item_a.name ..']]')	:attr('colspan', '6'):done()
	:tag('th')	:wikitext('[[Ficheiro:' .. item_b.name .. '.png|link='..item_b.name..']]'.. '<br/> [['..item_b.name ..']]')	:attr('colspan', '6'):done()
	:tag('th')	:wikitext('[[Ficheiro:' .. item_a.name .. '.png|link='..item_a.name..']]'..'  [[Ficheiro:Seta.gif]]  '..'[[Ficheiro:' .. item_b.name .. '.png|link='..item_b.name..']]'):attr('colspan', '6'):done()
	:done()

	local atk_dif = tonumber(item_b.atk_b) - tonumber(item_a.atk_b)
	local str_dif = tonumber(item_b.str_b) - tonumber(item_a.str_b)
	local def_dif = tonumber(item_b.armor) - tonumber(item_a.armor)
	local life_dif = tonumber(item_b.life) - tonumber(item_a.life)
	local pray_dif = tonumber(item_b.pray) - tonumber(item_a.pray)
	
	local tier	= '[[Ficheiro:Combate ícone.png|24px|link=]]'
	local atk	= '[[Ficheiro:Ataque ícone.png|link=Ataque]]'
	local str	= '[[Ficheiro:Força ícone.png|link=Força]]'
	local def	= '[[Ficheiro:Defesa ícone.png|link=Defesa]]'
	local life	= '[[Ficheiro:Condição Física ícone.png|link=Condição Física]]'
	local pray	= '[[Ficheiro:Oração ícone.png|link=Oração]]'
	
	t:tag('tr')
	:tag('th')	:wikitext(tier)	:done()
	:tag('th')	:wikitext(atk)	:done()
	:tag('th')	:wikitext(str)	:done()
	:tag('th')	:wikitext(def)	:done()
	:tag('th')	:wikitext(life)	:done()
	:tag('th')	:wikitext(pray)	:done()
	:tag('th')	:wikitext(tier)	:done()
	:tag('th')	:wikitext(atk)	:done()
	:tag('th')	:wikitext(str)	:done()
	:tag('th')	:wikitext(def)	:done()
	:tag('th')	:wikitext(life)	:done()
	:tag('th')	:wikitext(pray)	:done()
	:tag('th')	:wikitext(tier)	:done()
	:tag('th')	:wikitext(atk)	:done()
	:tag('th')	:wikitext(str)	:done()
	:tag('th')	:wikitext(def)	:done()
	:tag('th')	:wikitext(life)	:done()
	:tag('th')	:wikitext(pray)	:done()
	:done()
	
	local tier_diff, tier_color, tier_preffix = get_diff_value(item_a.tier, item_b.tier)
	local atk_diff, atk_color, atk_preffix = get_diff_value(item_a.atk_b, item_b.atk_b)
	local str_diff, str_color, str_preffix = get_diff_value(item_a.str_b, item_b.str_b)
	local def_diff, def_color, def_preffix = get_diff_value(item_a.armor, item_b.armor)
	local life_diff, life_color, life_preffix = get_diff_value(item_a.life, item_b.life)
	local pray_diff, pray_color, pray_preffix = get_diff_value(item_a.pray, item_b.pray)
	
	t:tag('tr')
	:tag('td')	:wikitext(item_a.tier):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_a.atk_b):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_a.str_b):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_a.armor):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_a.life):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_a.pray):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_b.tier):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_b.atk_b):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_b.str_b):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_b.armor):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_b.life):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(item_b.pray):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(tier_preffix..tier_diff):addClass(tier_color):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(atk_preffix..atk_diff):addClass(atk_color):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(str_preffix..str_diff):addClass(str_color):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(def_preffix..def_diff):addClass(def_color):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(life_preffix..life_diff):addClass(life_color):attr('style', 'text-align: center;')	:done()
	:tag('td')	:wikitext(pray_preffix..pray_diff):addClass(pray_color):attr('style', 'text-align: center;')	:done()
	:done()
	
	return t
end

return p
-- </nowiki>