pocketmine\entity\Effect::applyEffect PHP Method

applyEffect() public method

public applyEffect ( Entity $entity )
$entity Entity
    public function applyEffect(Entity $entity)
    {
        switch ($this->id) {
            case Effect::POISON:
                if ($entity->getHealth() > 1) {
                    $ev = new EntityDamageEvent($entity, EntityDamageEvent::CAUSE_MAGIC, 1);
                    $entity->attack($ev->getFinalDamage(), $ev);
                }
                break;
            case Effect::WITHER:
                $ev = new EntityDamageEvent($entity, EntityDamageEvent::CAUSE_MAGIC, 1);
                $entity->attack($ev->getFinalDamage(), $ev);
                break;
            case Effect::REGENERATION:
                if ($entity->getHealth() < $entity->getMaxHealth()) {
                    $ev = new EntityRegainHealthEvent($entity, 1, EntityRegainHealthEvent::CAUSE_MAGIC);
                    $entity->heal($ev->getAmount(), $ev);
                }
                break;
            case Effect::HUNGER:
                if ($entity instanceof Human) {
                    $entity->exhaust(0.5 * $this->amplifier, PlayerExhaustEvent::CAUSE_POTION);
                }
                break;
            case Effect::HEALING:
                $level = $this->amplifier + 1;
                if ($entity->getHealth() + 4 * $level <= $entity->getMaxHealth()) {
                    $ev = new EntityRegainHealthEvent($entity, 4 * $level, EntityRegainHealthEvent::CAUSE_MAGIC);
                    $entity->heal($ev->getAmount(), $ev);
                } else {
                    $ev = new EntityRegainHealthEvent($entity, $entity->getMaxHealth() - $entity->getHealth(), EntityRegainHealthEvent::CAUSE_MAGIC);
                    $entity->heal($ev->getAmount(), $ev);
                }
                break;
            case Effect::HARMING:
                $level = $this->amplifier + 1;
                if ($entity->getHealth() - 6 * $level >= 0) {
                    $ev = new EntityDamageEvent($entity, EntityDamageEvent::CAUSE_MAGIC, 6 * $level);
                    $entity->attack($ev->getFinalDamage(), $ev);
                } else {
                    $ev = new EntityDamageEvent($entity, EntityDamageEvent::CAUSE_MAGIC, $entity->getHealth());
                    $entity->attack($ev->getFinalDamage(), $ev);
                }
                break;
            case Effect::SATURATION:
                if ($entity instanceof Player) {
                    if ($entity->getServer()->foodEnabled) {
                        $entity->setFood($entity->getFood() + 1);
                    }
                }
                break;
        }
    }