Module:Infobox NPC: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 18: Line 18:
parse.premium,
parse.premium,
parse.episode,
parse.episode,
{name = 'location', func = parse.has_content, smw_property = 'Location', category_incomplete = 'Needs location'},
parse.profession,
parse.profession,
{name = 'shop', func = parse.has_content, smw_property = 'Shop'}, -- TODO - move to Module:Param Parse once more details are available, and create property page
{name = 'shop', func = parse.has_content, smw_property = 'Shop'}, -- TODO - move to Module:Param Parse once more details are available, and create property page
Line 42: Line 43:
{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='Location', colspan="6"},
{tag='td', content=Infobox.param('location'), colspan="14"},
}
}
:add_row{
:add_row{

Latest revision as of 18:22, 17 May 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 NPC/doc. [edit]
Module:Infobox NPC's function main is invoked by Template:Infobox NPC.
Module:Infobox NPC requires Module:Infobox.
Module:Infobox NPC 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 = 'NPC',
		class = {Infobox.smw_param('episode')},
	}
	
	local params = {
		parse.name,
		parse.image,
		parse.release,
		parse.premium,
		parse.episode,
		{name = 'location', func = parse.has_content, smw_property = 'Location', category_incomplete = 'Needs location'},
		parse.profession,
		{name = 'shop', func = parse.has_content, smw_property = 'Shop'}, -- TODO - move to Module:Param Parse once more details are available, and create property page
		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='Location', colspan="6"},
			{tag='td', content=Infobox.param('location'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Profession]]', colspan="6"},
			{tag='td', content=Infobox.param('profession'), colspan="14"},
		}
	if infobox:is_param_defined(Infobox.param('shop')) > 0 then
		infobox:add_row{
			{tag='th', content='[[Shop]]', colspan="6"},
			{tag='td', content=Infobox.param('shop'), colspan="14"},
		}
	end
	infobox:add_row{
		{tag='th', content='Examine', colspan="6"},
		{tag='td', content=Infobox.param('examine'), colspan="14"}
	}
	:pad(20)
	
	return infobox
end

return p