Living: added knockback resistance attribute checks

This commit is contained in:
Dylan K. Taylor 2018-05-24 11:49:18 +01:00
parent 509e8c5f6d
commit 595f1f58da

View File

@ -564,23 +564,24 @@ abstract class Living extends Entity implements Damageable{
if($f <= 0){ if($f <= 0){
return; return;
} }
if(mt_rand() / mt_getrandmax() > $this->getAttributeMap()->getAttribute(Attribute::KNOCKBACK_RESISTANCE)->getValue()){
$f = 1 / $f;
$f = 1 / $f; $motion = new Vector3($this->motionX, $this->motionY, $this->motionZ);
$motion = new Vector3($this->motionX, $this->motionY, $this->motionZ); $motion->x /= 2;
$motion->y /= 2;
$motion->z /= 2;
$motion->x += $x * $f * $base;
$motion->y += $base;
$motion->z += $z * $f * $base;
$motion->x /= 2; if($motion->y > $base){
$motion->y /= 2; $motion->y = $base;
$motion->z /= 2; }
$motion->x += $x * $f * $base;
$motion->y += $base;
$motion->z += $z * $f * $base;
if($motion->y > $base){ $this->setMotion($motion);
$motion->y = $base;
} }
$this->setMotion($motion);
} }
public function kill() : void{ public function kill() : void{