Module:WeaponDPS: Difference between revisions
Jump to navigation
Jump to search
Created page with "local p = {} -- Converts speed to attacks per second local function getAttacksPerSecond(speed) if speed <= 0 then return 0 end local attackTimeSeconds = speed * 0.6 return 1 / attackTimeSeconds end -- Theoretical DPS formula function p.dps(frame) local args = frame:getParent().args local accuracy = tonumber(args["accuracy"]) or 0 local strength = tonumber(args["strength"]) or 0 local speed = tonumber(args["speed"]) or 0 -- Prevent division by zero or invali..." |
No edit summary |
||
(36 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p.dps(frame) | function p.dps(frame) | ||
local args = frame.args | |||
local parent = frame:getParent() | |||
local str = tonumber(args.Strength or parent.args.Strength) or 0 | |||
local acc = tonumber(args.Accuracy or parent.args.Accuracy) or 0 | |||
local ticks = tonumber(args.Speed or parent.args.Speed) | |||
if (str == 0 and acc == 0) then return "No STR or ACC" end | |||
if not ticks then return "No speed" end | |||
local effectiveStr = str + acc | |||
local maxHit = effectiveStr / 14 | |||
local seconds = ticks * 0.6 | |||
local dps = maxHit / seconds | |||
return '<abbr title="Theoretical damage per second">' .. string.format('%.2f', dps) .. '</abbr>' | |||
end | end | ||
return p | return p |
Latest revision as of 19:30, 12 June 2025
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()
local str = tonumber(args.Strength or parent.args.Strength) or 0
local acc = tonumber(args.Accuracy or parent.args.Accuracy) or 0
local ticks = tonumber(args.Speed or parent.args.Speed)
if (str == 0 and acc == 0) then return "No STR or ACC" end
if not ticks then return "No speed" end
local effectiveStr = str + acc
local maxHit = effectiveStr / 14
local seconds = ticks * 0.6
local dps = maxHit / seconds
return '<abbr title="Theoretical damage per second">' .. string.format('%.2f', dps) .. '</abbr>'
end
return p