Living: fixed some update conditions not being set

This commit is contained in:
Dylan K. Taylor 2018-08-22 15:40:32 +01:00
parent ec1e257e21
commit 9d80802e53

View File

@ -629,7 +629,9 @@ abstract class Living extends Entity implements Damageable{
$hasUpdate = parent::entityBaseTick($tickDiff);
$this->doEffectsTick($tickDiff);
if($this->doEffectsTick($tickDiff)){
$hasUpdate = true;
}
if($this->isAlive()){
if($this->isInsideOfSolid()){
@ -641,6 +643,7 @@ abstract class Living extends Entity implements Damageable{
if(!$this->canBreathe()){
$this->setBreathing(false);
$this->doAirSupplyTick($tickDiff);
$hasUpdate = true;
}elseif(!$this->isBreathing()){
$this->setBreathing(true);
$this->setAirSupplyTicks($this->getMaxAirSupplyTicks());
@ -656,7 +659,7 @@ abstract class Living extends Entity implements Damageable{
return $hasUpdate;
}
protected function doEffectsTick(int $tickDiff = 1) : void{
protected function doEffectsTick(int $tickDiff = 1) : bool{
foreach($this->effects as $instance){
$type = $instance->getType();
if($type->canTick($instance)){
@ -667,6 +670,8 @@ abstract class Living extends Entity implements Damageable{
$this->removeEffect($instance->getId());
}
}
return !empty($this->effects);
}
/**