Module:Infobox Monster: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
(Cleaner to do it this way imo)
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 3: Line 3:
local Infobox = require('Module:Infobox')
local Infobox = require('Module:Infobox')
local parse = require('Module:Param Parse')
local parse = require('Module:Param Parse')

local classMap = {
['hopeport'] = 'hopeport',
['hopeforest'] = 'hopeforest',
['mine of mantuban'] = 'mantuban',
['crenopolis'] = 'crenopolis',
}


function p.main(frame)
function p.main(frame)
Line 16: Line 9:
local config = {
local config = {
infobox_name = 'Monster',
infobox_name = 'Monster',
class = {Infobox.smw_param('episode')},
}
}
local params = {
local params = {
parse.name,
parse.name,
parse.image,
parse.image_size300,
parse.release,
parse.release,
parse.premium,
parse.premium,
Line 77: Line 71:
}
}
:pad(20)
:pad(20)
local ep_param = string.lower(infobox.args_raw['episode'] or '')
if classMap[ep_param] ~= nil then
infobox:addClass('infobox-'..classMap[ep_param])
end
return infobox
return infobox

Latest revision as of 18:20, 26 June 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 = '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 = 'xp', func = parse.number}, -- TODO - same as above
		parse.variant,
		parse.passive,
		parse.examine,
	}
	
	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='[[Level]]', colspan="6"},
			{tag='td', content=Infobox.param('level'), 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"},
		}
		:add_row{
			{tag='th', content='[[Variant]] of', colspan="6"},
			{tag='td', content=Infobox.param('variant'), colspan="14"},
		}
		: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"}
		}
		:pad(20)
	
	return infobox
end

return p