Module:Infobox Item: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
(Change value to shop buy and shop sell price)
No edit summary
Line 22: Line 22:
parse.additional_episode,
parse.additional_episode,
parse.quest,
parse.quest,
parse.shop_buy,
parse.buy_price,
parse.shop_sell,
parse.sell_price,
parse.description,
parse.description,
parse.variant,
parse.variant,
Line 82: Line 82:
infobox:addClass('infobox-questitem')
infobox:addClass('infobox-questitem')
end
end
if infobox:is_param_defined(Infobox.param('shop_buy')) > 0 then
if infobox:is_param_defined(Infobox.param('buy_price')) == 0 or infobox:get_param(Infobox.param('buy_price'), 0) == 'No' then
infobox:add_row{
infobox:add_row{
{tag='th', content='Shop Buy', colspan="6"},
{tag='th', content='Buy Price', colspan="6"},
{tag='td', content=Infobox.param('shop_buy'), colspan="14"},
{tag='td', content=Infobox.param('buy_price'), colspan="14"},
}
}
end
end
if infobox:is_param_defined(Infobox.param('shop_sell')) > 0 then
if infobox:is_param_defined(Infobox.param('sell_price')) == 0 or infobox:get_param(Infobox.param('sell_price'), 0) == 'No' then
infobox:add_row{
infobox:add_row{
{tag='th', content='Shop Sell', colspan="6"},
{tag='th', content='Sell Price', colspan="6"},
{tag='td', content=Infobox.param('shop_sell'), colspan="14"},
{tag='td', content=Infobox.param('sell_price'), colspan="14"},
}
}
end
end

Revision as of 21:27, 20 November 2024

Module documentation
This documentation is transcluded from Module:Infobox Item/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Infobox Item/doc. [edit]
Module:Infobox Item's function main is invoked by Template:Infobox Item.
Module:Infobox Item requires Module:Infobox.
Module:Infobox Item 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 = 'Item',
		class = {Infobox.smw_param('episode'), Infobox.param('rarity_from_name')},
	}
	
	local params = {
		parse.actions,
		parse.name,
		parse.rarity_from_name,
		parse.image,
		parse.release,
		parse.premium,
		parse.episode,
		parse.additional_episode,
		parse.quest,
		parse.buy_price,
		parse.sell_price,
		parse.description,
		parse.variant,
		parse.profession_bubble_a,
		parse.profession_bubble_b,
		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"},
		}
	local additional_episode = infobox:is_param_defined(Infobox.param('additional_episode')) > 0
	if additional_episode then
		infobox:add_row{
			{tag='th', content='[[Episodes]]', colspan="6", rowspan="2"},
			{tag='td', content=Infobox.param('episode'), colspan="14"},
		}
		:add_row{
			{tag='td', content=Infobox.param('additional_episode'), colspan="14"},
		}
		local additional_episode_class = 'infobox-'..infobox:get_param(Infobox.smw_param('additional_episode'), 0)..'-additional'
		additional_episode_class = mw.ustring.gsub(additional_episode_class, '%s', '_')
		infobox:addClass(additional_episode_class)
	else
		infobox:add_row{
			{tag='th', content='[[Episode]]', colspan="6"},
			{tag='td', content=Infobox.param('episode'), colspan="14"},
		}
	end
	infobox: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('quest')) == 0 or infobox:get_param(Infobox.param('quest'), 0) == 'No' then
		infobox:add_row{
				{tag='th', content='Value', colspan="6"},
				{tag='td', content=Infobox.param('value'), colspan="14"},
			}
	else
		infobox:add_row{
				{tag='th', content='Quest', colspan="6"},
				{tag='td', content=Infobox.param('quest'), colspan="14" }
			}
		infobox:addClass('infobox-questitem')
	end
	if infobox:is_param_defined(Infobox.param('buy_price')) == 0 or infobox:get_param(Infobox.param('buy_price'), 0) == 'No' then
		infobox:add_row{
			{tag='th', content='Buy Price', colspan="6"},
			{tag='td', content=Infobox.param('buy_price'), colspan="14"},
		}
	end
	if infobox:is_param_defined(Infobox.param('sell_price')) == 0 or infobox:get_param(Infobox.param('sell_price'), 0) == 'No' then
		infobox:add_row{
			{tag='th', content='Sell Price', colspan="6"},
			{tag='td', content=Infobox.param('sell_price'), colspan="14"},
		}
	end
	if infobox:is_param_defined(Infobox.param('actions')) > 0 then
		infobox:add_row{
			{tag='th', content='Actions', colspan="6"},
			{tag='td', content=Infobox.param('actions'), colspan="14"}
		}
	end
	infobox:add_row{
		{tag='th', content='Description', colspan="6"},
		{tag='td', content=Infobox.param('description'), 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
	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