>Essences now drop in the Overworld while Cores drop in the Nether from

basic monsters.
This commit is contained in:
sigonasr2 2017-01-14 05:15:20 -06:00
parent 37dbd8b417
commit 22e31e2b8c
4 changed files with 53 additions and 6 deletions

Binary file not shown.

View File

@ -2257,7 +2257,8 @@ public class GenericFunctions {
((Guardian)m).isElder()) || ((Guardian)m).isElder()) ||
m.getType()==EntityType.ENDER_DRAGON || m.getType()==EntityType.ENDER_DRAGON ||
m.getType()==EntityType.WITHER || m.getType()==EntityType.WITHER ||
LivingEntityStructure.getLivingEntityStructure(m).getLeader()) { LivingEntityStructure.getLivingEntityStructure(m).getLeader() ||
LivingEntityStructure.getLivingEntityStructure(m).getElite()) {
return true; return true;
} else { } else {
return false; return false;

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Monster; import org.bukkit.entity.Monster;
@ -14,6 +15,7 @@ import org.bukkit.inventory.meta.SkullMeta;
import aPlugin.API.Chests; import aPlugin.API.Chests;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import sig.plugin.TwosideKeeper.Artifact;
import sig.plugin.TwosideKeeper.CustomDamage; import sig.plugin.TwosideKeeper.CustomDamage;
import sig.plugin.TwosideKeeper.MonsterController; import sig.plugin.TwosideKeeper.MonsterController;
import sig.plugin.TwosideKeeper.TwosideKeeper; import sig.plugin.TwosideKeeper.TwosideKeeper;
@ -145,6 +147,49 @@ public enum LivingEntityDifficulty {
} }
} }
TwosideKeeper.log("Adding item "+goodie, 2);*/ //LEGACY CODE. 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); droplist.add(goodie);
} }

View File

@ -5883,16 +5883,17 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
if (ev.getDamage(DamageModifier.BASE)>=CUSTOM_DAMAGE_IDENTIFIER) { if (ev.getDamage(DamageModifier.BASE)>=CUSTOM_DAMAGE_IDENTIFIER) {
log("BASE damage: "+ev.getDamage(DamageModifier.BASE)+"-"+CUSTOM_DAMAGE_IDENTIFIER,5); log("BASE damage: "+ev.getDamage(DamageModifier.BASE)+"-"+CUSTOM_DAMAGE_IDENTIFIER,5);
double dmgdealt = ev.getDamage(DamageModifier.BASE)-CUSTOM_DAMAGE_IDENTIFIER; 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) { if (ev.getEntity() instanceof ArmorStand) {
ArmorStand as = (ArmorStand)ev.getEntity(); ArmorStand as = (ArmorStand)ev.getEntity();
if (as.isVisible() && if (as.isVisible() &&
!as.isInvulnerable()) { !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. //Only a player can deal custom damage.
LivingEntity l = CustomDamage.getDamagerEntity(ev.getDamager()); LivingEntity l = CustomDamage.getDamagerEntity(ev.getDamager());
if (l instanceof Player) { if (l instanceof Player) {
@ -6416,7 +6417,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
isBoss=GenericFunctions.isBossMonster(m); isBoss=GenericFunctions.isBossMonster(m);
isElite=GenericFunctions.isEliteMonster(m); isElite=GenericFunctions.isEliteMonster(m);
if (killedByPlayer && GenericFunctions.isCoreMonster(m) && Math.random()<RARE_DROP_RATE*dropmult*ARTIFACT_RARITY) { if (killedByPlayer && GenericFunctions.isBossMonster(m) && Math.random()<RARE_DROP_RATE*dropmult*ARTIFACT_RARITY) {
switch ((int)(Math.random()*4)) { switch ((int)(Math.random()*4)) {
case 0:{ case 0:{
droplist.add(Artifact.createArtifactItem(ArtifactItem.LOST_CORE)); droplist.add(Artifact.createArtifactItem(ArtifactItem.LOST_CORE));