From f9b2fb23d9c43b2c3b66a5ad40c491497a180464 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 2 Feb 2014 04:20:21 -0700 Subject: [PATCH] Fix typos, mob head properties, add in Airborne effect for Blaze heads. --- BankEconomyMod/src/me/kaZep/Base/Main.java | 36 ++++---- BankEconomyMod/src/me/kaZep/Base/MobHead.java | 10 +- .../src/me/kaZep/Base/PlayerListener.java | 92 +++++++++++++++++-- 3 files changed, 108 insertions(+), 30 deletions(-) diff --git a/BankEconomyMod/src/me/kaZep/Base/Main.java b/BankEconomyMod/src/me/kaZep/Base/Main.java index 9007674..e62e65c 100644 --- a/BankEconomyMod/src/me/kaZep/Base/Main.java +++ b/BankEconomyMod/src/me/kaZep/Base/Main.java @@ -2363,6 +2363,25 @@ public void runTick() { if (Main.SERVER_TICK_TIME%36000==0) { //Every 30 minutes, clear out the list of poisoned mobs, in case some are non-existent now. mob_list.clear(); + //Report player incomes. + for (int i=0;i newlore = new ArrayList(); if (rare_head_type==MobHeadRareType.RARE_TYPE_A) { - newlore.add(ChatColor.LIGHT_PURPLE+"+3% "+ChatColor.GOLD+"chance to send enemy"); - newlore.add(ChatColor.GOLD+" airborne."); - } else { newlore.add(ChatColor.LIGHT_PURPLE+"+3 "+ChatColor.GOLD+"second ignite duration"); newlore.add(ChatColor.GOLD+" on hit."); + } else { + newlore.add(ChatColor.LIGHT_PURPLE+"+3% "+ChatColor.GOLD+"chance to send enemy"); + newlore.add(ChatColor.GOLD+" airborne."); } skullMeta.setLore(newlore); newhead.setItemMeta(skullMeta); @@ -590,12 +590,12 @@ public class MobHead { if (getLore.contains(ChatColor.LIGHT_PURPLE+"+3% "+ChatColor.GOLD+"chance to send enemy")) { //return new MobHead(MobHeadType.BLAZE, true, MobHeadRareType.RARE_TYPE_A); headtype=MobHeadType.BLAZE; - if (!ampersand) {raretype=MobHeadRareType.RARE_TYPE_A;} + if (!ampersand) {raretype=MobHeadRareType.RARE_TYPE_B;} } if (getLore.contains(ChatColor.LIGHT_PURPLE+"+3 "+ChatColor.GOLD+"second ignite duration")) { //return new MobHead(MobHeadType.BLAZE, true, MobHeadRareType.RARE_TYPE_B); headtype=MobHeadType.BLAZE; - if (!ampersand) {raretype=MobHeadRareType.RARE_TYPE_B;} + if (!ampersand) {raretype=MobHeadRareType.RARE_TYPE_A;} } if (getLore.contains(ChatColor.LIGHT_PURPLE+"+3% "+ChatColor.GOLD+"chance to send down")) { //return new MobHead(MobHeadType.GHAST, true, MobHeadRareType.RARE_TYPE_A); diff --git a/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java b/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java index a299db4..3aab704 100644 --- a/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java +++ b/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java @@ -11088,12 +11088,48 @@ implements Listener ignitedur+=blazerareheads*3; ignitedur+=blazepoweredheads; ignitedur+=blazepoweredrareheads*5; + + blazerareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,true,MobHeadRareType.RARE_TYPE_B), playerheads); + int airbornechance=0; + + airbornechance+=blazerareheads*3; + airbornechance+=blazepoweredheads; + airbornechance+=blazepoweredrareheads*10; if (Math.random()*100<=critchance) { e.setDamage(e.getDamage()*2); } if (Math.random()*100<=snarechance) { m.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,100,7,true)); + } + if (Math.random()*100<=airbornechance) { + //m.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,100,7,true)); + + final LivingEntity l = (LivingEntity)e.getEntity(); + + Location airborne_loc = l.getLocation(); + //Check upwards. Stop if we hit a solid block. + int starty=l.getLocation().getBlockY(); + int checky=l.getLocation().getBlockY(); + /*16 is max height that a mob will be set to.*/ + while (checky-starty<19 && l.getWorld().getBlockAt(l.getLocation().getBlockX(),l.getLocation().getBlockY()+checky,l.getLocation().getBlockZ()).getType()==Material.AIR) { + checky++; + } + + if (checky-starty>3) { + checky-=3; + } else { + checky=starty; + } + + final Location teleport_to = new Location(l.getWorld(),l.getLocation().getBlockX(),checky,l.getLocation().getBlockZ()); + + Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { + @Override + public void run() { + l.teleport(teleport_to); + } + },1); } if (ignitedur>0) { @@ -11127,10 +11163,12 @@ implements Listener i--; } } - for (int i=0;i0) { + for (int i=0;i3) { + checky-=3; + } else { + checky=starty; + } + + final Location teleport_to = new Location(l.getWorld(),l.getLocation().getBlockX(),checky,l.getLocation().getBlockZ()); + + Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { + @Override + public void run() { + l.teleport(teleport_to); + } + },1); } if (ignitedur>0) { @@ -11487,10 +11561,12 @@ implements Listener i--; } } - for (int i=0;i0) { + for (int i=0;i