Module:WeaponDPS: Difference between revisions
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
end | end | ||
-- Theoretical DPS formula (accuracy | -- Theoretical DPS formula (accuracy = 1/3 of a damage stat) | ||
function p.dps(frame) | function p.dps(frame) | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local accuracy = tonumber(args["accuracy"]) or 0 | |||
local strength = tonumber(args["strength"]) or 0 | local strength = tonumber(args["strength"]) or 0 | ||
local magic = tonumber(args["magic"]) or 0 | local magic = tonumber(args["magic"]) or 0 | ||
Line 19: | Line 20: | ||
if speed <= 0 then | if speed <= 0 then | ||
return | return "Invalid speed" | ||
end | end | ||
local attacksPerSecond = getAttacksPerSecond(speed) | local attacksPerSecond = getAttacksPerSecond(speed) | ||
-- Scaled | -- Weight accuracy as one-third of a damage stat | ||
local dps = | local weightedStat = (accuracy / 3) + strength + magic + range | ||
-- Scaled DPS calculation | |||
local dps = weightedStat * attacksPerSecond * 0.1 | |||
return string.format("%.2f", dps) | return string.format("%.2f", dps) |