Editing
Module:Sandbox/User:Californ1a/T/Quests
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
require('strict') require('Module:Mw.html extension') local pt = require('Module:Paramtest') local yn = require('Module:Yesno') local p = {} local yes = 'β' local no = 'β' local icon_size = 20 -- Template entrypoint function p.main(frame) return p._main(frame:getParent().args) end function p._main(args) local other = { free = yn(pt.default_to(args.free, false), false), collapsed = yn(pt.default_to(args.collapsed, false), false), right = yn(pt.default_to(args.right, false), false) } local prem = '+' if other.free then prem = 'false' end local episodes = mw.smw.ask{ '[[Infobox::Episode]]', '[[Release Date::+]]', '[[Premium::'..prem..']]', '?=name', '?Name#-=plain_name', '?Premium=prem', '?Episode sequence number=ep_order', 'order=asc', 'sort=Episode sequence number' } if episodes == nil or episodes[1] == nil then return 'No data found for table' end for i,v in ipairs(episodes) do local name = episodes[i].plain_name episodes[i].icon = mw.ustring.format('[[File:%s episode icon.png|link=%s|%spx]]', name, name, icon_size) end --local debug_str = '<pre>'..mw.text.jsonEncode(episodes, mw.text.JSON_PRETTY)..'</pre>' return tostring(p.create_table(episodes, other, args))--..debug_str end function p.add_episode_quests(tbl, episode, quests, args) -- Main story row local main_story_ep_param = 'main story '..mw.ustring.lower(episode.plain_name) local main_story_done = yn(args[main_story_ep_param], false) tbl:tag('tr') :tag('td') :attr({colspan=2}) :addClass('table-bg-grey') :wikitext(mw.ustring.format('%s [[Quests|Main Story]]', episode.icon)) :done() :tag('td') :IF(main_story_done) :addClass('table-bg-green') :css({['text-align']='center'}) :wikitext(yes) :ELSE() :addClass('table-bg-red') :css({['text-align']='center'}) :wikitext(no) :END() :done() :done() -- Individual quest rows for episode for i,v in ipairs(quests) do local quest = quests[i] if ((not (main_story_done and quest.type == 'Main')) or quest.type == 'Side') then local quest_param = mw.ustring.lower(quest.plain_name) local quest_done = yn(args[quest_param], false) tbl:tag('tr') :IF(quest.type == 'Main') :tag('td') :wikitext('-') :done() :END() :tag('td') :IF(quest.type == 'Side') :attr({colspan=2}) :END() :wikitext(mw.ustring.format('%s %s', episode.icon, quest.name)) :done() :tag('td') :IF(quest_done) :addClass('table-bg-green') :css({['text-align']='center'}) :wikitext(yes) :ELSE() :addClass('table-bg-red') :css({['text-align']='center'}) :wikitext(no) :END() :done() :done() end end return tbl:done() end function p.create_table(episodes, other, args) -- Table header local out = mw.html.create('table') :addClass('wikitable') :addClass('mw-collapsible') :IF(other.collapsed) :addClass('mw-collapsed') :END() :tag('caption') :wikitext('Quests') :done() :tag('tr') :tag('th') :attr({colspan=2}) :wikitext('Quest') :done() :tag('th') :addClass('align-center') :wikitext('Done') :done() -- Get quests per-episode for i,v in ipairs(episodes) do local ep_name = episodes[i].plain_name local quests = mw.smw.ask({ '[[Infobox::Quest]]', mw.ustring.format('[[Episode::%s]]', ep_name), '?=name', '?Name#-=plain_name', '?Episode=episode', '?Episode nth=order', '?Quest type=type', '?Difficulty=difficulty', 'sort=Quest type,Episode nth,Difficulty' }) out = p.add_episode_quests(out, episodes[i], quests, args) end out:allDone() local div = out if other.right then div = mw.html.create('div') :css({float='right'}) :node(out) :done() end return div end return p
Summary:
Please note that all contributions to Brighter Shores Wiki are considered to be released under the CC BY-NC-SA 3.0 (see
Brighter Shores:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Template used on this page:
Module:Sandbox/User:Californ1a/T/Quests/doc
(
view source
)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Module
Discussion
English
Views
Read
Edit source
View history
More
Refresh
Search
Discord
Discord
Navigation
About us
User help
Random page
Recent changes
Normal Counterfeiter
3m
ago
-
Alsang
Normal Smuggler
5m
ago
-
Alsang
Counterfeiters Crime Den Raids
6m
ago
-
Alsang
Delver
30m
ago
-
Alsang
Show more...
Brighter Shores
Professions
Factions
Episodes
Premium Pass
Monsters
Quests
Community
Policies
Tools
What links here
Related changes
Special pages
Page information