Living: added calculateFallDamage()

to clean up the way that fall damage is handled for flying players; also, onHitGround() isn't only doing fall damage things these days.
This commit is contained in:
Dylan K. Taylor
2021-09-05 14:36:58 +01:00
parent 6b7e671794
commit d4d00a9b80
2 changed files with 7 additions and 5 deletions

View File

@ -305,8 +305,12 @@ abstract class Living extends Entity{
}
}
protected function calculateFallDamage(float $fallDistance) : float{
return ceil($fallDistance - 3 - (($jumpBoost = $this->effectManager->get(VanillaEffects::JUMP_BOOST())) !== null ? $jumpBoost->getEffectLevel() : 0));
}
protected function onHitGround() : void{
$damage = ceil($this->fallDistance - 3 - (($jumpBoost = $this->effectManager->get(VanillaEffects::JUMP_BOOST())) !== null ? $jumpBoost->getEffectLevel() : 0));
$damage = $this->calculateFallDamage($this->fallDistance);
if($damage > 0){
$ev = new EntityDamageEvent($this, EntityDamageEvent::CAUSE_FALL, $damage);
$this->attack($ev);