/**
  * @param Entity $projectile
  */
 public function setProjectile(Entity $projectile)
 {
     if ($projectile !== $this->projectile) {
         if (count($this->projectile->getViewers()) === 0) {
             $this->projectile->kill();
             $this->projectile->close();
         }
         $this->projectile = $projectile;
     }
 }
Exemplo n.º 2
0
 public function kill()
 {
     parent::kill();
 }
Exemplo n.º 3
0
 public function kill()
 {
     $color = Potion::getColor($this->getData());
     $this->getLevel()->addParticle(new SpellParticle($this, $color[0], $color[1], $color[2]));
     $players = $this->getViewers();
     foreach ($players as $p) {
         if ($p->distance($this) <= 6) {
             switch ($this->getData()) {
                 case Potion::NIGHT_VISION:
                     $p->addEffect(Effect::getEffect(Effect::NIGHT_VISION)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::NIGHT_VISION_T:
                     $p->addEffect(Effect::getEffect(Effect::NIGHT_VISION)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::INVISIBILITY:
                     $p->addEffect(Effect::getEffect(Effect::INVISIBILITY)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::INVISIBILITY_T:
                     $p->addEffect(Effect::getEffect(Effect::INVISIBILITY)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::LEAPING:
                     $p->addEffect(Effect::getEffect(Effect::JUMP)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::LEAPING_T:
                     $p->addEffect(Effect::getEffect(Effect::JUMP)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::LEAPING_TWO:
                     $p->addEffect(Effect::getEffect(Effect::JUMP)->setAmplifier(1)->setDuration(1.5 * 60 * 20));
                     break;
                 case Potion::FIRE_RESISTANCE:
                     $p->addEffect(Effect::getEffect(Effect::FIRE_RESISTANCE)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::FIRE_RESISTANCE_T:
                     $p->addEffect(Effect::getEffect(Effect::FIRE_RESISTANCE)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::SPEED:
                     $p->addEffect(Effect::getEffect(Effect::SPEED)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::SPEED_T:
                     $p->addEffect(Effect::getEffect(Effect::SPEED)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::SPEED_TWO:
                     $p->addEffect(Effect::getEffect(Effect::SPEED)->setAmplifier(1)->setDuration(1.5 * 60 * 20));
                     break;
                 case Potion::SLOWNESS:
                     $p->addEffect(Effect::getEffect(Effect::SLOWNESS)->setAmplifier(0)->setDuration(1 * 60 * 20));
                     break;
                 case Potion::SLOWNESS_T:
                     $p->addEffect(Effect::getEffect(Effect::SLOWNESS)->setAmplifier(0)->setDuration(4 * 60 * 20));
                     break;
                 case Potion::WATER_BREATHING:
                     $p->addEffect(Effect::getEffect(Effect::WATER_BREATHING)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::WATER_BREATHING_T:
                     $p->addEffect(Effect::getEffect(Effect::WATER_BREATHING)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::POISON:
                     $p->addEffect(Effect::getEffect(Effect::POISON)->setAmplifier(0)->setDuration(45 * 20));
                     break;
                 case Potion::POISON_T:
                     $p->addEffect(Effect::getEffect(Effect::POISON)->setAmplifier(0)->setDuration(2 * 60 * 20));
                     break;
                 case Potion::POISON_TWO:
                     $p->addEffect(Effect::getEffect(Effect::POISON)->setAmplifier(0)->setDuration(22 * 20));
                     break;
                 case Potion::REGENERATION:
                     $p->addEffect(Effect::getEffect(Effect::REGENERATION)->setAmplifier(0)->setDuration(45 * 20));
                     break;
                 case Potion::REGENERATION_T:
                     $p->addEffect(Effect::getEffect(Effect::REGENERATION)->setAmplifier(0)->setDuration(2 * 60 * 20));
                     break;
                 case Potion::REGENERATION_TWO:
                     $p->addEffect(Effect::getEffect(Effect::REGENERATION)->setAmplifier(1)->setDuration(22 * 20));
                     break;
                 case Potion::STRENGTH:
                     $p->addEffect(Effect::getEffect(Effect::STRENGTH)->setAmplifier(0)->setDuration(3 * 60 * 20));
                     break;
                 case Potion::STRENGTH_T:
                     $p->addEffect(Effect::getEffect(Effect::STRENGTH)->setAmplifier(0)->setDuration(8 * 60 * 20));
                     break;
                 case Potion::STRENGTH_TWO:
                     $p->addEffect(Effect::getEffect(Effect::STRENGTH)->setAmplifier(1)->setDuration(1.5 * 60 * 20));
                     break;
                 case Potion::WEAKNESS:
                     $p->addEffect(Effect::getEffect(Effect::WEAKNESS)->setAmplifier(0)->setDuration(1.5 * 60 * 20));
                     break;
                 case Potion::WEAKNESS_T:
                     $p->addEffect(Effect::getEffect(Effect::WEAKNESS)->setAmplifier(0)->setDuration(4 * 60 * 20));
                     break;
                 case Potion::HEALING:
                     $p->addEffect(Effect::getEffect(Effect::HEALING)->setAmplifier(0)->setDuration(1));
                     break;
                 case Potion::HEALING_TWO:
                     $p->addEffect(Effect::getEffect(Effect::HEALING)->setAmplifier(1)->setDuration(1));
                     break;
                 case Potion::HARMING:
                     $p->addEffect(Effect::getEffect(Effect::HARMING)->setAmplifier(0)->setDuration(1));
                     break;
                 case Potion::HARMING_TWO:
                     $p->addEffect(Effect::getEffect(Effect::HARMING)->setAmplifier(1)->setDuration(1));
                     break;
             }
         }
     }
     parent::kill();
 }