Module:Damage: Difference between revisions

From Elwiki
No edit summary
No edit summary
Line 18: Line 18:
end
end


function p.getTotal(frame)
function tableContains(set, key)
    return set[key] ~= nil
end
 
function var(name, dmg)
    return '{{#vardefine:'..name..'|'..dmg..'}}'
end
 
function p.list(frame)
    function heavy(dmg)
        return t * 1.44
    end
 
    function empowered(dmg)
       
    end
 
     local args = getArgs(frame)
     local args = getArgs(frame)
     local tab = 0
     local total = 0
     local i = 1
     local i = 1
    local vars = {}
     for k,v in spairs(args) do
     for k,v in spairs(args) do
         if string.starts(k, 'dmg') then
         if string.starts(k, 'dmg') then
             tab = tab + args['dmg' .. i] * args['hits' .. i]
             total = total + args['dmg' .. i] * args['hits' .. i]
             i = i + 1
             i = i + 1
            table.insert(vars, '{{#vardefine:total_damage|'..total..'}}')
         end
         end
     end
     end
     -- return frame:preprocess('{{formatnum:'..tab..'}}%')
     if tableContains(args, 'heavy') then
     return tab
        table.insert(vars, var('total_damage_heavy', heavy(total)))
end
     end
 
     return frame:preprocess(table.concat(vars))
function p.getHeavy(frame)
     return getArgs(frame)[1] * 1.44
end
 
function p.getPassive1(frame)
    return getArgs(frame)[1] * 1.25
end
end


return p
return p

Revision as of 20:10, 1 April 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 tableContains(set, key)
    return set[key] ~= nil
end

function var(name, dmg)
    return '{{#vardefine:'..name..'|'..dmg..'}}'
end

function p.list(frame)
    function heavy(dmg)
        return t * 1.44
    end

    function empowered(dmg)
        
    end

    local args = getArgs(frame)
    local total = 0
    local i = 1
    local vars = {}
    for k,v in spairs(args) do
        if string.starts(k, 'dmg') then
            total = total + args['dmg' .. i] * args['hits' .. i]
            i = i + 1
            table.insert(vars, '{{#vardefine:total_damage|'..total..'}}')
        end
    end
    if tableContains(args, 'heavy') then
        table.insert(vars, var('total_damage_heavy', heavy(total)))
    end
    return frame:preprocess(table.concat(vars))
end

return p