It seems GetShieldBlock() doesn’t return the correct value - at least for my Paladin.
It seems to depend WHAT ORDER I equip a shield.
Here’s what I’ve determined (the number is what GetShieldBlock() is returning):
- Start w/ 2h weapon: “5”
- Equip 1h weapon (which has little more +str): “6”
- Equip Shield: STILL “6”
But if I then go back to the 2H, and FIRST equip the shield:
- 2H = “5”
- Equip Shield: “5” (Wrong)
- Equip 1h: “23” <-- CORRECT
Then removing the 1h drops to “22” (expected, as the weapon has some +str)
Re-equipping the 1h, and then REMOVING the Shield it remains at “23” (should be 0, or at least “5” – since I have no shield equipped!)
Re-equipping the 2h in either instance (directly swapping it in and auto-removing the 1h and shield – or manually removing the shield and then swapping the 1h and 2h) drops it back to “5”
While this seems to be a COSMETIC issue (actual blocking of damage seems correct), this is obviously a bug!
EDIT – just tested on a warrior: Very similar, but I get the current value when I first equip the shield (on the paladin, it is still wrong, and then is correct once I put on the 1h… on the warrior, it’s correct the instant I equip the shield)