Difference between revisions of "Module:MonsterBox"

From Curse of Aros
Jump to: navigation, search
 
(21 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
local row = table:tag('tr')
 
local row = table:tag('tr')
 
 
row:tag('td'):wikitext('<b>' .. key .. '</b>')
+
row:tag('th'):wikitext('<b>' .. key .. '</b>')
 
row:tag('td'):wikitext(value)
 
row:tag('td'):wikitext(value)
 
 
Line 16: Line 16:
 
 
 
-- Create title header
 
-- Create title header
local td = table:tag('tr'):tag('td')
+
local td = table:tag('tr'):addClass('infobox-header'):tag('td')
td:addClass('infobox-header'):attr('colspan', '2')
+
td:attr('colspan', '2')
 
:wikitext(frame.args.name)
 
:wikitext(frame.args.name)
 
 
 
-- Add image box
 
-- Add image box
table:tag('tr'):tag('td'):addClass('infobox-image'):attr('colspan', 2)
+
table:tag('tr'):addClass('infobox-image'):tag('td'):attr('colspan', 2)
 
:wikitext('[[File:' .. frame.args.image .. ']]')
 
:wikitext('[[File:' .. frame.args.image .. ']]')
 
 
 
-- Separation header
 
-- Separation header
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 2)
+
table:tag('tr'):addClass('infobox-blank'):tag('td'):attr('colspan', 2)
 
 
 
-- Monster basic attributes
 
-- Monster basic attributes
 
basic_row(table, 'Level', frame.args.level)
 
basic_row(table, 'Level', frame.args.level)
basic_row(table, 'XP', frame.args.xp)
+
basic_row(table, '[[HP]]', frame.args.hp)
basic_row(table, 'Gold', frame.args.gold .. ' gold')
+
 +
local xp = 0
 +
if frame.args.xp then
 +
xp = frame.args.xp
 +
end
 +
 +
-- Legacy, don't use
 +
if frame.args.mgxp and frame.args.mgxp > xp then
 +
xp = frame.args.mgxp
 +
end
 +
if frame.args.rgxp and frame.args.rgxp > xp then
 +
xp = frame.args.rgxp
 +
end
 +
 +
if xp then
 +
basic_row(table, '[[Combat]] [[XP]]', frame.args.xp)
 +
end
 +
 +
basic_row(table, '[[Gold]]', frame.args.gold .. ' gold')
 
basic_row(table, 'Attack speed', frame.args.speed .. ' second(s)')
 
basic_row(table, 'Attack speed', frame.args.speed .. ' second(s)')
 
 
 
-- Optional values
 
-- Optional values
 +
if frame.args.damage then
 +
basic_row(table, '[[Damage]]', frame.args.damage)
 +
end
 +
if frame.args.respawn then
 +
basic_row(table, '[[Respawn]] time', frame.args.respawn .. ' second(s)')
 +
end
 
if frame.args.found then
 
if frame.args.found then
 
basic_row(table, 'Found', frame.args.found)
 
basic_row(table, 'Found', frame.args.found)
 
end
 
end
if frame.args.damage then
+
if frame.args.action then
basic_row(table, 'Damage', frame.args.damage)
+
basic_row(table, 'Special Action', frame.args.action)
 +
end
 +
if frame.args.date then
 +
basic_row(table, 'Release Date', frame.args.date)
 
end
 
end
 
 
+
table:tag('tr'):addClass('infobox-blank'):tag('td'):attr('colspan', 2)
 +
 
 +
-- Separation header
 +
table:tag('tr'):addClass('infobox-footer'):tag('td'):attr('colspan', 2)
 
 
 
     return tostring(table)
 
     return tostring(table)

Latest revision as of 09:40, 9 November 2025

Documentation for this module may be created at Module:MonsterBox/doc

local export = {}

local pagename = mw.title.getCurrentTitle().fullText

function basic_row(table, key, value)
	local row = table:tag('tr')
	
	row:tag('th'):wikitext('<b>' .. key .. '</b>')
	row:tag('td'):wikitext(value)
	
	return row
end

function export.show(frame)
	local table = mw.html.create('table'):addClass('coa-infobox'):addClass('monster')
	
	-- Create title header
	local td = table:tag('tr'):addClass('infobox-header'):tag('td')
	td:attr('colspan', '2')
		:wikitext(frame.args.name)
		
	-- Add image box
	table:tag('tr'):addClass('infobox-image'):tag('td'):attr('colspan', 2)
		:wikitext('[[File:' .. frame.args.image .. ']]')
		
	-- Separation header
	table:tag('tr'):addClass('infobox-blank'):tag('td'):attr('colspan', 2)
	
	-- Monster basic attributes
	basic_row(table, 'Level', frame.args.level)
	basic_row(table, '[[HP]]', frame.args.hp)
	
	local xp = 0
	if frame.args.xp then
		xp = frame.args.xp
	end
	
	-- Legacy, don't use
	if frame.args.mgxp and frame.args.mgxp > xp then
		xp = frame.args.mgxp
	end
	if frame.args.rgxp and frame.args.rgxp > xp then
		xp = frame.args.rgxp
	end
	
	if xp then
		basic_row(table, '[[Combat]] [[XP]]', frame.args.xp)
	end
	
	basic_row(table, '[[Gold]]', frame.args.gold .. ' gold')
	basic_row(table, 'Attack speed', frame.args.speed .. ' second(s)')
	
	-- Optional values
	if frame.args.damage then
		basic_row(table, '[[Damage]]', frame.args.damage)
	end
	if frame.args.respawn then
		basic_row(table, '[[Respawn]] time', frame.args.respawn .. ' second(s)')
	end
	if frame.args.found then
		basic_row(table, 'Found', frame.args.found)
	end
	if frame.args.action then
		basic_row(table, 'Special Action', frame.args.action)
	end
	if frame.args.date then
		basic_row(table, 'Release Date', frame.args.date)
	end
	
	table:tag('tr'):addClass('infobox-blank'):tag('td'):attr('colspan', 2)

	-- Separation header
	table:tag('tr'):addClass('infobox-footer'):tag('td'):attr('colspan', 2)
	
    return tostring(table)
end

return export