Module:Enemy List: Difference between revisions

Commas
(No quest enemies)
(Commas)
 
(3 intermediate revisions by the same user not shown)
Line 2:
local yesno = require('Module:Yesno')
local album_xp_data = require('Module:Experience/data').album
local Array = require('Module:Array')
local lang = mw.language.getContentLanguage()
 
local function formatNum(n)
if n == nil then
return ''
end
return lang:formatNum(n)
end
 
local p = {}
Line 50 ⟶ 59:
:tag('td'):wikitext(monster['Unlock level']):done()
:tag('td'):wikitext(monster['Profession Level A']):done()
:tag('td'):wikitext(formatNum(monster.Health)):done()
:tag('td'):wikitext(format_attack_style(monster['Attack style'])):done()
:tag('td'):wikitext(format_attack_style(monster['Immune to'])):done()
Line 61 ⟶ 70:
row
:tag('td'):wikitext(table.concat(location_text, ', ')):done()
:tag('td'):wikitext(formatNum(monster.Experience)):done()
:tag('td'):wikitext(formatNum(monster['Album XP'])):done()
end
 
Line 77 ⟶ 86:
('[[Profession A::%s]]'):format(profession),
('[[Passive::%s]]'):format(passive and 'true' or 'false'),
'[[Quest::!]]',
'?Image#70px;x70px',
'?Unlock level',
Line 87 ⟶ 95:
'?Location JSON',
'?Experience',
'[[?Quest::!]]',
'?Variant of#-',
'sort=Profession Level A',
'order=asc'
}
 
data = Array.filter(data, function(monster)
return monster.Quest == nil and monster[1] ~= '[[:Training Dummy|Training Dummy]]'
end)
 
local location_cache = {}
 
for _, monster in ipairs(data) do
monster['Album XP'] = album_xp_data[monster['Profession Level A']]
if monster['Location JSON'] == nil and monster['Variant of'] ~= nil then
local variant_cat = monster['Variant of']
if location_cache[variant_cat] == nil then
local of_variant = mw.smw.ask{
'[['..variant_cat..']]',
'?Location JSON'
}
location_cache[variant_cat] = of_variant and of_variant[1]['Location JSON']
end
monster['Location JSON'] = location_cache[variant_cat]
end
monster['Location JSON'] = mw.text.jsonDecode(monster['Location JSON'] or '{}')
end
411

edits