Module:WeaponDPS

From HighSpell Wiki
Revision as of 12:22, 8 June 2025 by Ryan (talk | contribs)
Jump to navigation Jump to search

Documentation for this module may be created at Module:WeaponDPS/doc

local p = {}

function p.dps(frame)
    local args = frame.args
    local parent = frame:getParent()
    
    -- Try both frame and parent frame for robustness
    local str = tonumber(args.strength or parent.args.strength) or
                tonumber(args.magic or parent.args.magic) or
                tonumber(args.range or parent.args.range)

    local ticks = tonumber(args.ticks or parent.args.ticks)

    if not str or not ticks or ticks == 0 then
        return "Invalid input"
    end

    local maxHit = str / 8
    local seconds = ticks * 0.6
    local dps = maxHit / seconds

    return string.format("%.2f DPS (Max Hit: %.2f)", dps, maxHit)
end

return p