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; }
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")); }
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)); }
public function onRun($currentTick) { ToAruPG::getInstance()->heal(); }
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; }
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; }