Module:QuestList: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
mNo edit summary |
mNo edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
require('strict') |
require('strict') |
||
require('Module:Mw.html extension') |
require('Module:Mw.html extension') |
||
local purge = require('Module:Purge')._purge |
|||
local parse = require('Module:Param Parse') |
local parse = require('Module:Param Parse') |
||
Line 23: | Line 24: | ||
local table = mw.html.create('table') |
local table = mw.html.create('table') |
||
if (episodes == nil) then |
|||
⚫ | |||
table:wikitext("No quests available for " .. args.episode .. " " .. purge('source-'..mw.uri.anchorEncode(args.episode), '(update)', 'span')) |
|||
⚫ | |||
else |
|||
⚫ | |||
table |
|||
⚫ | |||
⚫ | |||
:css{ |
|||
⚫ | |||
⚫ | |||
} |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
:done() |
:done() |
||
: |
:tag('tr') |
||
:tag(' |
:tag('th') |
||
: |
:wikitext('Quest') |
||
: |
:done() |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
:done() |
:done() |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
if ( episode ) then |
|||
⚫ | |||
⚫ | |||
'[[Category:Quests]]', |
|||
'[[Name::+]]', |
|||
⚫ | |||
'?Quest type', |
|||
'?Difficulty', |
|||
⚫ | |||
'order=asc', |
|||
⚫ | |||
⚫ | |||
if ( |
if ( episode ) then |
||
-- get quests for episode -- |
-- get all quests for episode -- |
||
⚫ | |||
⚫ | |||
'[[Category:Quests]]', |
|||
'[[Name::+]]', |
|||
⚫ | |||
⚫ | |||
'?Quest type', |
|||
'?Difficulty', |
|||
'?Requirements', |
|||
'order=asc', |
|||
⚫ | |||
⚫ | |||
} |
|||
:wikitext( quest['Quest type'] ) |
|||
if ( quests ) then |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
table |
|||
:tag(' |
:tag('tr') |
||
: |
:tag('td') |
||
[ |
:wikitext( quest[1] ) |
||
:done() |
|||
:tag(' |
:tag('td') |
||
: |
:css { |
||
['width'] = '50px' |
|||
} |
|||
: |
:wikitext( quest['Quest type'] ) |
||
:done() |
|||
⚫ | |||
⚫ | |||
:done() |
|||
⚫ | |||
⚫ | |||
⚫ | |||
} |
|||
:tag('div') |
|||
:addClass('lighttable checklist') |
|||
:newline() |
|||
⚫ | |||
:newline() |
|||
⚫ | |||
:done() |
:done() |
||
:done() |
:done() |
||
end |
|||
end |
end |
||
end |
end |
||
end |
|||
table:done() |
|||
end |
|||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
Latest revision as of 11:28, 15 December 2024
Documentation for this module may be created at Module:QuestList/doc
require('strict')
require('Module:Mw.html extension')
local purge = require('Module:Purge')._purge
local parse = require('Module:Param Parse')
local p = {}
function p.main(frame)
local args = frame:getParent().args
-- get all episodes by episode sequence order --
local episodes = mw.smw.ask{
'[[Category:Episodes]]',
('[[Name::%s]]'):format( args.episode or '+' ),
'[[Episode sequence number::+]]',
'[[Release Date::+]]',
'?Name#-',
'?Premium',
'order=asc',
'sort=Episode sequence number',
'link=none',
'format=plainlist'
}
local table = mw.html.create('table')
if (episodes == nil) then
table:wikitext("No quests available for " .. args.episode .. " " .. purge('source-'..mw.uri.anchorEncode(args.episode), '(update)', 'span'))
else
table
:addClass('wikitable quest-table align-center-2 align-center-3 align-left-4')
:css{
['width'] = '65%'
}
:attr{ cellspacing = '3' }
for _, episode in ipairs(episodes) do
table
:tag('tr')
:tag('th')
:attr('colspan', 4)
:wikitextIf(episode.Premium == true, '[[File:Premium Pass icon.png|16px]] ')
:wikitext('[[File:'.. episode.Name ..' episode icon.png|16px]] ' .. episode[1])
:done()
:done()
:tag('tr')
:tag('th')
:wikitext('Quest')
:done()
:tag('th')
:wikitext('Type')
:done()
:tag('th')
:wikitext('Difficulty')
:done()
:tag('th')
:wikitext('Requirements')
:done()
:done()
if ( episode ) then
-- get all quests for episode --
local quests = mw.smw.ask{
'[[Category:Quests]]',
'[[Name::+]]',
('[[Episode::%s]]'):format( episode.Name ),
'?Quest type',
'?Difficulty',
'?Requirements',
'order=asc',
'sort=Quest type,override_seq,Difficulty'
}
if ( quests ) then
-- get quests for episode --
for _, quest in ipairs( quests ) do
table
:tag('tr')
:tag('td')
:wikitext( quest[1] )
:done()
:tag('td')
:css {
['width'] = '50px'
}
:wikitext( quest['Quest type'] )
:done()
:tag('td')
:wikitext( parse.difficulty_func( tostring(quest.Difficulty ) ) )
:done()
:tag('td')
:css {
['width'] = '55%'
}
:tag('div')
:addClass('lighttable checklist')
:newline()
:wikitext( quest.Requirements )
:newline()
:done()
:done()
:done()
end
end
end
end
table:done()
end
return table
end
return p