package jp.jias.bukkit; import org.bukkit.Location; import org.bukkit.entity.Arrow; import org.bukkit.entity.Creature; import org.bukkit.util.Vector; /** * トルネードショットを撃つ * * @author admin * */ public class TornadoShot extends Skill { /** * 矢の発射角度 */ private int angle=0; /** * コンストラクタ * * @param _boss * ボス */ public TornadoShot(Creature _boss) { super(_boss); } /** * 毎tickごとに呼び出される */ protected void tick(int count) { // 経過時間に応じて処理 if (count == 20) { // 呪文を唱える getBoss().getServer().broadcastMessage("§6トルネードショット!"); } else if (count == 100) { // スキルを終了する cancel(); } else if (count >= 40) { // 矢の発射の基点を計算する // モンスターの座標は足元の座標なので、だいたい腕のあたりから矢が出るよう高さを調整する Location loc = getBoss().getLocation().add(0, 1, 0); //矢の発射角度を前回から20度変更する angle+=20; // 1tickあたり5本の矢を発射する for (int n = 0; n != 5; n++) { // 矢の発射方向を計算する Vector v = new Vector(Math.sin(Math.toRadians(angle)), n/10F, Math.cos(Math.toRadians(angle))).normalize(); // 矢を発射する Arrow arrow=getBoss().getWorld().spawnArrow(loc.add(v), v, 0.6F, 12); // 矢の発射者を設定する arrow.setShooter(getBoss()); } } } }