Fix acrobatics damage calculations #5088
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, acrobatics does it's damage calculates pre-vanilla damage reductions which leads to a non-fatal fall being considered fatal.
This leads to armored players never procing Roll or Graceful Landing when they infact should, as their fall damage was not fatal.
This change uses the getFinalDamage() method instead of getDamage() method which will use the post-vanilla reduction damage calculation to calculate fatality as well as mcMMO's further reductions.
Using setDamage would re-trigger vanilla damage reductions and would result in a double-reduction, both pre and post mcMMO calculations, so we instead setDamage to 0 from this fall and set a new damage with the DamageType of MAGIC which bypasses resistances.
This is perfectly fine because vanilla reductions are already factored into the fall before mcMMO does any modification, and the server will never see a death from "magic" since Roll will not run any modifications should the fall be fatal.