Implement dice and percent as global lua functions

Intended to simplify many of the math.random calls currently in use, and
make them more semantic and thus more readable.

The dice function d() takes either a two-argument form which is the same
as in the C source (number of dice, faces per die) or a one-argument
form that rolls a single die.

The percent(N) function returns true N% of the time.
This commit is contained in:
copperwater
2020-02-28 21:19:50 -05:00
committed by Pasi Kallinen
parent fd89663a0f
commit c4bb3c904f

View File

@@ -21,3 +21,23 @@ end
align = { "law", "neutral", "chaos" };
shuffle(align);
-- d(2,6) = 2d6
-- d(20) = 1d20 (single argument = implicit 1 die)
function d(dice, faces)
if (faces == nil) then
-- 1-arg form: argument "dice" is actually the number of faces
return math.random(1, dice)
else
local sum = 0
for i=1,dice do
sum = sum + math.random(1, faces)
end
return sum
end
end
-- percent(20) returns true 20% of the time
function percent(threshold)
return math.random(0,99) < threshold
end