public function getSkillDescription()
 {
     $text = ToAruPG::getTranslation("EXPLOSION_ARROW_DESC") . "\n" . ToAruPG::getTranslation("CURRENT_LEVEL") . "\n" . ToAruPG::getTranslation("EXPLOSION_DAMAGE", $this->level) . "\n" . ToAruPG::getTranslation("MANA_USE", 120 + $this->getLevel() * 5) . "\n";
     if ($this->canInvestSP(1)) {
         $text .= ToAruPG::getTranslation("NEXT_LEVEL") . ":" . "\n" . ToAruPG::getTranslation("EXPLOSION_DAMAGE", $this->level + 1) . "\n" . ToAruPG::getTranslation("MANA_USE", 120 + ($this->getLevel() + 1) * 5);
     }
     return $text;
 }
 public function buy(Player $buyer)
 {
     $rpg = ToAruPG::getInstance()->getRPGPlayerByName($buyer);
     $skill = SkillManager::getSkill($this->skillId);
     $rpg->acquireSkill($skill);
     EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop");
     $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT"));
 }
 public function getSkillDescription()
 {
     $text = ToAruPG::getTranslation("MANA_INCREASE_DESC") . "\n" . ToAruPG::getTranslation("CURRENT_LEVEL") . "\n" . ToAruPG::getTranslation("MAX_MANA_INCREASE", $this->level * 100) . "\n";
     if ($this->canInvestSP(1)) {
         $text .= ToAruPG::getTranslation("NEXT_LEVEL") . ":" . "\n" . ToAruPG::getTranslation("MAX_MANA_INCREASE", $this->level * 100 + 100);
     }
     return $text;
 }
 public function getSkillDescription()
 {
     $text = ToAruPG::getTranslation("QUICK_SHOT_DESC") . "\n" . ToAruPG::getTranslation("CURRENT_LEVEL") . "\n" . ToAruPG::getTranslation("ARROW_DAMAGE", $this->level * 10 + 50 . "%") . "\n" . ToAruPG::getTranslation("DURATION", $this->level + 5 . ToAruPG::getTranslation("SECOND")) . "\n" . ToAruPG::getTranslation("MANA_USE", 500 + $this->getLevel() * 5) . "\n";
     if ($this->canInvestSP(1)) {
         $text .= ToAruPG::getTranslation("NEXT_LEVEL") . ":" . "\n" . ToAruPG::getTranslation("ARROW_DAMAGE", $this->level * 10 + 60 . "%") . "\n" . ToAruPG::getTranslation("DURATION", $this->level + 6 . ToAruPG::getTranslation("SECOND")) . "\n" . ToAruPG::getTranslation("MANA_USE", 500 + ($this->getLevel() + 1) * 5);
     }
     return $text;
 }
 public function getSkillDescription()
 {
     $text = ToAruPG::getTranslation("ARROW_MASTERY_DESC") . "\n" . ToAruPG::getTranslation("CURRENT_LEVEL") . "\n" . ToAruPG::getTranslation("ARROW_MASTERY_ATTACK_INCREASE", $this->level * 5) . "\n";
     if ($this->canInvestSP(1)) {
         $text .= ToAruPG::getTranslation("NEXT_LEVEL") . ":" . "\n" . ToAruPG::getTranslation("ARROW_MASTERY_ATTACK_INCREASE", $this->level * 5 + 5);
     }
     return $text;
 }
 public function onEnable()
 {
     JobManager::registerJob(new JobArcher());
     SkillManager::registerSkill(new SkillArrowRepeat());
     SkillManager::registerSkill(new SkillDash());
     SkillManager::registerSkill(new SkillDualArrow());
     SkillManager::registerSkill(new SkillExplosionArrow());
     SkillManager::registerSkill(new SkillArrowMastery());
     SkillManager::registerSkill(new SkillSplitShot());
     SkillManager::registerSkill(new SkillQuickShot());
     SkillManager::registerSkill(new SkillManaIncrease());
     SkillManager::registerSkill(new SkillBowMastery());
     SkillManager::registerSkill(new SkillLightningShot());
     $this->getServer()->getPluginManager()->registerEvents($this, $this);
     Entity::registerEntity("Khinenw\\Archer\\EffectArrow");
     ToAruPG::addAllTranslation($this->getResource("translation.yml"));
     self::$instance = $this;
 }
