diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar index aed874d..83568bf 100644 Binary files a/TwosideKeeper.jar and b/TwosideKeeper.jar differ diff --git a/src/sig/plugin/TwosideKeeper/ChargeZombie.java b/src/sig/plugin/TwosideKeeper/ChargeZombie.java index bd0fcfb..b4d88de 100644 --- a/src/sig/plugin/TwosideKeeper/ChargeZombie.java +++ b/src/sig/plugin/TwosideKeeper/ChargeZombie.java @@ -1,5 +1,6 @@ package sig.plugin.TwosideKeeper; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; @@ -27,7 +28,7 @@ public class ChargeZombie { public boolean hasTarget() { return (m.getTarget()!=null)?true:false; } - + public void BreakBlocksAroundArea(int radius) { int outerradius = radius+1; for (int x=-radius-1;x=outerradius || + Math.abs(y)>=outerradius+1 || + Math.abs(z)>=outerradius) { + //This block can be destroyed if it is a liquid. + if (l.add(x,y,z).getBlock().isLiquid()) { + l.add(x,y,z).getBlock().breakNaturally(); + aPlugin.API.sendBlockBreakPacket(l.add(x,y,z).getBlock(), -1); + } + } + } + } + } + } + + public static boolean ChanceToBreak(Block b) { int blocktoughness = 0; switch (b.getType()) { case OBSIDIAN:{ diff --git a/src/sig/plugin/TwosideKeeper/CustomDamage.java b/src/sig/plugin/TwosideKeeper/CustomDamage.java index 9fe9082..61ccc69 100644 --- a/src/sig/plugin/TwosideKeeper/CustomDamage.java +++ b/src/sig/plugin/TwosideKeeper/CustomDamage.java @@ -417,9 +417,33 @@ public class CustomDamage { subtractWeaponDurability(p,weapon); aPlugin.API.showDamage(target, GetHeartAmount(damage)); } + if (target instanceof Monster) { + if (reason.equalsIgnoreCase("SUFFOCATION")) { + triggerEliteBreakEvent(target); + } + } return damage; } + private static void triggerEliteBreakEvent(LivingEntity target) { + if (target instanceof Monster && + TwosideKeeper.monsterdata.containsKey(target.getUniqueId())) { + MonsterStructure ms = MonsterStructure.getMonsterStructure((Monster)target); + if (ms.getElite()) { + boolean exists=false; + for (int i=0;i0) { - double dmg = GenericFunctions.getAbilityValue(ArtifactAbility.DEATHMARK, player.getEquipment().getItemInMainHand()); - //Look for nearby mobs up to 10 blocks away. - List nearby = player.getNearbyEntities(10, 10, 10); - for (int i=0;i0) { + double dmg = GenericFunctions.getAbilityValue(ArtifactAbility.DEATHMARK, player.getEquipment().getItemInMainHand()); + //Look for nearby mobs up to 10 blocks away. + List nearby = player.getNearbyEntities(10, 10, 10); + for (int i=0;i