Damage Display Error for Guardian Unity

Where bugs go to lie down and rest

Moderator: Moderator

Post Reply
Message
Author
777
Posts: 4
Joined: Mon Nov 24, 2014 2:33 am

Damage Display Error for Guardian Unity

#1 Post by 777 »

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!

777
Posts: 4
Joined: Mon Nov 24, 2014 2:33 am

Re: Damage Display Error for Guardian Unity

#2 Post by 777 »

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?

Post Reply