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 4: Line 4:
local hc = require('Module:Param Parse').has_content
local hc = require('Module:Param Parse').has_content
local qty = require('Module:Quantity box')._main
local qty = require('Module:Quantity box')._main
local pcp = require('Module:Profession clickpic')._main


function p.main(frame)
function p.main(frame)
Line 9: Line 10:
local function exparg(xp)
local function exparg(xp)
if xp ~= '' then
if hc(xp) then
return qty(xp)
return qty(xp)
else
else
return qty(0) .. edit
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
end
end
Line 29: Line 38:
:done()
:done()
:tag('td')
:tag('td')
:wikitext(hc(args.level) and (args.level) or edit)
:wikitext(levelarg(args.profession, args.level))
:done()
:done()
:done()
:done()
Line 41: Line 50:
:done()
:done()
if args.tool ~= nil then
if hc(args.tool) then
out
out
:tag('tr')
:tag('tr')
Line 53: Line 62:
end
end
if args.input ~= nil then
if hc(args.input) then
out
out
:tag('tr')
:tag('tr')

Revision as of 22:25, 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 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()
		
	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