Module:QuestDetails: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
(Set smw requirements to "None" if no requirements are given (rather than not setting it))
mNo edit summary
Line 91: Line 91:
:tag('div')
:tag('div')
:addClass('lighttable checklist')
:addClass('lighttable checklist')
:newline()
:wikitext(requirements)
:wikitext(requirements)
:newline()
:done()
:done()
:done()
:done()

Revision as of 01:26, 23 November 2024

Module documentation
This documentation is transcluded from Module:QuestDetails/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:QuestDetails/doc. [edit]
Module:QuestDetails's function details is invoked by Template:QuestDetails.
Module:QuestDetails requires Module:Mw.html extension.
Module:QuestDetails requires strict.

require('strict')
require('Module:Mw.html extension')

local p = {}

function p.details(frame)
	local args = frame:getParent().args
	
	local requirements = (args.requirements and '\n'..args.requirements) or 'None'

	mw.smw.set({
		start_point = args.start_point,
		required_for = args.required_for,
		next_quest = args.next_quest,
		requirements = requirements,
		items = args.items and '\n'..args.items,
		recommended = args.recommended and '\n'..args.recommended,
		enemies = args.enemies,
		override_seq = args.override_seq or 9999
	})

	local table = mw.html.create('table')
		:addClass('wikitable plainlinks')
		:attr{ cellspacing = '3' }
		:tag('tr')
			:tag('td')
				:css{
					['vertical-align'] = 'top',
					['width'] = '15%',
					['padding'] = '1em'
				}
				:tag('b')
					:wikitext('Start Point')
				:done()
			:done()
			:tag('td')
				:css{
					['max-width'] = '85%',
					['width'] = 'auto',
					['padding-left'] = '1em',
					['padding-right'] = '2em'
				}
				:tag('p')
					:wikitext(args.start_point)
				:done()
			:done()
		:done()
		:IF(args.required_for)
			:tag('tr')
				:tag('td')
					:css{
						['vertical-align'] = 'top',
						['width'] = '15%',
						['padding'] = '1em'
					}
					:tag('b')
						:wikitext('Required for')
					:done()
				:done()
				:tag('td')
					:tag('div')
						:css{
							['max-width'] = '85%',
							['width'] = 'auto',
							['padding-left'] = '1em',
							['padding-right'] = '2em'
						}
						:newline()
						:wikitext(args.required_for)
					:done()
				:done()
			:done()
		:END()
		:tag('tr')
			:tag('td')
				:css{
					['vertical-align'] = 'top',
					['width'] = '15%',
					['padding'] = '1em'
				}
				:tag('b')
					:wikitext('Requirements')
				:done()
			:done()
			:tag('td')
				:css{
					['max-width'] = '85%',
					['width'] = 'auto',
					['padding'] = '0.3em'
				}
				:tag('div')
					:addClass('lighttable checklist')
					:newline()
					:wikitext(requirements)
					:newline()
				:done()
			:done()
		:done()
		:IF(args.items)
			:tag('tr')
				:tag('td')
					:css{
						['vertical-align'] = 'top',
						['width'] = '15%',
						['padding'] = '1em'
					}
					:tag('b')
						:wikitext('Items')
					:done()
				:done()
				:tag('td')
					:css{
						['max-width'] = '85%',
						['width'] = 'auto',
						['padding'] = '0.3em'
					}
					:tag('div')
						:addClass('lighttable checklist')
						:newline()
						:wikitext(args.items)
						:newline()
					:done()
				:done()
			:done()
		:END()
		:IF(args.recommended)
			:tag('tr')
				:tag('td')
					:css{
						['vertical-align'] = 'top',
						['width'] = '15%',
						['padding'] = '1em'
					}
					:tag('b')
						:wikitext('Recommended')
			    	:done()
				:done()
				:tag('td')
					:css{
						['max-width'] = '85%',
						['width'] = 'auto',
						['padding-left'] = '1em'
					}
					:tag('div')
						:addClass('lighttable checklist')
						:newline()
						:wikitext(args.recommended)
						:newline()
					:done()
				:done()
			:done()
		:END()
		:IF(args.enemies)
			:tag('tr')
				:tag('td')
					:css{
						['vertical-align'] = 'top',
						['width'] = '15%',
						['padding'] = '1em'
					}
					:tag('b')
						:wikitext('Enemies')
					:done()
				:done()
				:tag('td')
					:css{
						['max-width'] = '85%',
						['width'] = 'auto',
						['padding-left'] = '1em',
						['padding-right'] = '2em'
					}
					:tag('div')
						:newline()
						:wikitext(args.enemies)
					:done()
				:done()
			:done()
		:END()
		:done()

	return table
end

return p