Module:Profession info: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
Line 34:
local smw_properties = {
['SkillingSkill node name'] = args.name,
['Uses profession'] = args.profession,
['Profession level'] = args.level,
['Profession experience'] = args.xp,
}
mw.smw.set(smw_properties)

Revision as of 23:16, 26 November 2024

Module documentation
This documentation is transcluded from Module:Profession info/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Profession info/doc. [edit]
Module:Profession info's function main is invoked by Template:Profession info.
Module:Profession info requires Module:Edit button.
Module:Profession info requires Module:Param Parse.
Module:Profession info requires Module:Profession clickpic.
Module:Profession info requires Module:Quantity box.

local p = {}
local editbutton = require('Module:Edit button')
local edit = editbutton("'''?''' (edit)")
local hc = require('Module:Param Parse').has_content
local qty = require('Module:Quantity box')._main
local pcp = require('Module:Profession clickpic')._main

function p.main(frame)
	local args = frame:getParent().args
	
	local function exparg(xp)
		if hc(xp) then
			return qty(xp)
		else
			return qty(0) .. edit
		end
	end
	
	local function levelarg(profession, level)
		if hc(profession) and hc(level) then
			return pcp(profession, level)
		else
			return edit
		end
	end
	
	local function durationarg(duration)
		if hc(duration) then
			return duration..' seconds'
		else
			return edit
		end
	end
	
	local smw_properties = {
		['Skill node name'] = args.name,
		['Uses profession'] = args.profession,
		['Profession level'] = args.level,
		['Profession experience'] = args.xp
	}
	mw.smw.set(smw_properties)
	
	local out = mw.html.create('table')
		:addClass('wikitable')
		:tag('tr')
			:tag('th')
				:attr{ colspan = '2' }
				:wikitext(args.name)
			:done()
		:done()
		:tag('tr')
			:tag('th')
				:wikitext('Level required')
			:done()
			:tag('td')
				:wikitext(levelarg(args.profession, args.level))
			:done()
		:done()
		:tag('tr')
			:tag('th')
				:wikitext('[['..args.profession..'|'..args.profession..' XP]]')
			:done()
			:tag('td')
				:wikitext(exparg(args.xp))
			:done()
		:done()
		:tag('tr')
			:tag('th')
				:wikitext('Duration')
			:done()
			:tag('td')
				:wikitext(durationarg(args.duration))
			:done()
		:done()
		
	if hc(args.tool) then
		out
			:tag('tr')
				:tag('th')
					:wikitext('Required tool')
				:done()
				:tag('td')
					:wikitext(args.tool)
				:done()
			:done()
	end
	
	if hc(args.input) then
		out
			:tag('tr')
				:tag('th')
					:wikitext('Required input')
				:done()
				:tag('td')
					:wikitext(args.input)
				:done()
			:done()
	end
	
	return out
end

return p