With two points in Guardian Unity, I expected my Temporal Warden to have ~46% incoming damage shared with his Guardian when it was first summoned. However, the damage message always had numbers like (50 shared), 100 taken, which clearly seemed a far stretch from 46%.
In fact, it seemed more in line with the ~23% the tooltip suggested I should take if the Guardian was already there from some other recent hit.
Anyway, I was glancing through the code, and found what seems to be the cause. From talents/chronomancy/guardian.lua
Line 98
-- split the damage
cb.value = cb.value - (split * 2)
self.unity_warden = m
m:takeHit(split, src)
m:setTarget(src or nil)
game:delayedLogMessage(self, nil, "guardian_damage", "#STEEL_BLUE##Source# shares damage with %s guardian!", string.his_her(self))
game:delayedLogDamage(src or self, self, 0, ("#STEEL_BLUE#(%d shared)#LAST#"):format(split), nil)
Line 106
Using lines 57-59 as a guide (code for when Guardian is already there), split is the "halved" percent to share.
So line 100 here subtracting double is correct.
Its just not doubled in line 105 when the amount is displayed to the player.
Maybe insert a new line 100 at the start of this block doubling split's value with a comment for clarity? The random * 2 is a bit opaque, and putting it in two places would just be more so.
Hope that helps!
Damage Display Error for Guardian Unity
Moderator: Moderator
Re: Damage Display Error for Guardian Unity
Mmmm, maybe not on doubling split, as you do need to hand the split to the clone to actually take.
Wait, scratch that, the clone SHOULD take the doubled amount, right?
So I guess the clones were getting off easy all this time, given Line 102?
Wait, scratch that, the clone SHOULD take the doubled amount, right?
So I guess the clones were getting off easy all this time, given Line 102?