[dismiss]
The wiki is currently a work in progress. If you'd like to help out, please check the Community Portal and our getting started guide. Also, check out our sister project on poewiki.net.
Module:Quest: Difference between revisions
Jump to navigation
Jump to search
>OmegaK2 (Module for quest pages) |
>OmegaK2 No edit summary |
||
Line 8: | Line 8: | ||
-- | -- | ||
-- | -- For Template:Quest | ||
-- | -- | ||
function p. | function p.quest_infobox(frame) | ||
g_args = getArgs(frame, { | g_args = getArgs(frame, { | ||
parentFirst = true | parentFirst = true | ||
Line 45: | Line 45: | ||
-- Formatting | -- Formatting | ||
-- | -- | ||
tbl = mw.html.create('table') | tbl = mw.html.create('table') | ||
Line 71: | Line 68: | ||
if g_args.boss then | if g_args.boss then | ||
v | v = '[[' .. g_args.boss .. ']]<br>[[File:' .. g_args.boss_image .. '|alt=' .. g_args.boss .. ']]' | ||
display_quest_add_row(tbl, 'Boss: ', v) | |||
display_quest_add_row(tbl, 'Boss: ', | |||
end | end | ||
Line 86: | Line 76: | ||
end | end | ||
return tostring(tbl) | |||
end | end | ||
Line 120: | Line 83: | ||
content = '' | content = '' | ||
end | end | ||
tbl:tag('tr') | tbl | ||
:tag('tr') | |||
:tag('td') | |||
:attr('style', 'text-align: right; font-weight: bold; background-color: #332f24;') | |||
:attr('scope', 'row') | |||
:wikitext(head) | |||
:done() | |||
:tag('td') | |||
:attr('style', 'text-align: center; background-color: #26231b;') | |||
:wikitext(content) | |||
:done() | |||
end | end | ||
return p | return p |
Revision as of 15:39, 9 July 2015
This module implements {{Quest}}
and {{Quest list}}
The above documentation is transcluded from Module:Quest/doc.
Editors can experiment in this module's sandbox and testcases pages.
Subpages of this module.
Editors can experiment in this module's sandbox and testcases pages.
Subpages of this module.
local p = {}
local g_frame, g_args
local getArgs = require('Module:Arguments').getArgs
local show_reward = require('Module:QuestReward').show_reward
local util = require('Module:Util')
--
-- For Template:Quest
--
function p.quest_infobox(frame)
g_args = getArgs(frame, {
parentFirst = true
})
if frame == nil or type(frame) == 'table' then
frame = mw.getCurrentFrame()
end
g_frame = frame
--
-- Args
--
if string.len(g_args.name) == 0 then
error('Name is required')
end
g_args.page_name = g_args.page_name or g_args.name
g_args.icon = g_args.icon or g_args.name .. ' Quest icon.png'
g_args.boss = g_args.boss
if g_args.boss then
g_args.boss_image = g_args.boss_image or g_args.boss .. ' Ingame.jpg'
end
g_args.key_item = g_args.key_item
g_args.required = util.cast.boolean(g_args.required)
g_args.start = g_args.start
g_args.objective = g_args.objective
g_args.completion = g_args.completion
g_args.act = g_args.act
g_args.walkthough = g_args.walkthough or ''
--
-- Formatting
--
tbl = mw.html.create('table')
tbl
:attr('style', 'width:300px; color: #bfbfbf; float:right; padding:0.1em; background-color:#1a1812; margin: 0px 0px 5px 5px;')
:tag('tr')
:tag('td')
:attr('colspan', 2)
:attr('style', 'text-align:center;font-size:20px;font-weight:bold;')
:wikitext(g_args.name .. '<br>[[File:' .. g_args.icon .. '|128x128px|alt=' .. g_args.icon .. ']]')
local rtext = ''
if g_args.required then
rtext = 'Yes'
else
rtext = 'No'
end
display_quest_add_row(tbl, 'Required: ', rtext)
for _, v in pairs({'Start', 'Objective', 'Completion'}) do
display_quest_add_row(tbl, v .. ': ', g_args[string.lower(v)])
end
if g_args.boss then
v = '[[' .. g_args.boss .. ']]<br>[[File:' .. g_args.boss_image .. '|alt=' .. g_args.boss .. ']]'
display_quest_add_row(tbl, 'Boss: ', v)
end
if g_args.key_item then
display_quest_add_row(tbl, 'Key Item: ', g_frame.expandTemplate('il', g_args.key_item))
end
return tostring(tbl)
end
function display_quest_add_row(tbl, head, content)
if content == nil then
content = ''
end
tbl
:tag('tr')
:tag('td')
:attr('style', 'text-align: right; font-weight: bold; background-color: #332f24;')
:attr('scope', 'row')
:wikitext(head)
:done()
:tag('td')
:attr('style', 'text-align: center; background-color: #26231b;')
:wikitext(content)
:done()
end
return p