Fix acrobatics

This commit is contained in:
Ineusia 2024-09-19 20:26:12 -04:00
parent 8c2848a3e7
commit 7c9abd1b8c

View File

@ -76,7 +76,12 @@ public class Roll extends AcrobaticsSubSkill {
// no-op - fall was fatal or otherwise did not get processed
return false;
}
entityDamageEvent.setDamage(rollResult.getModifiedDamage());
// Clear out the damage from falling so that way our modified damage doesn't get re-reduced by protection/feather falling
entityDamageEvent.setDamage(0);
// Send the damage is MAGIC so that it cuts through all resistances
// This is fine because we considered protection/featherfalling in the rollCheck method
entityDamageEvent.setDamage(EntityDamageEvent.DamageModifier.MAGIC, rollResult.getModifiedDamage());
if (entityDamageEvent.getFinalDamage() == 0) {
entityDamageEvent.setCancelled(true);
@ -216,7 +221,7 @@ public class Roll extends AcrobaticsSubSkill {
*/
@VisibleForTesting
public RollResult rollCheck(McMMOPlayer mmoPlayer, EntityDamageEvent entityDamageEvent) {
double baseDamage = entityDamageEvent.getDamage();
double baseDamage = entityDamageEvent.getFinalDamage();
final boolean isGraceful = mmoPlayer.getPlayer().isSneaking();
final RollResult.Builder rollResultBuilder
= new RollResult.Builder(entityDamageEvent, isGraceful);