package jp.jias.bukkit.bossmonster; import org.bukkit.entity.Creature; import org.bukkit.scheduler.BukkitRunnable; /** * ボスが使うスキルのベースとなるクラス * * @author i_shi_ba_shi ( jias.jp ) */ abstract public class Skill extends BukkitRunnable{ /** * プラグイン */ protected BossMonster plugin; /** * スキルを現在実行中ならtrue、実行後ならfalse */ private boolean isRunning=true; /** * コンストラクタ * * @param plugin * プラグイン */ public Skill(BossMonster plugin){ this.plugin=plugin; } /** * 非同期処理内容 */ public void run(){ // ボスは死んだか if(getBoss().isDead()){ // 非同期処理を終了 cancel(); return; } // スキル処理を呼び出す fire(); } /** * スキル処理 * */ abstract protected void fire(); /** * ボスを返す * * @return ボス */ protected Creature getBoss(){ return plugin.getBoss(); } /** * 非同期処理がキャンセルされたとき呼び出される */ public void cancel(){ super.cancel(); isRunning=false; } /** * 現在スキルが実行中かを返す * * @return 実行中ならtrue */ public boolean isRunning(){ return isRunning; } }