Module:Infobox Monster: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
 
(2 intermediate revisions by one other user not shown)
Line 18: Line 18:
parse.premium,
parse.premium,
parse.episode,
parse.episode,
{name = 'level', func = parse.number}, -- TODO - same as below
{name = 'hp', func = parse.number}, -- TODO - move to Module:Param Parse once more details are available, and create smw_property
{name = 'hp', func = parse.number}, -- TODO - move to Module:Param Parse once more details are available, and create smw_property
{name = 'xp', func = parse.number}, -- TODO - same as above
{name = 'xp', func = parse.number}, -- TODO - same as above
Line 24: Line 23:
parse.passive,
parse.passive,
parse.examine,
parse.examine,
parse.profession_bubble_a,
parse.profession_bubble_b,
}
}
Line 45: Line 46:
{tag='th', content='[[Premium Pass|Premium]]', colspan="6"},
{tag='th', content='[[Premium Pass|Premium]]', colspan="6"},
{tag='td', content=Infobox.param('premium'), colspan="14"},
{tag='td', content=Infobox.param('premium'), colspan="14"},
}
:add_row{
{tag='th', content='[[Level]]', colspan="6"},
{tag='td', content=Infobox.param('level'), colspan="14"}
}
}
:add_row{
:add_row{
Line 58: Line 55:
{tag='td', content=Infobox.param('xp'), colspan="14"},
{tag='td', content=Infobox.param('xp'), colspan="14"},
}
}
if infobox:is_param_defined(Infobox.param('variant')) > 0 then
:add_row{
infobox:add_row{
{tag='th', content='[[Variant]] of', colspan="6"},
{tag='th', content='[[Variant]] of', colspan="6"},
{tag='td', content=Infobox.param('variant'), colspan="14"},
{tag='td', content=Infobox.param('variant'), colspan="14"},
}
}
end
:add_row{
infobox:add_row{
{tag='th', content='[[File:Passive activity icon.png|14px|link=Passive activity]] [[Passive activity|Passive]]', colspan="6"},
{tag='th', content='[[File:Passive activity icon.png|14px|link=Passive activity]] [[Passive activity|Passive]]', colspan="6"},
{tag='td', content=Infobox.param('passive'), colspan="14"},
{tag='td', content=Infobox.param('passive'), colspan="14"},
Line 70: Line 69:
{tag='td', content=Infobox.param('examine'), colspan="14"}
{tag='td', content=Infobox.param('examine'), colspan="14"}
}
}
local bubble_a = infobox:is_param_defined(Infobox.param('profession_bubble_a')) > 0
:pad(20)
local bubble_b = infobox:is_param_defined(Infobox.param('profession_bubble_b')) > 0
if bubble_a and bubble_b then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble-item', colspan="10"},
{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="10"},
addClass = 'infobox-bubble-row'
}
elseif bubble_a then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble-item', colspan="20"},
addClass = 'infobox-bubble-row'
}
elseif bubble_b then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="20"},
addClass = 'infobox-bubble-row'
}
else
infobox:pad('20')
end
return infobox
return infobox

Latest revision as of 17:03, 1 November 2024

Module documentation
This documentation is transcluded from Template:No documentation/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Infobox Monster/doc. [edit]
Module:Infobox Monster's function main is invoked by Template:Infobox Monster.
Module:Infobox Monster requires Module:Infobox.
Module:Infobox Monster requires Module:Param Parse.

local p = {}

local Infobox = require('Module:Infobox')
local parse = require('Module:Param Parse')

function p.main(frame)
	local args = frame:getParent().args
	
	local config = {
		infobox_name = 'Monster',
		class = {Infobox.smw_param('episode')},
	}
	
	local params = {
		parse.name,
		parse.image_size300,
		parse.release,
		parse.premium,
		parse.episode,
		{name = 'hp', func = parse.number}, -- TODO - move to Module:Param Parse once more details are available, and create smw_property
		{name = 'xp', func = parse.number}, -- TODO - same as above
		parse.variant,
		parse.passive,
		parse.examine,
		parse.profession_bubble_a,
		parse.profession_bubble_b,
	}
	
	local infobox = Infobox.new(config, params, args)
	infobox
		:add_row{
			{tag='th', content=Infobox.param('name'), class='infobox-header', colspan='20'},
		}
		:add_row{
			{tag='td', content=Infobox.param('image'), class='infobox-image', colspan='20'},
		}
		:add_row{
			{tag='th', content='Release', colspan="6"},
			{tag='td', content=Infobox.param('release'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Episode]]', colspan="6"},
			{tag='td', content=Infobox.param('episode'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Premium Pass|Premium]]', colspan="6"},
			{tag='td', content=Infobox.param('premium'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Health]]', colspan="6"},
			{tag='td', content=Infobox.param('hp'), colspan="14"},
		}
		:add_row{
			{tag='th', content='Experience', colspan="6"},
			{tag='td', content=Infobox.param('xp'), colspan="14"},
		}
	if infobox:is_param_defined(Infobox.param('variant')) > 0 then
		infobox:add_row{
			{tag='th', content='[[Variant]] of', colspan="6"},
			{tag='td', content=Infobox.param('variant'), colspan="14"},
		}
	end
	infobox:add_row{
			{tag='th', content='[[File:Passive activity icon.png|14px|link=Passive activity]] [[Passive activity|Passive]]', colspan="6"},
			{tag='td', content=Infobox.param('passive'), colspan="14"},
		}
		:add_row{
			{tag='th', content='Examine', colspan="6"},
			{tag='td', content=Infobox.param('examine'), colspan="14"}
		}
	local bubble_a = infobox:is_param_defined(Infobox.param('profession_bubble_a')) > 0
	local bubble_b = infobox:is_param_defined(Infobox.param('profession_bubble_b')) > 0
	if bubble_a and bubble_b then
		infobox:add_row{
			{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble-item', colspan="10"},
			{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="10"},
			addClass = 'infobox-bubble-row'
		}
	elseif bubble_a then
		infobox:add_row{
			{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble-item', colspan="20"},
			addClass = 'infobox-bubble-row'
		}
	elseif bubble_b then
		infobox:add_row{
			{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="20"},
			addClass = 'infobox-bubble-row'
		}
	else
		infobox:pad('20')
	end
	
	return infobox
end

return p