Difference between revisions of "Module:CoAbility"

From Dragalia Lost Wiki
Jump to navigation Jump to search
>Eave
>Eave
(No difference)

Revision as of 03:16, 8 April 2020

50px Documentation

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):sub(1, 2)
    local iconPath = string.format(imageUrl, iconHash:sub(1,1), iconHash, icon)
    result[#result+1] = string.format(coabFilterValues, icon, icon)
    --result[#result+1] = string.format(coabFilterValues, icon, iconPath)
  end
  return frame:preprocess(string.format(filterWidget, table.concat(result, '|')))
end


return p
--</includeonly>