Difference between revisions of "Module:WeaponListDiv"
Jump to navigation
Jump to search
imported>Elaeagnifolia (Created page with "local p = {} local cargo = mw.ext.cargo function p._weaponList(frame) -- Cargo Query local tables = 'Weapons' local queryFields = "BaseId,FormId,_pageName,WeaponName,Ra...") |
>Discoomastar |
||
| (9 intermediate revisions by one other user not shown) | |||
| Line 61: | Line 61: | ||
for _, weapon in ipairs(queryResult) do | for _, weapon in ipairs(queryResult) do | ||
local weaponDiv = container:tag('div') | local weaponDiv = container:tag('div') | ||
| − | weaponDiv:addClass(' | + | weaponDiv:addClass('weapon-list-element') |
:addClass('grid-entry') | :addClass('grid-entry') | ||
:attr('data-weapon', weapon.Type) | :attr('data-weapon', weapon.Type) | ||
| Line 92: | Line 92: | ||
-- Type | -- Type | ||
weaponDiv:tag('div') | weaponDiv:tag('div') | ||
| − | |||
:wikitext( frame:expandTemplate{ | :wikitext( frame:expandTemplate{ | ||
title = 'InlineIcon', | title = 'InlineIcon', | ||
| Line 104: | Line 103: | ||
-- Element | -- Element | ||
weaponDiv:tag('div') | weaponDiv:tag('div') | ||
| − | |||
:wikitext( frame:expandTemplate{ | :wikitext( frame:expandTemplate{ | ||
title = 'InlineIcon', | title = 'InlineIcon', | ||
| Line 123: | Line 121: | ||
if (weapon.SkillName ~= 'nil' and weapon.SkillName ~= '') then | if (weapon.SkillName ~= 'nil' and weapon.SkillName ~= '') then | ||
weaponDiv:tag('div') | weaponDiv:tag('div') | ||
| − | |||
:wikitext( | :wikitext( | ||
frame:expandTemplate{ | frame:expandTemplate{ | ||
| Line 150: | Line 147: | ||
if (weapon.Abilities11 ~= 'nil' and weapon.Abilities11 ~= '' and weapon.Abilities11 ~= '0') then | if (weapon.Abilities11 ~= 'nil' and weapon.Abilities11 ~= '' and weapon.Abilities11 ~= '0') then | ||
weaponDiv:tag('div') | weaponDiv:tag('div') | ||
| − | |||
:wikitext( | :wikitext( | ||
frame:expandTemplate{ | frame:expandTemplate{ | ||
| Line 169: | Line 165: | ||
if (weapon.Abilities21 ~= 'nil' and weapon.Abilities21 ~= '' and weapon.Abilities21 ~= '0') then | if (weapon.Abilities21 ~= 'nil' and weapon.Abilities21 ~= '' and weapon.Abilities21 ~= '0') then | ||
weaponDiv:tag('div') | weaponDiv:tag('div') | ||
| − | |||
:wikitext( | :wikitext( | ||
frame:expandTemplate{ | frame:expandTemplate{ | ||
Latest revision as of 15:28, 24 January 2020
Documentation for this module may be created at Module:WeaponListDiv/doc
local p = {}
local cargo = mw.ext.cargo
function p._weaponList(frame)
-- Cargo Query
local tables = 'Weapons'
local queryFields = "BaseId,FormId,_pageName,WeaponName,Rarity,Availability,ElementalType,Type,MaxHp,MaxAtk,SkillName,ReleaseDate,Abilities11,Abilities21"
local queryArgs = {
where = 'WeaponName!="Zethia\'s Staff" AND ReleaseDate <= NOW()',
groupBy = '_pageName',
limit = '9999',
orderBy = "AvailabilityId ASC, Rarity DESC, ElementalTypeId ASC, TypeId ASC, Id DESC, WeaponName ASC"
}
local queryResult = cargo.query(tables, queryFields, queryArgs)
if queryResult == nil then
return "(no values)"
end
-- Initialize the table
local container = mw.html.create('div')
:addClass('weapon-list-container')
-- Table headers
container:tag('div')
:wikitext('Icon')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Name')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Rarity')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Type')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Element')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('HP')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Str')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Skills')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Ability 1')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Ability 2')
:addClass('weapon-list-header')
container:tag('div')
:wikitext('Release date')
:addClass('weapon-list-header')
if type( queryResult ) == "table" then
-- Go through all the weapons in the query result
for _, weapon in ipairs(queryResult) do
local weaponDiv = container:tag('div')
weaponDiv:addClass('weapon-list-element')
:addClass('grid-entry')
:attr('data-weapon', weapon.Type)
:attr('data-element', weapon.ElementalType)
:attr('data-rarity', weapon.Rarity)
:attr('data-availability', weapon.Availability)
:attr('data-weapon-group', getWeaponGroup(weapon))
-- Icon
weaponDiv:tag('div')
:wikitext('[[File:' .. weapon.BaseId .. ' 01 ' .. weapon.FormId .. '.png|60px|link=' .. weapon._pageName .. ']]')
:addClass('weapon-icon')
-- Weapon Name
weaponDiv:tag('div')
:wikitext( '[[' .. weapon._pageName .. '|' .. weapon.WeaponName .. ']]' )
:addClass('weapon-name')
-- Rarity
weaponDiv:tag('div')
:wikitext( weapon.Rarity .. ' ' .. frame:expandTemplate{
title = 'InlineIcon',
args = {
'Icon Rarity',
weapon.Rarity
}
})
:addClass('weapon-rarity')
-- Type
weaponDiv:tag('div')
:wikitext( frame:expandTemplate{
title = 'InlineIcon',
args = {
'Icon Weapon',
weapon.Type
}
} .. ' ' .. weapon.Type )
:addClass('weapon-type')
-- Element
weaponDiv:tag('div')
:wikitext( frame:expandTemplate{
title = 'InlineIcon',
args = {
'Icon Element',
weapon.ElementalType
}
} .. ' ' .. weapon.ElementalType )
:addClass('weapon-element')
-- HP
weaponDiv:tag('div'):wikitext(weapon.MaxHp):addClass('weapon-hp'):done()
-- Str
weaponDiv:tag('div'):wikitext(weapon.MaxAtk):addClass('weapon-str'):done()
-- Skill
if (weapon.SkillName ~= 'nil' and weapon.SkillName ~= '') then
weaponDiv:tag('div')
:wikitext(
frame:expandTemplate{
title = 'SkillText',
args = {
Name = weapon.SkillName,
Level = '1'
}
} .. '<br/>' ..
frame:expandTemplate{
title = 'SkillText',
args = {
Name = weapon.SkillName,
Level = '2'
}
}
)
:addClass('weapon-skill')
else
weaponDiv:tag('div')
:wikitext('-')
:addClass('weapon-skill')
end
-- Ability 1
if (weapon.Abilities11 ~= 'nil' and weapon.Abilities11 ~= '' and weapon.Abilities11 ~= '0') then
weaponDiv:tag('div')
:wikitext(
frame:expandTemplate{
title = 'AbilityText',
args = {
Id = weapon.Abilities11,
}
}
)
:addClass('weapon-ability')
else
weaponDiv:tag('div')
:wikitext('-')
:addClass('weapon-ability')
end
-- Ability 2
if (weapon.Abilities21 ~= 'nil' and weapon.Abilities21 ~= '' and weapon.Abilities21 ~= '0') then
weaponDiv:tag('div')
:wikitext(
frame:expandTemplate{
title = 'AbilityText',
args = {
Id = weapon.Abilities21,
}
}
)
:addClass('weapon-ability')
else
weaponDiv:tag('div')
:wikitext('-')
:addClass('weapon-ability')
end
-- Release Date
weaponDiv:tag('div')
:wikitext(
frame:expandTemplate{
title = 'ModuleReleaseDate',
args = {
Date = weapon.ReleaseDate,
}
}
)
:addClass('weapon-release-date')
end
return tostring(container)
end
end
function getWeaponGroup(weapon)
if (weapon.Abilities11 ~= 'nil' and weapon.Abilities11 ~= '' and weapon.Abilities11 ~= '0') then
return 'void'
end
return 'standard'
end
function p.weaponList(frame)
return p._weaponList(frame)
end
return p