Module:Attack type clickpic

-- local p = {}

local onmain = require('Module:Mainonly').on_main

local styles = { ['magic'] = { image = 'Magic weakness icon.png', link = 'Magic'}, ['mage'] = { image = 'Magic weakness icon.png', link = 'Magic'}, ['melee'] = { image = 'Melee weakness icon.png', link = 'Melee'}, ['ranged'] = { image = 'Ranged weakness icon.png', link = 'Ranged'}, ['range'] = { image = 'Ranged weakness icon.png', link = 'Ranged'}, ['ranging'] = { image = 'Ranged weakness icon.png', link = 'Ranged'}, ['ranging'] = { image = 'Dragonfire shield.png', link = 'Dragonfire'}, ['none'] = { image = 'Zero weakness icon.png', text = 'N/A'} }

function p.main(frame) local args = frame:getParent.args local split_list = mw.text.split(args[1],',') -- iterate through and create a parameters -- look at only the first word for weaknesses local params = {} for i, v in ipairs(split_list) do		v = mw.text.trim(v) :lower :gsub('(%w+)%s.*','%1') table.insert(params, v)	end return p._main(params) end

function p._main(wargs) -- Create a list of good and bad args local good_args = {} local bad_args = {} -- Return string local ret = '' -- Category list for i, v in ipairs(wargs) do		local weakns = weaknesses[v] if weakns then table.insert(good_args, weakns) else table.insert(bad_args, v)		end end for i, v in ipairs(good_args) do		image = '' local link if v.link then if v.text then link = ..v.text.. else link = ..v.link.. end else link = v.text end ret = ret..image..' '..link if i < #good_args then ret = ret..' ' end end if #bad_args > 0 then local bad_list = '' for i, v in ipairs(bad_args) do bad_list = bad_list .. v			if i < #bad_args then bad_list = bad_list..', ' end end ret = ret..'Bad argument ' if onmain then ret = ret..'' end end return ret end

return p