Fixed some issues with the Wither boss.

master_event
sigonasr2 11 years ago
parent 80957a8788
commit 1d48d639e8
  1. 10
      BankEconomyMod/src/me/kaZep/Base/Main.java
  2. 110
      BankEconomyMod/src/me/kaZep/Base/PlayerListener.java

@ -1124,10 +1124,12 @@ public void runTick() {
for (int i=0;i<world_entities.size();i++) {
if (world_entities.get(i).getType()==EntityType.WITHER) {
Wither l = (Wither)world_entities.get(i);
if (l.getMaxHealth()<l.getHealth()+5+(0.2*(l.getMaxHealth()/l.getHealth()))) {
DecimalFormat df = new DecimalFormat("#0.0");
l.setHealth(l.getHealth()+5+(0.2*(l.getMaxHealth()/l.getHealth())));
//Bukkit.broadcastMessage("Healed "+(+5+(0.2*(l.getMaxHealth()/l.getHealth())))+" health. "+df.format(l.getHealth())+"/"+l.getMaxHealth()+" HP");
if (l.getCustomName()!=null && l.getCustomName().equalsIgnoreCase(ChatColor.LIGHT_PURPLE+"Mythical Wither")) {
if (l.getMaxHealth()>l.getHealth()+5+(0.2*(l.getMaxHealth()/l.getHealth()))) {
DecimalFormat df = new DecimalFormat("#0.0");
//Bukkit.broadcastMessage("Healing for "+(+5+(0.2*(l.getMaxHealth()/l.getHealth())))+" health. "+df.format(l.getHealth())+"/"+l.getMaxHealth()+" HP");
l.setHealth(l.getHealth()+5+(0.2*(l.getMaxHealth()/l.getHealth())));
}
}
}
}

@ -2248,13 +2248,25 @@ implements Listener
//Give the wither bonuses.
if (e.getEntity() instanceof Wither) {
Wither w = (Wither)e.getEntity();
w.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST,999999,40));
w.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE,999999,2));
w.setCustomName(ChatColor.GOLD+""+ChatColor.BOLD+"Mega Wither");
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule mobGriefing true");
if (Math.random()<=0.05) {
w.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST,999999,40));
w.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE,999999,2));
w.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,999999,1));
w.setCustomName(ChatColor.GOLD+""+ChatColor.LIGHT_PURPLE+"Mythical Wither");
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule mobGriefing true");
} else {
w.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING,999999,3));
w.addPotionEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST,999999,40));
w.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE,999999,2));
w.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,999999,1));
w.setCustomName(ChatColor.GOLD+""+ChatColor.BOLD+"Mega Wither");
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule mobGriefing true");
}
}
} else {
@ -5228,6 +5240,10 @@ implements Listener
}
public ItemStack getGoodie() {
return getGoodie(0);
}
public ItemStack getGoodie(int rar /*1=Mythical 0=Normal*/) {
ItemStack item = null;
if (Math.random()<0.33) {
//Add a weapon/armor piece.
@ -5265,6 +5281,9 @@ implements Listener
rarity=3;
}break;
}
if (rar==1) {
rarity=3;
}
switch (rand) {
case 0: {
type = "LEATHER";
@ -6023,6 +6042,27 @@ implements Listener
}
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule mobGriefing false");
}
if (f.getCustomName().contains("Mythical Wither")) {
e.setDroppedExp(e.getDroppedExp()*4000);
boolean dropMythical=false;
for (int j=0;j<10;j++) {
Location dd = f.getLocation().add(Math.random()*4,Math.random()*4,Math.random()*4);
Bukkit.getWorld("world").getBlockAt(dd).setType(Material.CHEST);
Chest c=(Chest)Bukkit.getWorld("world").getBlockAt(dd).getState();
for (int i=0;i<27;i++) {
ItemStack item = null;
if (Math.random()<=0.05 && !dropMythical) {
dropMythical=true;
item = getGoodie(2);
}
if (Math.random()<=0.2) {
item = getGoodie();
c.getBlockInventory().setItem(i, item);
}
}
}
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule mobGriefing false");
}
if (f.getCustomName().contains(ChatColor.DARK_PURPLE+"")) {
e.setDroppedExp(e.getDroppedExp()*20);
f.setHealth(0);
@ -6887,7 +6927,61 @@ implements Listener
}
}
if (e.getEntity() instanceof Wither) {
e.setDamage(e.getDamage()*0.075d);
if (l.getCustomName()!=null && l.getCustomName().equalsIgnoreCase(ChatColor.LIGHT_PURPLE+"Mythical Wither")) {
e.setDamage(e.getDamage()*0.045d);
} else {
e.setDamage(e.getDamage()*0.065d);
}
try {
Iterator<PotionEffect> effects = l.getActivePotionEffects().iterator();
//Figure out potion effects when player joins.
while (effects.hasNext()) {
PotionEffect nexteffect = effects.next();
if (nexteffect.getType().getName().compareTo(PotionEffectType.NIGHT_VISION.getName())==0 && l.getHealth()<l.getMaxHealth()/2) {
l.removePotionEffect(PotionEffectType.NIGHT_VISION);
l.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE,999999,2));
LivingEntity zombie = (LivingEntity)Bukkit.getWorld("world").spawnEntity(e.getEntity().getLocation(),EntityType.ZOMBIE);
LivingEntity enderdragon = (LivingEntity)Bukkit.getWorld("world").spawnEntity(e.getEntity().getLocation(),EntityType.ENDER_DRAGON);
//Bukkit.getWorld("world").spawn(e.getEntity().getLocation(), enderdragon.getClass());
zombie.setCustomName(ChatColor.DARK_PURPLE+"Charge Zombie III");
zombie.getEquipment().setBoots(new ItemStack(Material.IRON_BOOTS));
zombie.getEquipment().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
zombie.getEquipment().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
zombie.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION,999999,3));
ItemStack sword = new ItemStack(Material.IRON_SWORD);
sword.addEnchantment(Enchantment.DAMAGE_ALL, 3);
zombie.getEquipment().setItemInHand(sword);
ItemStack skull = new ItemStack(397);
skull.setDurability((short)3);
SkullMeta meta = (SkullMeta)skull.getItemMeta();
meta.setOwner("MHF_Enderman");
skull.setItemMeta(meta);
zombie.getEquipment().setHelmet(skull);
enderdragon.setCustomName(ChatColor.DARK_PURPLE+"Charge Zombie III");
enderdragon.setMaxHealth(200);
enderdragon.setHealth(200);
enderdragon.remove();
//enderdragon.teleport(new Location(p.getWorld(),p.getLocation().getBlockX()+i,-250,p.getLocation().getBlockZ()+j));
//p.sendMessage(ChatColor.DARK_PURPLE+"You feel a dark presence nearby.");
//Bukkit.getPlayer("sigonasr2").sendMessage("Trigger this.");
zombie.setRemoveWhenFarAway(false);
zombie.setMaxHealth(300);
zombie.setHealth(300);
zombie.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,999999,0));
zombie.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE,999999,0));
zombie.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING,999999,0));
zombie.setTicksLived(1);
}
/*if (nexteffect.getType().getName().compareTo(PotionEffectType.JUMP.getName())==0) {
p.removePotionEffect(PotionEffectType.JUMP);
p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 360000, nexteffect.getAmplifier()+2, true));
}*/
effects.remove();
}
} catch (ConcurrentModificationException ex_e) {
Bukkit.getLogger().warning("Potion Effect Collection not accessible while trying to hurt entity.");
}
}
if (e.getEntity().getType()==EntityType.ZOMBIE) {
Zombie z = (Zombie)e.getEntity();

Loading…
Cancel
Save