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
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local editButton = require('Module:Edit button')
local editbutton = require('Module:Edit button')
local edit = editbutton("'''?''' (edit)")
local hc = require('Module:Param Parse').has_content
local hc = require('Module:Param Parse').has_content
local qty = require('Module:Quantity box')._main

local pcp = require('Module:Profession clickpic')._main
local p = {}


function p.main(frame)
function p.main(frame)
local args = frame:getParent().args
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')
local out = mw.html.create('table')
Line 20: Line 54:
:done()
:done()
:tag('td')
:tag('td')
:wikitext(hc(args.level) and (args.level) or editButton("'''?''' (edit)"))
:wikitext(levelarg(args.profession, args.level))
:done()
:done()
:done()
:done()
Line 28: Line 62:
:done()
:done()
:tag('td')
:tag('td')
:wikitext(hc(args.exp) and (args.exp) or editButton("'''?''' (edit)"))
:wikitext(exparg(args.xp))
:done()
:done()
: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
return 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