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
 
(One intermediate revision by the same user not shown)
Line 13: Line 13:
return qty(xp)
return qty(xp)
else
else
return qty(0) .. edit
return qty(0)..edit..'[[Category:Needs experience info]]'
end
end
end
end
Line 21: Line 21:
return pcp(profession, level)
return pcp(profession, level)
else
else
return edit
return edit..'[[Category:Needs level info]]'
end
end
end
end
Line 73: Line 73:
:done()
:done()
:done()
:done()
if hc(args.respawn) then
out
:tag('tr')
:tag('th')
:wikitext('Respawn time')
:done()
:tag('td')
:wikitext(durationarg(args.respawn))
:done()
:done()
end
if hc(args.tool) then
if hc(args.tool) then
out
out

Latest revision as of 23:37, 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..'[[Category:Needs experience info]]'
		end
	end
	
	local function levelarg(profession, level)
		if hc(profession) and hc(level) then
			return pcp(profession, level)
		else
			return edit..'[[Category:Needs level info]]'
		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.respawn) then
		out
			:tag('tr')
				:tag('th')
					:wikitext('Respawn time')
				:done()
				:tag('td')
					:wikitext(durationarg(args.respawn))
				:done()
			:done()
	end
	
	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