Модуль:Cosmetic rarity navbox

Материал из Dota 2 Вики
Перейти к: навигация, поиск

Документация для Модуль:Cosmetic rarity navbox Перейти к коду ↴ [ править | очистить ]

Displays a navbox for cosmetic items sorted by their rarity.

Использование[править]

{{#invoke:Cosmetic rarity navbox|main
| name = 
| title = 
| border = 
| state = 
| where = 
| size = 
}}
  • |where= is a Cargo where clause with %s in place of the rarity (e.g. |where = type="Ward" AND rarity="%s").
  • |size= sets the size of the individual cosmetic items.
  • |name=, |title=, |border= and |state= are identical to {{Navbox}}.

Пример[править]

Зависимости

local p = {}

local cargo_query = mw.ext.cargo.query
local cosmetic = require( 'Модуль:Cosmetic' )._main
local getArgs = require( 'Модуль:Arguments' ).getArgs


function p.main( frame )
  local args = getArgs( frame )

   local rarities = { 'Common', 'Uncommon', 'Rare', 'Mythical', 'Legendary', 'Immortal', 'Arcana', 'Ancient', 'Seasonal', 'Dota Plus Access' }

  local template_args = {
    name = args.name,
    border = args.border,
    state = args.state or 'uncollapsed',
    style = 'text-align: center;',
    title = args.title
  }
  
  for i,rarity in ipairs( rarities ) do
    local items = cargo_query( 'cosmetic_items', '_pageName', {
      where = string.format( args.where, rarity ),
      groupBy = '_pageID'
    } )
    local cosmetics = {}
    for _,v in ipairs( items ) do
      cosmetics[#cosmetics+1] = tostring( cosmetic{ v._pageName, args.size } )
    end
    
    template_args['group' .. i] = rarity
    template_args['list' .. i] = table.concat( cosmetics, ' ' )
  end

  return frame:expandTemplate{ title = 'Navbox', args = template_args }
end


return p