// Remaps all scores - where a score of SCORE_MOD is the average dmg of this character.
SCORE_MOD 100.0
BASE_NEARBY_SCORE 0.2
....
function GetModifier(value)
return math.floor((value - 10) / 2)
end
The logic used in BG3 testing environment to compute several values in a normalised fashion (damage might be among them).
There's a trick though, after several manipulations, they take the floor of a value from a range (note score_mod is manipulated) because the probability of a point that is one unit less than another is higher for any point greater than or equal to the mean.
I would guess then that since 2d6 offers 7 and 1d12 offers 6(.5 is not taken into account) then 2d6 is def better.
There is...however the matter with this snippet of code:
//2. operator | will calculate chance of either left or right to be trigger. Formula is 1-(1-leftSuccessChance)*(1-rightSuccessChance)
...
function invert(n)
local absolute = math.abs(n)
if absolute <= 1 and absolute >= 0
then return (1 - absolute)
else return n
end
end
...
__bor = function(a, b) -- | operator
local r = (type(b) == "boolean") and boolToNum(b) or b
return invert(invert(a)*invert(r));
end,
Which makes me believe that if damage is a range from neg to 0 then taking the floor of -6.5 is -7, and invert is 7.
Which means that 2d6 offers no advantage of 1d12.
I'll look into this further