Exemple #7
0
 public function buy(Player $buyer)
 {
     $rpg = ToAruPG::getInstance()->getRPGPlayerByName($buyer);
     $job = JobManager::getJob($this->jobId);
     $rpg->changeJob($job);
     foreach ($job->getSkills() as $skill) {
         $skill = SkillManager::getSkill($skill);
         if (!$skill->canBeAcquired($rpg)) {
             $buyer->sendMessage(TextFormat::RED . ToAruPG::getTranslation("SKILL_COULD_NOT_ACQUIRE", ToAruPG::getTranslation($skill->getName())));
             continue;
         }
         if ($rpg->hasSkill($skill->getId())) {
             $buyer->sendMessage(TextFormat::RED . ToAruPG::getTranslation("ALREADY_HAS_SKILL", ToAruPG::getTranslation($skill->getName())));
             continue;
         }
         $rpg->acquireSkill($skill);
     }
     EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop");
     $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT"));
 }
Exemple #8
0
 public function buy(Player $buyer)
 {
     ToAruPG::getInstance()->getRPGPlayerByName($buyer)->changeJob(JobManager::getJob($this->jobId));
     EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop");
     $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT"));
 }
 public function onPlayerInteract(PlayerInteractEvent $event)
 {
     if ($event->getAction() !== PlayerInteractEvent::RIGHT_CLICK_BLOCK) {
         return;
     }
     $tag = $event->getBlock()->getX() . ";" . $event->getBlock()->getY() . ";" . $event->getBlock()->getZ() . ";" . $event->getBlock()->getLevel()->getFolderName();
     if (!isset($this->shops[$tag])) {
         return;
     }
     if (!isset($this->doubleTap[$event->getPlayer()->getName()])) {
         $this->setDoubleTap($event->getPlayer(), $tag);
         return;
     }
     if ($this->doubleTap[$event->getPlayer()->getName()]["id"] !== $tag) {
         $this->setDoubleTap($event->getPlayer(), $tag);
         return;
     }
     if ($this->doubleTap[$event->getPlayer()->getName()]["time"] - microtime(true) >= 1.5) {
         $this->setDoubleTap($event->getPlayer(), $tag);
         return;
     }
     unset($this->doubleTap[$event->getPlayer()->getName()]);
     $returnVal = $this->shops[$tag]->canBuy($event->getPlayer());
     if ($returnVal !== true) {
         $event->getPlayer()->sendMessage(TextFormat::RED . ToAruPG::getTranslation($returnVal));
         return;
     }
     $this->shops[$tag]->buy($event->getPlayer());
     if ($event->getItem()->canBePlaced()) {
         $this->itemPlaceList[$event->getPlayer()->getName()] = true;
     }
     $event->setCancelled(true);
 }
 public function onRun($currentTick)
 {
     ToAruPG::getInstance()->saveAll();
     ToAruPG::getInstance()->getLogger()->info(TextFormat::AQUA . "Auto-saved!");
 }
 public static function getFinalDamage(RPGPlayer $player)
 {
     return ToAruPG::randomizeDamage(self::getBaseDamage($player) + self::getAdditionalBaseDamage($player), self::getApproximation($player));
 }
Exemple #12
0
 public function onRun($currentTick)
 {
     ToAruPG::getInstance()->heal();
 }
