From 950b85cf3421daa970ae977e1aaac50d75152d25 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 2 Feb 2014 03:45:56 -0700 Subject: [PATCH] Add in Ignite duration for Blaze Heads. Fixed Charge Zombie II spawning algorithm rules. (Missed something earlier) --- .../src/me/kaZep/Base/PlayerListener.java | 240 +++++++++++++++--- 1 file changed, 201 insertions(+), 39 deletions(-) diff --git a/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java b/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java index 71ec824..a299db4 100644 --- a/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java +++ b/BankEconomyMod/src/me/kaZep/Base/PlayerListener.java @@ -2882,20 +2882,36 @@ implements Listener if (e.getEntity().getCustomName()!=null && e.getEntity().getCustomName().equals(ChatColor.GOLD+"Charge Zombie II")) { //Destroy an area around itself. - int size=((int)(Math.random()*5))+1; - for (int k=-size;kub1;j--) { - for (int k=2;k>-1;k--) { - for (int l=lb2;l>-ub2;l--) { - Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(10+j,k,spread+l)); - if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { - b.setType(Material.AIR); + if (clearair) { + int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; + for (int j=lb1;j>ub1;j--) { + for (int k=2;k>-1;k--) { + for (int l=lb2;l>-ub2;l--) { + Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(10+j,k,spread+l)); + if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { + b.setType(Material.AIR); + } } } - } + } } e1 = Bukkit.getWorld("world").spawnEntity(p.getLocation().add(10,0,spread), EntityType.ZOMBIE); } @@ -4823,13 +4859,15 @@ implements Listener } } if (!torch2) { - int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; - for (int j=lb1;j>ub1;j--) { - for (int k=2;k>-1;k--) { - for (int l=lb2;l>-ub2;l--) { - Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(-10+j,k,spread+l)); - if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { - b.setType(Material.AIR); + if (clearair) { + int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; + for (int j=lb1;j>ub1;j--) { + for (int k=2;k>-1;k--) { + for (int l=lb2;l>-ub2;l--) { + Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(-10+j,k,spread+l)); + if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { + b.setType(Material.AIR); + } } } } @@ -4848,13 +4886,15 @@ implements Listener } } if (!torch3) { - int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; - for (int j=lb1;j>ub1;j--) { - for (int k=2;k>-1;k--) { - for (int l=lb2;l>-ub2;l--) { - Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(spread+j,k,10+l)); - if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { - b.setType(Material.AIR); + if (clearair) { + int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; + for (int j=lb1;j>ub1;j--) { + for (int k=2;k>-1;k--) { + for (int l=lb2;l>-ub2;l--) { + Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(spread+j,k,10+l)); + if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { + b.setType(Material.AIR); + } } } } @@ -4873,13 +4913,15 @@ implements Listener } } if (!torch4) { - int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; - for (int j=lb1;j>ub1;j--) { - for (int k=2;k>-1;k--) { - for (int l=lb2;l>-ub2;l--) { - Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(spread+j,k,-10+l)); - if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { - b.setType(Material.AIR); + if (clearair) { + int lb1=(int)(Math.random()*5)+1,lb2=(int)(Math.random()*5)+1,ub1=-(int)(Math.random()*6)+1,ub2=-(int)(Math.random()*6)+1; + for (int j=lb1;j>ub1;j--) { + for (int k=2;k>-1;k--) { + for (int l=lb2;l>-ub2;l--) { + Block b =Bukkit.getWorld("world").getBlockAt(p.getLocation().add(spread+j,k,-10+l)); + if (b.getType()!=Material.BEDROCK && b.getType()!=Material.MOB_SPAWNER && b.getType()!=Material.ENDER_PORTAL && b.getType()!=Material.ENDER_PORTAL_FRAME && naturalBlock(b.getType())) { + b.setType(Material.AIR); + } } } } @@ -8287,7 +8329,29 @@ implements Listener if (e.getEntity().getKiller()!=null && ((Player)e.getEntity().getKiller()).getItemInHand().getEnchantmentLevel(Enchantment.LOOT_BONUS_MOBS)>0) { chance_increase=((Player)e.getEntity().getKiller()).getItemInHand().getEnchantmentLevel(Enchantment.LOOT_BONUS_MOBS)/2; } + int magicfind = 0; + + Player p = null; + if (e.getEntity().getKiller()!=null) { + p = e.getEntity().getKiller(); + } + if (p!=null) { + List playerheads = this.plugin.getMobHeads(p); + int endermanrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,true,MobHeadRareType.RARE_TYPE_B), playerheads); + int endermanpoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,false,true), playerheads); + int endermanpoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,true,true), playerheads); + + magicfind+=endermanrareheads; + magicfind+=endermanpoweredheads; + magicfind+=endermanpoweredrareheads*3; + } + for (int i=0;i=e.getDrops().get(i).getAmount()+1) { + e.getDrops().get(i).setAmount(e.getDrops().get(i).getAmount()+1); + } + } if (e.getDrops().get(i).getType()==Material.SKULL_ITEM) { if (Math.random()>0.085*chance_increase) { e.getDrops().remove(i); @@ -10986,6 +11050,55 @@ implements Listener poisondur+=spiderrareheads*2; poisondur+=spiderpoweredheads*1; poisondur+=spiderpoweredrareheads*5; + + int endermanheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN), playerheads); + int endermanrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,true), playerheads); + int endermanpoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,false,true), playerheads); + int endermanpoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,true,true), playerheads); + int critchance = 0; + + critchance+=endermanheads; + critchance+=endermanrareheads*5; + critchance+=endermanpoweredheads; + critchance+=endermanpoweredrareheads*10; + + int cavespiderheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER), playerheads); + int cavespiderrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,true), playerheads); + int cavespiderpoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,false,true), playerheads); + int cavespiderpoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,true,true), playerheads); + + poisondur+=cavespiderheads; + poisondur+=cavespiderrareheads*3; + poisondur+=cavespiderpoweredheads*2; + poisondur+=cavespiderpoweredrareheads*5; + + cavespiderrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,true,MobHeadRareType.RARE_TYPE_B), playerheads); + int snarechance=0; + + snarechance+=cavespiderrareheads*5; + snarechance+=cavespiderpoweredheads*3; + snarechance+=cavespiderpoweredrareheads*8; + + int blazeheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE), playerheads); + int blazerareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,true), playerheads); + int blazepoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,false,true), playerheads); + int blazepoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,true,true), playerheads); + int ignitedur = 0; + ignitedur+=blazeheads; + ignitedur+=blazerareheads*3; + ignitedur+=blazepoweredheads; + ignitedur+=blazepoweredrareheads*5; + + 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 (ignitedur>0) { + m.setFireTicks(m.getFireTicks()+(ignitedur*20)); + } m.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,60,slowdownpct/15,true)); @@ -11297,6 +11410,55 @@ implements Listener poisondur+=spiderpoweredheads*1; poisondur+=spiderpoweredrareheads*5; + int endermanheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN), playerheads); + int endermanrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,true), playerheads); + int endermanpoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,false,true), playerheads); + int endermanpoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.ENDERMAN,true,true), playerheads); + int critchance = 0; + + critchance+=endermanheads; + critchance+=endermanrareheads*5; + critchance+=endermanpoweredheads; + critchance+=endermanpoweredrareheads*10; + + int cavespiderheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER), playerheads); + int cavespiderrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,true), playerheads); + int cavespiderpoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,false,true), playerheads); + int cavespiderpoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,true,true), playerheads); + + poisondur+=cavespiderheads; + poisondur+=cavespiderrareheads*3; + poisondur+=cavespiderpoweredheads*2; + poisondur+=cavespiderpoweredrareheads*5; + + cavespiderrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.CAVE_SPIDER,true,MobHeadRareType.RARE_TYPE_B), playerheads); + int snarechance=0; + + snarechance+=cavespiderrareheads*5; + snarechance+=cavespiderpoweredheads*3; + snarechance+=cavespiderpoweredrareheads*8; + + int blazeheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE), playerheads); + int blazerareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,true), playerheads); + int blazepoweredheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,false,true), playerheads); + int blazepoweredrareheads = this.plugin.getMobHeadAmt(new MobHead(MobHeadType.BLAZE,true,true), playerheads); + int ignitedur = 0; + ignitedur+=blazeheads; + ignitedur+=blazerareheads*3; + ignitedur+=blazepoweredheads; + ignitedur+=blazepoweredrareheads*5; + + 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 (ignitedur>0) { + m.setFireTicks(m.getFireTicks()+(ignitedur*20)); + } + m.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,60,slowdownpct/15,true));