Module:Damage: Difference between revisions
From Elwiki
No edit summary |
(test) |
||
Line 20: | Line 20: | ||
function forargs(frame, prefix) | function forargs(frame, prefix) | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local tab = | local tab = 0 | ||
local i = 1 | |||
for k,v in spairs(args) do | for k,v in spairs(args) do | ||
if string.starts(k, prefix) then | if string.starts(k, prefix) then | ||
tab = tab | tab = tab + args['dmg' .. i] * args['hits' .. i] | ||
i = i + 1 | |||
end | end | ||
end | end |
Revision as of 21:21, 23 March 2022
Documentation for this module may be created at Module:Damage/doc
local getArgs = require('Module:Arguments').getArgs
local p = {}
function string.starts(String,Start)
return string.sub(String,1,string.len(Start))==Start
end
function spairs(t)
local keys = {}
for k in pairs(t) do keys[#keys+1] = k end
table.sort(keys)
local i = 0
return function()
i = i + 1
if keys[i] then
return keys[i], t[keys[i]]
end
end
end
function forargs(frame, prefix)
local args = getArgs(frame)
local tab = 0
local i = 1
for k,v in spairs(args) do
if string.starts(k, prefix) then
tab = tab + args['dmg' .. i] * args['hits' .. i]
i = i + 1
end
end
return tab
end
function p.getHits(frame)
return forargs(frame, 'hits')
end
function p.getDmg(frame)
return forargs(frame, 'dmg')
end
return p