Exemple #13
0
 public function setArmorStatus(Status $status)
 {
     Server::getInstance()->getPluginManager()->callEvent(new ArmorChangeEvent(ToAruPG::getInstance(), $this, $this->armorStatus, $status));
     $this->armorStatus = $status;
 }
 public function setXp($xp)
 {
     Server::getInstance()->getPluginManager()->callEvent(new XPChangeEvent(ToAruPG::getInstance(), $this->owner, $this->xp, $xp));
     $this->xp = $xp;
 }
 public function onRun($currentTick)
 {
     if (!ToAruPG::getInstance()->isValidPlayer($this->player->getPlayer())) {
         return;
     }
     $pos = $this->player->getPlayer()->getPosition();
     for ($i = 0; $i < self::SPLIT_SHOT_COUNT; $i++) {
         $arrow = Archery::createEffectArrow($this->player->getPlayer(), $pos, new Vector3(mt_rand(-5, 5) / 5, -1, mt_rand(-5, 5) / 5), 0, -90, 255, 0, 120, false);
         $arrow->namedtag["ArcheryDamage"] = new Double("ArcheryDamage", $this->player->getCurrentJob()->getFinalDamage($this->player) * (2 + $this->level / 10));
         $arrow->namedtag["Custom"] = new Int("Custom", 1);
         $this->player->getPlayer()->getLevel()->addEntity($arrow);
         $arrow->spawnToAll();
     }
 }
 public function getSkillDescription()
 {
     $text = ToAruPG::getTranslation("DASH_DESC") . "\n" . ToAruPG::getTranslation("CURRENT_LEVEL") . "\n" . ToAruPG::getTranslation("MANA_USE", 30 - $this->level) . "\n";
     if ($this->canInvestSP(1)) {
         $text .= ToAruPG::getTranslation("NEXT_LEVEL") . ":" . "\n" . ToAruPG::getTranslation("MANA_USE", 30 - $this->level);
     }
     return $text;
 }
 public function handle(ProjectileHitEvent $event)
 {
     $shootingEntity = $event->getEntity()->shootingEntity;
     if (!$shootingEntity instanceof Player) {
         return;
     }
     $rpgPlayer = ToAruPG::getInstance()->getRPGPlayerByName($shootingEntity->getName());
     if ($rpgPlayer === null) {
         return;
     }
     $skill = $rpgPlayer->getSkillById(SkillLightningShot::getId());
     if (!$skill instanceof SkillLightningShot) {
         return;
     }
     $pos = $event->getEntity();
     $aedPk = new AddEntityPacket();
     $aedPk->eid = Entity::$entityCount++;
     $aedPk->type = 93;
     $aedPk->x = $pos->getX();
     $aedPk->y = $pos->getY();
     $aedPk->z = $pos->getZ();
     $aedPk->speedX = 0;
     $aedPk->speedY = 0;
     $aedPk->speedZ = 0;
     $aedPk->yaw = 0;
     $aedPk->pitch = 0;
     $aedPk->metadata = [];
     $expPk = new ExplodePacket();
     $expPk->x = $pos->getX();
     $expPk->y = $pos->getY();
     $expPk->z = $pos->getZ();
     $expPk->radius = self::EXPLOSION_SIZE;
     $pos->getLevel()->addChunkPacket($pos->chunk->getX(), $pos->chunk->getZ(), $aedPk);
     $pos->getLevel()->addChunkPacket($pos->chunk->getX(), $pos->chunk->getZ(), $expPk);
     $aabb = new AxisAlignedBB($pos->getX() - self::EXPLOSION_SIZE - 1, $pos->getY() - self::EXPLOSION_SIZE - 1, $pos->getZ() - self::EXPLOSION_SIZE - 1, $pos->getX() + self::EXPLOSION_SIZE + 1, $pos->getY() + self::EXPLOSION_SIZE + 1, $pos->getZ() + self::EXPLOSION_SIZE + 1);
     foreach ($pos->getLevel()->getNearbyEntities($aabb, $shootingEntity) as $e) {
         if ($e instanceof Player && !ToAruPG::$pvpEnabled) {
             continue;
         }
         $event = new EntityDamageByEntityEvent($shootingEntity, $e, EntityDamageByEntityEvent::CAUSE_CUSTOM, $skill->getDamage());
         Server::getInstance()->getPluginManager()->callEvent($event);
         if (!$event->isCancelled()) {
             $e->attack($skill->getDamage(), $event);
             $thread = new SafeBurnThread($e, $shootingEntity, $skill->getFireTick());
             $thread->setHandler(Server::getInstance()->getScheduler()->scheduleRepeatingTask($thread, 40));
         }
     }
 }
 public function getSkillDescription()
 {
     $text = ToAruPG::getTranslation("DUAL_ARROW_DESC") . "\n" . ToAruPG::getTranslation("CURRENT_LEVEL") . "\n" . ToAruPG::getTranslation("ARROW_DAMAGE", "1" . $this->level . "0%") . "\n" . ToAruPG::getTranslation("MANA_USE", 25 + $this->getLevel() * 5) . "\n";
     if ($this->canInvestSP(1)) {
         $text .= ToAruPG::getTranslation("NEXT_LEVEL") . ":" . "\n" . ToAruPG::getTranslation("ARROW_DAMAGE", "1" . ($this->level + 1) . "0%") . "\n" . ToAruPG::getTranslation("MANA_USE", 25 + ($this->getLevel() + 1) * 5);
     }
     return $text;
 }
Exemple #19
-1
 public function setRPGItem(Item $item, $name, $desc, $class)
 {
     $classData = self::$ITEM_CLASS[$class];
     $item->setCustomName($classData["COLOR"] . ToAruPG::getTranslation($classData["TID"]) . $name);
     $item->getNamedTag()->desc = new String("desc", $desc);
     return $item;
 }