Closed James103 closed 8 months ago
Yea... Look... If a player has more than 70,000,000,000,000,000,000,000,000,000,000,000,000 health... That is just so ridiculously far past stupid that I don't even care if it's broken.
When you're so overpowered that you're running into the limitations of floating point arithmetics...
You probably need to just stop what you're doing, and reconsider your life choices xD
Base information
Description / steps to reproduce
Players with more than 7 × 1037 HP are still able to survive hits from the full-power Guardian laser beam. For example, a player with 3 × 1038 HP can survive 4 full-power Guardian laser beam hits before dying. Assuming the player heals to full every tick and immediately after taking damage, this could potentially allow surviving the full duration of a full-power beam without Totems of Undying, which is not intended. This is caused by
Float.MAX_VALUE
being 3.4 × 1038, which meansFloat.MAX_VALUE / 5F
is a bit under 7 × 1037.The relevant line added in the linked commit is line 105,
attackTarget.setHealth(prevHealth - beamPower);
. Fixing this is simple: just change it toattackTarget.setHealth(-beamPower);
. Then all players will die from the guardian laser beam on the first full-power hit, even those withNaN
HP.