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 .. '\n{{#vardefine: '..k..'|'..v..'}}'
             tab = tab + args['dmg' .. i] * args['hits' .. i]
            i = i + 1
         end
         end
     end
     end

Revision as of 22: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