Attempt to properly update...
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.garbagemule.MobArena.framework.Arena;
|
||||
import com.garbagemule.MobArena.waves.MABoss;
|
||||
import com.garbagemule.MobArena.waves.ability.*;
|
||||
|
||||
@AbilityInfo(
|
||||
name = "Living Bomb",
|
||||
aliases = {"livingbomb"}
|
||||
)
|
||||
public class LivingBomb implements Ability
|
||||
{
|
||||
/**
|
||||
* How many ticks before the bomb goes off.
|
||||
*/
|
||||
private final int FUSE = 60;
|
||||
|
||||
/**
|
||||
* How close players must be to be affected by the bomb.
|
||||
*/
|
||||
private final int RADIUS = 3;
|
||||
|
||||
/**
|
||||
* How many ticks players affected by the bomb should burn.
|
||||
*/
|
||||
private final int AFTERBURN = 40;
|
||||
|
||||
@Override
|
||||
public void execute(final Arena arena, MABoss boss) {
|
||||
// Grab the target, or a random player.
|
||||
LivingEntity target = AbilityUtils.getTarget(arena, boss.getEntity(), true);
|
||||
|
||||
// We only want players.
|
||||
if (target == null || !(target instanceof Player))
|
||||
return;
|
||||
|
||||
final Player p = (Player) target;
|
||||
p.setFireTicks(FUSE + 5);
|
||||
|
||||
// Create an explosion after 4 seconds
|
||||
arena.scheduleTask(new Runnable() {
|
||||
public void run() {
|
||||
// If the player died, or if they put out the fire.
|
||||
if (!arena.isRunning() || !arena.inArena(p) || p.getFireTicks() <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Explode!
|
||||
arena.getWorld().createExplosion(p.getLocation(), 1F);
|
||||
|
||||
// And set every nearby player on fire!
|
||||
for (Player nearby : AbilityUtils.getNearbyPlayers(arena, p, RADIUS)) {
|
||||
nearby.setFireTicks(AFTERBURN);
|
||||
}
|
||||
}
|
||||
}, FUSE);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user