Module:Infobox Skill Node: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
(Use varianted names (show name on two lines and with colours))
Line 13: Line 13:
local params = {
local params = {
parse.name,
parse.name_with_variant_category,
parse.image,
parse.image,
parse.release,
parse.release,
Line 25: Line 25:
parse.profession_bubble_b,
parse.profession_bubble_b,
-- Include these next params just to export data to smw
-- Include these next params just to export data to smw
parse.variant_name,
parse.profession_a_smw,
parse.profession_a_smw,
parse.profession_a_level_smw,
parse.profession_a_level_smw,

Revision as of 11:01, 26 November 2024

Module documentation
This documentation is transcluded from Module:Infobox Skill Node/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Infobox Skill Node/doc. [edit]
Module:Infobox Skill Node's function main is invoked by Template:Infobox Skill Node.
Module:Infobox Skill Node requires Module:Infobox.
Module:Infobox Skill Node 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 = 'Skill node',
		class = {Infobox.smw_param('episode')},
	}
	
	local params = {
		parse.name_with_variant_category,
		parse.image,
		parse.release,
		parse.premium,
		parse.episode,
		parse.variant,
		parse.passive,
		parse.description,
		parse.unlock_level,
		parse.profession_bubble_a,
		parse.profession_bubble_b,
		-- Include these next params just to export data to smw
		parse.variant_name,
		parse.profession_a_smw,
		parse.profession_a_level_smw,
		parse.profession_a_level_high_smw,
		parse.profession_b_smw,
		parse.profession_b_level_smw,
		parse.profession_b_level_high_smw,
	}
	
	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"},
		}
	if infobox:is_param_defined(Infobox.param('variant')) > 0 and infobox:get_param(Infobox.param('variant'), 0) ~= 'N/A' 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='Description', colspan="6"},
			{tag='td', content=Infobox.param('description'), 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