Difference between revisions of "Module:CoAbility"
Jump to navigation
Jump to search
>Eave |
>Eave (adding chain coab support) |
||
| Line 23: | Line 23: | ||
local iconPath = string.format(imageUrl, iconHash:sub(1,1), iconHash, icon) | local iconPath = string.format(imageUrl, iconHash:sub(1,1), iconHash, icon) | ||
result[#result+1] = string.format(coabFilterValues, icon, iconPath) | result[#result+1] = string.format(coabFilterValues, icon, iconPath) | ||
| + | end | ||
| + | |||
| + | local chainCoabs = cargo.query('ChainCoAbilities', 'AbilityIconName', { | ||
| + | groupBy = 'AbilityIconName', | ||
| + | orderBy = 'Id', | ||
| + | }) | ||
| + | for i, coab in ipairs(chainCoabs) do | ||
| + | local icon = coab['AbilityIconName'] | ||
| + | local iconHash = md5.sumhexa(icon..'.png'):sub(1, 2) | ||
| + | local iconPath = string.format(imageUrl, iconHash:sub(1,1), iconHash, icon) | ||
| + | result[#result+1] = string.format(chainCoabFilterValues, icon, iconPath) | ||
end | end | ||
return frame:preprocess(string.format(filterWidget, table.concat(result, '|'))) | return frame:preprocess(string.format(filterWidget, table.concat(result, '|'))) | ||
Revision as of 03:26, 8 April 2020
This module abstracts away some of the logical complexity that is difficult to represent in pure Wikitext when it comes to displaying information about co-abilities and chain co-abilities.
Parameters & Invocation
{{#invoke:CoAbility|Filter}}
No arguments, populates the arguments for and calls the Co-ability filter header used in Widget:CoAbilityListFilter.
{{#invoke:CoAbility|AdventurerTableEntries}}
No arguments, populates the table rows used in Adventurer Co-abilities List.
-- <includeonly> (prevents literal interpretation of links or categories within the module code)
-- Lua Templating for Co-ability (and chain co-ability) related displays
local p = {}
local cargo = mw.ext.cargo
local md5 = require('Module:Md5')
-- Usage: {{#invoke:CoAbility|Filter}}
-- Filter header for coability lists
function p.Filter(frame)
local filterWidget = '{{#widget:CoAbilityListFilter|%s}}'
local coabFilterValues = 'coabs=%s|coabImages=%s'
local chainCoabFilterValues = 'chainCoabs=%s|chainCoabImages=%s'
local imageUrl = '/images/%s/%s/%s.png'
local result = {}
local coabs = cargo.query('CoAbilities', 'AbilityIconName', {
groupBy = 'AbilityIconName',
orderBy = 'Id',
})
for i, coab in ipairs(coabs) do
local icon = coab['AbilityIconName']
local iconHash = md5.sumhexa(icon..'.png'):sub(1, 2)
local iconPath = string.format(imageUrl, iconHash:sub(1,1), iconHash, icon)
result[#result+1] = string.format(coabFilterValues, icon, iconPath)
end
local chainCoabs = cargo.query('ChainCoAbilities', 'AbilityIconName', {
groupBy = 'AbilityIconName',
orderBy = 'Id',
})
for i, coab in ipairs(chainCoabs) do
local icon = coab['AbilityIconName']
local iconHash = md5.sumhexa(icon..'.png'):sub(1, 2)
local iconPath = string.format(imageUrl, iconHash:sub(1,1), iconHash, icon)
result[#result+1] = string.format(chainCoabFilterValues, icon, iconPath)
end
return frame:preprocess(string.format(filterWidget, table.concat(result, '|')))
end
return p
--</includeonly>