diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar index 4a90692..e0525b9 100644 Binary files a/TwosideKeeper.jar and b/TwosideKeeper.jar differ diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java index 10e654a..6d8188f 100644 --- a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java +++ b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java @@ -2257,7 +2257,8 @@ public class GenericFunctions { ((Guardian)m).isElder()) || m.getType()==EntityType.ENDER_DRAGON || m.getType()==EntityType.WITHER || - LivingEntityStructure.getLivingEntityStructure(m).getLeader()) { + LivingEntityStructure.getLivingEntityStructure(m).getLeader() || + LivingEntityStructure.getLivingEntityStructure(m).getElite()) { return true; } else { return false; diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/LivingEntityDifficulty.java b/src/sig/plugin/TwosideKeeper/HelperStructures/LivingEntityDifficulty.java index 44b9761..d4f7445 100644 --- a/src/sig/plugin/TwosideKeeper/HelperStructures/LivingEntityDifficulty.java +++ b/src/sig/plugin/TwosideKeeper/HelperStructures/LivingEntityDifficulty.java @@ -5,6 +5,7 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Monster; @@ -14,6 +15,7 @@ import org.bukkit.inventory.meta.SkullMeta; import aPlugin.API.Chests; import net.md_5.bungee.api.ChatColor; +import sig.plugin.TwosideKeeper.Artifact; import sig.plugin.TwosideKeeper.CustomDamage; import sig.plugin.TwosideKeeper.MonsterController; import sig.plugin.TwosideKeeper.TwosideKeeper; @@ -145,6 +147,49 @@ public enum LivingEntityDifficulty { } } TwosideKeeper.log("Adding item "+goodie, 2);*/ //LEGACY CODE. + if (damager.getWorld().getName().equalsIgnoreCase("world")) { + if (Artifact.isArtifact(goodie) && goodie.getType()==Material.MAGMA_CREAM) { + //This is a core, convert to essence. + switch (goodie.getEnchantmentLevel(Enchantment.LUCK)) { + case 1:{ + goodie = Artifact.createArtifactItem(ArtifactItem.ARTIFACT_ESSENCE,goodie.getAmount()); + }break; + case 2:{ + goodie = Artifact.createArtifactItem(ArtifactItem.ANCIENT_ESSENCE,goodie.getAmount()); + }break; + case 3:{ + goodie = Artifact.createArtifactItem(ArtifactItem.LOST_ESSENCE,goodie.getAmount()); + }break; + case 4:{ + goodie = Artifact.createArtifactItem(ArtifactItem.DIVINE_ESSENCE,goodie.getAmount()); + }break; + default:{ + goodie = Artifact.createArtifactItem(ArtifactItem.ARTIFACT_ESSENCE,goodie.getAmount()); + } + } + } + } else { + if (Artifact.isArtifact(goodie) && goodie.getType()==Material.CLAY_BALL) { + //This is a core, convert to essence. + switch (goodie.getEnchantmentLevel(Enchantment.LUCK)) { + case 1:{ + goodie = Artifact.createArtifactItem(ArtifactItem.ARTIFACT_CORE,goodie.getAmount()); + }break; + case 2:{ + goodie = Artifact.createArtifactItem(ArtifactItem.ANCIENT_CORE,goodie.getAmount()); + }break; + case 3:{ + goodie = Artifact.createArtifactItem(ArtifactItem.LOST_CORE,goodie.getAmount()); + }break; + case 4:{ + goodie = Artifact.createArtifactItem(ArtifactItem.DIVINE_CORE,goodie.getAmount()); + }break; + default:{ + goodie = Artifact.createArtifactItem(ArtifactItem.ARTIFACT_CORE,goodie.getAmount()); + } + } + } + } droplist.add(goodie); } diff --git a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java index c899ded..7d35732 100644 --- a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java +++ b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java @@ -5883,16 +5883,17 @@ public class TwosideKeeper extends JavaPlugin implements Listener { if (ev.getDamage(DamageModifier.BASE)>=CUSTOM_DAMAGE_IDENTIFIER) { log("BASE damage: "+ev.getDamage(DamageModifier.BASE)+"-"+CUSTOM_DAMAGE_IDENTIFIER,5); double dmgdealt = ev.getDamage(DamageModifier.BASE)-CUSTOM_DAMAGE_IDENTIFIER; - CustomDamage.setupTrueDamage(ev); - ev.setDamage(DamageModifier.BASE, dmgdealt); - log("BASE damage: "+ev.getDamage(DamageModifier.BASE),5); if (ev.getEntity() instanceof ArmorStand) { ArmorStand as = (ArmorStand)ev.getEntity(); if (as.isVisible() && !as.isInvulnerable()) { - as.setHealth(Math.max(as.getHealth()-dmgdealt, 0)); + dmgdealt=0.0001; + GenericFunctions.removeNoDamageTick(as, ev.getDamager()); } } + CustomDamage.setupTrueDamage(ev); + ev.setDamage(DamageModifier.BASE, dmgdealt); + log("BASE damage: "+ev.getDamage(DamageModifier.BASE),5); //Only a player can deal custom damage. LivingEntity l = CustomDamage.getDamagerEntity(ev.getDamager()); if (l instanceof Player) { @@ -6416,7 +6417,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { isBoss=GenericFunctions.isBossMonster(m); isElite=GenericFunctions.isEliteMonster(m); - if (killedByPlayer && GenericFunctions.isCoreMonster(m) && Math.random()