Ad placeholder

Module:DiceUtils: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Lua module test for dice damage calculation with multiple dice/damage types)
 
No edit summary
Tag: Reverted
Line 22: Line 22:
Slashing = {}
Slashing = {}
}
}
tmp = {}
for damage_die in string.gmatch(args.dice, "([^,]+)") do
for damage_die in string.gmatch(args.dice, "([^,]+)") do
idx = string.find(damage_die, ":")
idx = string.find(damage_die, ":")
Line 28: Line 28:
d_type = string.sub(damage_die, idx + 1)
d_type = string.sub(damage_die, idx + 1)
table.insert(damage[d_type], die)
table.insert(tmp, d_type)
end
end
return table.concat(tmp, "<br>")
for d_type, dice in pairs(damage) do
if not next(dice) == nil then
min_damage = 0
max_damage = 0
avg_str = ""
for i, die in ipairs(dice) do
idx = string.find(die, "d")
count = tonumber(string.sub(die, 1, idx -1))
value = tonumber(string.sub(die, idx + 1))
min_damage = min_damage + count
max_damage = max_damage + value * count
avg_str = string.format("(%d - %d)", min_damage, max_damage)
end
damage_str = string.format("%s %s %s", table.concat(dice, " + "), d_type, avg_str)
table.insert(damage_str)
end
end
return table.concat(result, " ")


end
end


return p
return p

Navigation menu