Module:Profession info: Difference between revisions
No edit summary |
No edit summary |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
local |
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 |
|||
⚫ | |||
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( |
:wikitext(levelarg(args.profession, args.level)) |
||
:done() |
:done() |
||
:done() |
:done() |
||
Line 28: | Line 62: | ||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
||
:wikitext( |
: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