From 3c5b1fe74f657610e0fed534ab93b5c202b75755 Mon Sep 17 00:00:00 2001 From: Chiss Date: Sat, 9 Nov 2013 09:48:40 +1100 Subject: [PATCH] H&S Updates some punish fixes hub toggles no longer pulse on pressure plate --- .../core/disguise/DisguiseManager.java | 12 +- .../src/mineplex/core/punish/Category.java | 6 +- .../mineplex/core/punish/UI/PunishPage.java | 4 +- .../mineplex/hub/modules/StackerManager.java | 6 +- .../hub/modules/VisibilityManager.java | 4 + .../src/nautilus/game/arcade/game/Game.java | 3 + .../arcade/game/games/hideseek/HideSeek.java | 351 ++++++++++++++++-- ...itHiderAcrobat.java => KitHiderQuick.java} | 21 +- .../games/hideseek/kits/KitHiderShocker.java | 12 +- .../games/hideseek/kits/KitHiderSwapper.java | 12 +- ...SeekerArcher.java => KitSeekerHunter.java} | 17 +- .../games/hideseek/kits/KitSeekerRadar.java | 75 ---- .../kit/perks/PerkPaintballMachineGun.java | 3 + .../arcade/kit/perks/PerkShockingStrike.java | 4 +- .../arcade/managers/GameLobbyManager.java | 5 + 15 files changed, 401 insertions(+), 134 deletions(-) rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/{KitHiderAcrobat.java => KitHiderQuick.java} (70%) rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/{KitSeekerArcher.java => KitSeekerHunter.java} (84%) delete mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerRadar.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java index dabc7d0f5..76355f0c4 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java @@ -390,7 +390,8 @@ public class DisguiseManager extends MiniPlugin implements IPacketRunnable _movePacketMap.put(movePacket.a, velocityPacket); - //XXX packetList.forceAdd(velocityPacket); + //XXX + packetList.forceAdd(velocityPacket); if (_goingUp.contains(movePacket.a) && movePacket.c != 0 && movePacket.c > 20) { @@ -398,7 +399,8 @@ public class DisguiseManager extends MiniPlugin implements IPacketRunnable { public void run() { - //XXX packetList.forceAdd(velocityPacket); + //XXX + packetList.forceAdd(velocityPacket); } }); } @@ -437,7 +439,8 @@ public class DisguiseManager extends MiniPlugin implements IPacketRunnable _movePacketMap.put(movePacket.a, velocityPacket); - //XXX packetList.forceAdd(velocityPacket); + //XXX + packetList.forceAdd(velocityPacket); if (_goingUp.contains(movePacket.a) && movePacket.c != 0 && movePacket.c > 20) { @@ -445,7 +448,8 @@ public class DisguiseManager extends MiniPlugin implements IPacketRunnable { public void run() { - //XXX packetList.forceAdd(velocityPacket); + //XXX + packetList.forceAdd(velocityPacket); } }); } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/punish/Category.java b/Plugins/Mineplex.Core/src/mineplex/core/punish/Category.java index 13804d3c4..17ad36943 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/punish/Category.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/punish/Category.java @@ -3,9 +3,9 @@ package mineplex.core.punish; public enum Category { ChatOffense, - Advertisement, - Exploiting, - Hacking, + Advertisement, // No longer used + Exploiting, // General Offense + Hacking, // Illegal Mods Warning, PermMute, Other; // Represents perm ban - (or old perm mutes) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java b/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java index 338c0a596..70ae38421 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/punish/UI/PunishPage.java @@ -177,7 +177,7 @@ public class PunishPage extends CraftInventoryCustom implements Listener examplePrefixEx + " ", " ", examplePrefixNote + "Use Severity 2 if many Severity 1 past offences", - }, 1, false, true), new PunishButton(this, Category.Exploiting, 1, true, 12)); + }, 1, false, true), new PunishButton(this, Category.Exploiting, 1, true, 2)); if (_plugin.GetClients().Get(_player).GetRank().Has(Rank.MODERATOR)) { @@ -210,7 +210,7 @@ public class PunishPage extends CraftInventoryCustom implements Listener examplePrefix + "Damage Indicators, Better Sprint, Minimaps", " ", examplePrefixNote + "Use this for 1st Offence" - }, 1, false, true), new PunishButton(this, Category.Hacking, 1, true, 24)); + }, 1, false, true), new PunishButton(this, Category.Hacking, 1, true, 12)); if (_plugin.GetClients().Get(_player).GetRank().Has(Rank.MODERATOR)) { diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java index 1a8b4b354..9ba5e1ddc 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java @@ -13,6 +13,7 @@ import org.bukkit.entity.Horse; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; @@ -58,8 +59,11 @@ public class StackerManager extends MiniPlugin implements IThrown } @EventHandler - public void ToggleVisibility(PlayerInteractEvent event) + public void ToggleStacker(PlayerInteractEvent event) { + if (event.getAction() == Action.PHYSICAL) + return; + Player player = event.getPlayer(); if (player.getInventory().getHeldItemSlot() != _slot) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java index 26d6dd6d9..642c406ba 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/VisibilityManager.java @@ -10,6 +10,7 @@ import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.block.Action; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; @@ -85,6 +86,9 @@ public class VisibilityManager extends MiniPlugin @EventHandler public void ToggleVisibility(PlayerInteractEvent event) { + if (event.getAction() == Action.PHYSICAL) + return; + Player player = event.getPlayer(); if (player.getInventory().getHeldItemSlot() != _slot) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java index 458b0f738..4b12ec6d3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/Game.java @@ -559,6 +559,9 @@ public abstract class Game implements Listener player.playSound(player.getLocation(), Sound.ORB_PICKUP, 2f, 1f); UtilPlayer.message(player, F.main("Kit", "You equipped " + F.elem(kit.GetFormattedName() + " Kit") + ".")); } + + if (InProgress()) + kit.ApplyKit(player); } public Kit GetKit(Player player) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java index 0220ae5b8..43c1ebb55 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java @@ -2,34 +2,49 @@ package nautilus.game.arcade.game.games.hideseek; import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import org.bukkit.ChatColor; +import org.bukkit.Color; import org.bukkit.Effect; +import org.bukkit.FireworkEffect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; +import org.bukkit.FireworkEffect.Type; import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.FireworkMeta; import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.MapUtil; +import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEvent; +import mineplex.core.common.util.UtilEvent.ActionType; +import mineplex.core.common.util.UtilParticle.ParticleType; +import mineplex.core.common.util.UtilGear; +import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.disguise.disguises.DisguiseBase; import mineplex.core.disguise.disguises.DisguiseBlock; import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; -import mineplex.minecraft.game.core.condition.Condition.ConditionType; +import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import nautilus.game.arcade.events.GameStateChangeEvent; @@ -49,35 +64,39 @@ public class HideSeek extends TeamGame private boolean _started = false; + private HashMap _arrowHits = new HashMap(); + private HashMap _disguises = new HashMap(); private HashMap _disguiseBlock = new HashMap(); private HashMap _disguiseMovement = new HashMap(); private ArrayList _allowedBlocks; - + public HideSeek(ArcadeManager manager) { super(manager, GameType.HideSeek, new Kit[] { - new KitHiderAcrobat(manager), new KitHiderSwapper(manager), + new KitHiderQuick(manager), new KitHiderShocker(manager), new NullKit(manager), - new KitSeekerRadar(manager), - new KitSeekerArcher(manager), + new KitSeekerHunter(manager), new KitSeekerTNT(manager), }, new String[] { - "Shoot enemies to paint them", - "Revive/heal with Water Bombs", - "Last team alive wins!" + C.cAqua + "Hiders" + C.cWhite + " Run and Hide from Seekers", + C.cAqua + "Hiders" + C.cWhite + " Shoot Seekers for Axe Upgrades", + C.cAqua + "Hiders" + C.cWhite + " Right-Click with Axe for Speed Boost", + C.cAqua + "Hiders" + C.cWhite + " Use Firework/Meow for Bonus Gems", + C.cRed + "Seekers" + C.cWhite + " Find and kill the Hiders!", }); this.DeathOut = false; + this.InventoryOpen = false; _allowedBlocks = new ArrayList(); _allowedBlocks.add(Material.TNT); @@ -91,15 +110,16 @@ public class HideSeek extends TeamGame _allowedBlocks.add(Material.FLOWER_POT); _allowedBlocks.add(Material.ANVIL); _allowedBlocks.add(Material.HAY_BLOCK); - _allowedBlocks.add(Material.CAKE); + _allowedBlocks.add(Material.CAKE_BLOCK); - Manager.GetExplosion().SetRegenerate(true); + Manager.GetExplosion().SetRegenerate(true); } - + public Material GetItemEquivilent(Material mat) { if (mat == Material.CAULDRON) return Material.CAULDRON_ITEM; if (mat == Material.FLOWER_POT) return Material.FLOWER_POT_ITEM; + if (mat == Material.CAKE_BLOCK) return Material.CAKE; return mat; } @@ -120,9 +140,7 @@ public class HideSeek extends TeamGame RestrictKits(); } - - - + @Override public void RestrictKits() { @@ -143,14 +161,25 @@ public class HideSeek extends TeamGame } } } - - /* - @Override - public GameTeam ChooseTeam(Player player) + + @EventHandler + public void MoveKits(GameStateChangeEvent event) { - return _hiders; + if (event.GetState() != GameState.Prepare) + return; + + for (int i=0 ; i= 0.999f) @@ -215,7 +311,7 @@ public class HideSeek extends TeamGame Block block = player.getLocation().getBlock(); //Not Able - if (block.getType() != Material.AIR) + if (block.getType() != Material.AIR || !UtilBlock.solid(block.getRelative(BlockFace.DOWN))) { UtilPlayer.message(player, F.main("Game", "You cannot become a Solid Block here.")); player.setExp(0f); @@ -234,7 +330,7 @@ public class HideSeek extends TeamGame //Invisible Manager.GetCondition().Factory().Cloak("Disguised as Block", player, player, 60000, false, false); - //Sound + //Sound player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 2f); } } @@ -296,6 +392,9 @@ public class HideSeek extends TeamGame { for (Player player : UtilServer.getPlayers()) { + if (!_seekers.HasPlayer(player)) + continue; + if (!_disguiseBlock.containsKey(player)) continue; @@ -311,6 +410,207 @@ public class HideSeek extends TeamGame } } + @EventHandler + public void AttackSeeker(CustomDamageEvent event) + { + if (event.GetDamagerPlayer(true) == null) + return; + + if (!_hiders.HasPlayer(event.GetDamagerPlayer(true))) + return; + + if (event.GetDamageInitial() > 1) + return; + + event.AddMod("H&S", "Negate", -event.GetDamageInitial(), false); + event.AddMod("H&S", "Attack", event.GetDamageInitial(), true); + } + + @EventHandler + public void ArrowHit(CustomDamageEvent event) + { + if (event.IsCancelled()) + return; + + if (event.GetProjectile() == null) + return; + + Player damager = event.GetDamagerPlayer(true); + if (damager == null) return; + + if (!_hiders.HasPlayer(damager)) + return; + + event.AddMod("Hide & Seek", "Negate", -event.GetDamageInitial(), false); + event.AddMod("Hide & Seek", "Damage Set", 2, false); + event.AddKnockback("Hide & Seek", 2); + + Powerup(damager); + } + + public void Powerup(Player player) + { + int count = 1; + if (_arrowHits.containsKey(player)) + count += _arrowHits.get(player); + + _arrowHits.put(player, count); + + if (count == 3) + { + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.WOOD_AXE, (byte)1, 1, C.cGreen + "Basic Axe")); + + //Sound + player.playSound(player.getLocation(), Sound.LEVEL_UP, 1f, 1f); + + //Inform + UtilPlayer.message(player, F.main("Game", "You received " + F.elem("Basic Axe") + "!")); + } + else if (count == 6) + { + player.getInventory().remove(Material.WOOD_AXE); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.STONE_AXE, (byte)1, 1, C.cGreen + "Super Axe")); + + //Sound + player.playSound(player.getLocation(), Sound.LEVEL_UP, 1f, 1f); + + //Inform + UtilPlayer.message(player, F.main("Game", "You upgraded to " + F.elem("Super Axe") + "!")); + } + else if (count == 9) + { + player.getInventory().remove(Material.STONE_AXE); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE, (byte)1, 1, C.cGreen + "Ultra Axe")); + + //Sound + player.playSound(player.getLocation(), Sound.LEVEL_UP, 1f, 1f); + + //Inform + UtilPlayer.message(player, F.main("Game", "You upgraded to " + F.elem("Ultra Axe") + "!")); + } + else if (count == 12) + { + player.getInventory().remove(Material.IRON_AXE); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_AXE, (byte)1, 1, C.cGreen + "Hyper Axe")); + + //Sound + player.playSound(player.getLocation(), Sound.LEVEL_UP, 1f, 1f); + + //Inform + UtilPlayer.message(player, F.main("Game", "You upgraded to " + F.elem("Hyper Axe") + "!")); + } + else if (count < 12) + { + //Sound + player.playSound(player.getLocation(), Sound.ORB_PICKUP, 1f, 1f); + } + } + + @EventHandler + public void UseAxe(PlayerInteractEvent event) + { + Player player = event.getPlayer(); + + if (!UtilEvent.isAction(event, ActionType.R)) + return; + + if (player.getItemInHand() == null) + return; + + if (!player.getItemInHand().getType().toString().contains("_AXE")) + return; + + if (!Recharge.Instance.use(player, "Axe Boost", 10000, true)) + return; + + if (UtilGear.isMat(player.getItemInHand(), Material.WOOD_AXE)) + { + Manager.GetCondition().Factory().Speed("Boost", player, player, 4, 0, false, false, false); + + //Inform + UtilPlayer.message(player, F.main("Game", "You used " + F.elem("Basic Boost") + "!")); + + //Sound + player.getWorld().playSound(player.getLocation(), Sound.BREATH, 1f, 1f); + } + else if (UtilGear.isMat(player.getItemInHand(), Material.STONE_AXE)) + { + Manager.GetCondition().Factory().Speed("Boost", player, player, 4, 0, false, false, false); + Manager.GetCondition().Factory().Regen("Boost", player, player, 4, 0, false, false, false); + + //Inform + UtilPlayer.message(player, F.main("Game", "You used " + F.elem("Ultra Boost") + "!")); + + //Sound + player.getWorld().playSound(player.getLocation(), Sound.BREATH, 1f, 1f); + } + else if (UtilGear.isMat(player.getItemInHand(), Material.IRON_AXE)) + { + Manager.GetCondition().Factory().Speed("Boost", player, player, 4, 1, false, false, false); + Manager.GetCondition().Factory().Regen("Boost", player, player, 4, 0, false, false, false); + + //Inform + UtilPlayer.message(player, F.main("Game", "You used " + F.elem("Mega Boost") + "!")); + + //Sound + player.getWorld().playSound(player.getLocation(), Sound.BREATH, 1f, 1f); + } + else if (UtilGear.isMat(player.getItemInHand(), Material.DIAMOND_AXE)) + { + Manager.GetCondition().Factory().Speed("Boost", player, player, 4, 1, false, false, false); + Manager.GetCondition().Factory().Regen("Boost", player, player, 4, 1, false, false, false); + + //Inform + UtilPlayer.message(player, F.main("Game", "You used " + F.elem("Hyper Boost") + "!")); + + //Sound + player.getWorld().playSound(player.getLocation(), Sound.BREATH, 1f, 1f); + } + } + + @EventHandler + public void UseMeow(PlayerInteractEvent event) + { + Player player = event.getPlayer(); + + if (!UtilEvent.isAction(event, ActionType.R)) + return; + + if (!UtilGear.isMat(player.getItemInHand(), Material.SUGAR)) + return; + + event.setCancelled(true); + + if (!Recharge.Instance.use(player, "Meow", 5000, true)) + return; + + player.getWorld().playSound(player.getLocation(), Sound.CAT_MEOW, 2f, 1f); + + this.AddGems(player, 0.5, "Meows", true); + + UtilParticle.PlayParticle(ParticleType.NOTE, player.getLocation().add(0, 0.75, 0), 0.4f, 0.4f, 0.4f, 0, 6); + } + + @EventHandler + public void UseFirework(PlayerInteractEvent event) + { + Player player = event.getPlayer(); + + if (!UtilEvent.isAction(event, ActionType.R)) + return; + + if (!UtilGear.isMat(player.getItemInHand(), Material.FIREWORK)) + return; + + if (!Recharge.Instance.use(player, "Firework", 15000, true)) + { + event.setCancelled(true); + return; + } + + this.AddGems(player, 4, "Fireworks", true); + } + @EventHandler public void UpdateSeekers(UpdateEvent event) { @@ -320,7 +620,7 @@ public class HideSeek extends TeamGame if (event.getType() != UpdateType.FAST) return; - int req = 1; + int req = Math.max(1, GetPlayers(true).size()/3); while (_seekers.GetPlayers(true).size() < req && _hiders.GetPlayers(true).size() > 0) { @@ -420,6 +720,7 @@ public class HideSeek extends TeamGame else { _started = true; + GiveItems(); Announce(C.Bold + "The " + F.elem(C.cRed + C.Bold + "Seekers") + ChatColor.RESET + C.Bold + " have been released!"); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderAcrobat.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderQuick.java similarity index 70% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderAcrobat.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderQuick.java index dbff7f03d..907743c85 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderAcrobat.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderQuick.java @@ -19,20 +19,20 @@ import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.perks.*; -public class KitHiderAcrobat extends Kit +public class KitHiderQuick extends Kit { - public KitHiderAcrobat(ArcadeManager manager) + public KitHiderQuick(ArcadeManager manager) { - super(manager, "Acrobatic Hider", KitAvailability.Free, + super(manager, "Instant Hider", KitAvailability.Free, new String[] { - "Able to get to hard-to-reach places!" + "Changes into solid blocks almost instantly!" }, new Perk[] { - new PerkDoubleJump("Double Jump", 0.8, 0.8, false) + }, EntityType.SLIME, new ItemStack(Material.IRON_BOOTS)); @@ -41,7 +41,8 @@ public class KitHiderAcrobat extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 1,C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Change Form")); + //Swap + player.getInventory().setItem(0, ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 1, C.cYellow + C.Bold + "Click Block" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Change Form")); } @Override @@ -51,7 +52,7 @@ public class KitHiderAcrobat extends Kit DisguiseSlime slime = new DisguiseSlime(ent); slime.SetSize(2); - slime.SetName(GetAvailability().GetColor() + GetName() + " Kit" + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : "")); + slime.SetName(GetAvailability().GetColor() + GetName() + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : "")); slime.SetCustomNameVisible(true); DisguiseBlock block = new DisguiseBlock(ent, 20, 0); @@ -61,6 +62,9 @@ public class KitHiderAcrobat extends Kit public void ToBlock(final DisguiseBlock block, final DisguiseSlime slime) { + if (Manager.GetGame() == null || Manager.GetGame().InProgress()) + return; + Manager.GetDisguise().disguise(block); UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() @@ -74,6 +78,9 @@ public class KitHiderAcrobat extends Kit public void ToSlime(final DisguiseBlock block, final DisguiseSlime slime) { + if (Manager.GetGame() == null || Manager.GetGame().InProgress()) + return; + Manager.GetDisguise().disguise(slime); UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderShocker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderShocker.java index 14532bceb..ef985271d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderShocker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderShocker.java @@ -41,7 +41,7 @@ public class KitHiderShocker extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 1,C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Change Form")); + player.getInventory().setItem(0, ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 1, C.cYellow + C.Bold + "Click Block" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Change Form")); } @Override @@ -51,16 +51,19 @@ public class KitHiderShocker extends Kit DisguiseSlime slime = new DisguiseSlime(ent); slime.SetSize(2); - slime.SetName(GetAvailability().GetColor() + GetName() + " Kit" + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : "")); + slime.SetName(GetAvailability().GetColor() + GetName() + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : "")); slime.SetCustomNameVisible(true); - DisguiseBlock block = new DisguiseBlock(ent, 124, 0); + DisguiseBlock block = new DisguiseBlock(ent, 47, 0); ToBlock(block, slime); } public void ToBlock(final DisguiseBlock block, final DisguiseSlime slime) { + if (Manager.GetGame() == null || Manager.GetGame().InProgress()) + return; + Manager.GetDisguise().disguise(block); UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() @@ -74,6 +77,9 @@ public class KitHiderShocker extends Kit public void ToSlime(final DisguiseBlock block, final DisguiseSlime slime) { + if (Manager.GetGame() == null || Manager.GetGame().InProgress()) + return; + Manager.GetDisguise().disguise(slime); UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderSwapper.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderSwapper.java index db0b64821..613f2624c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderSwapper.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitHiderSwapper.java @@ -26,7 +26,7 @@ public class KitHiderSwapper extends Kit new String[] { - "Can change form multiple times!" + "Can change form 12 times!" }, new Perk[] @@ -40,7 +40,7 @@ public class KitHiderSwapper extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 32, C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Change Form")); + player.getInventory().setItem(0, ItemStackFactory.Instance.CreateStack(Material.SLIME_BALL, (byte)0, 12, C.cYellow + C.Bold + "Click Block" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Change Form")); } @Override @@ -50,7 +50,7 @@ public class KitHiderSwapper extends Kit DisguiseSlime slime = new DisguiseSlime(ent); slime.SetSize(2); - slime.SetName(GetAvailability().GetColor() + GetName() + " Kit" + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : "")); + slime.SetName(GetAvailability().GetColor() + GetName() + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : "")); slime.SetCustomNameVisible(true); ToBlock(ent, slime); @@ -58,6 +58,9 @@ public class KitHiderSwapper extends Kit public void ToBlock(final LivingEntity ent, final DisguiseSlime slime) { + if (Manager.GetGame() == null || Manager.GetGame().InProgress()) + return; + double r = Math.random(); if (r > 0.75) Manager.GetDisguise().disguise(new DisguiseBlock(ent, 54, 0)); @@ -76,6 +79,9 @@ public class KitHiderSwapper extends Kit public void ToSlime(final LivingEntity ent, final DisguiseSlime slime) { + if (Manager.GetGame() == null || Manager.GetGame().InProgress()) + return; + Manager.GetDisguise().disguise(slime); UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerArcher.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerHunter.java similarity index 84% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerArcher.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerHunter.java index d17900f8b..b4d77d491 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerArcher.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerHunter.java @@ -10,28 +10,26 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.inventory.ItemStack; import mineplex.core.itemstack.ItemStackFactory; -import mineplex.core.updater.UpdateType; -import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.PerkBarrage; import nautilus.game.arcade.kit.perks.PerkFletcher; +import nautilus.game.arcade.kit.perks.PerkRadar; -public class KitSeekerArcher extends Kit +public class KitSeekerHunter extends Kit { - public KitSeekerArcher(ArcadeManager manager) + public KitSeekerHunter(ArcadeManager manager) { - super(manager, "Archer Seeker", KitAvailability.Green, + super(manager, "Hunter Seeker", KitAvailability.Green, new String[] { - "PEW" + "Tick......tick...tick.tick.", }, new Perk[] { - new PerkBarrage(5, 250, true, false), + new PerkRadar(), new PerkFletcher(2, 4, false), }, EntityType.ZOMBIE, @@ -42,8 +40,9 @@ public class KitSeekerArcher extends Kit @Override public void GiveItems(Player player) { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SWORD)); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.WOOD_SWORD)); player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW)); + player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.COMPASS, (byte)0, 1, "Radar Scanner")); player.getInventory().setHelmet(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_HELMET)); player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_CHESTPLATE)); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerRadar.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerRadar.java deleted file mode 100644 index 7ce948b0c..000000000 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/kits/KitSeekerRadar.java +++ /dev/null @@ -1,75 +0,0 @@ -package nautilus.game.arcade.game.games.hideseek.kits; - -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.bukkit.inventory.ItemStack; - -import mineplex.core.itemstack.ItemStackFactory; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import nautilus.game.arcade.ArcadeManager; -import nautilus.game.arcade.kit.Kit; -import nautilus.game.arcade.kit.KitAvailability; -import nautilus.game.arcade.kit.Perk; -import nautilus.game.arcade.kit.perks.*; - -public class KitSeekerRadar extends Kit -{ - public KitSeekerRadar(ArcadeManager manager) - { - super(manager, "Radar Seeker", KitAvailability.Free, - - new String[] - { - "Tick......tick...tick.tick.", - }, - - new Perk[] - { - new PerkRadar() - }, - EntityType.ZOMBIE, - new ItemStack(Material.COMPASS)); - } - - @Override - public void GiveItems(Player player) - { - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SWORD)); - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.COMPASS, (byte)0, 1, "Radar Scanner")); - - player.getInventory().setHelmet(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_HELMET)); - player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_CHESTPLATE)); - player.getInventory().setLeggings(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_LEGGINGS)); - player.getInventory().setBoots(ItemStackFactory.Instance.CreateStack(Material.DIAMOND_BOOTS)); - } - - @Override - public void SpawnCustom(LivingEntity ent) - { - ent.getEquipment().setHelmet(new ItemStack(Material.DIAMOND_HELMET)); - ent.getEquipment().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE)); - ent.getEquipment().setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS)); - ent.getEquipment().setBoots(new ItemStack(Material.DIAMOND_BOOTS)); - } - - @EventHandler(priority = EventPriority.LOW) - public void Damage(CustomDamageEvent event) - { - if (event.IsCancelled()) - return; - - if (event.GetCause() != DamageCause.ENTITY_EXPLOSION) - return; - - Player damagee = event.GetDamageePlayer(); - if (damagee == null) return; - - if (HasKit(damagee)) - event.SetCancelled("TNT Resistant"); - } -} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java index eddad2dfd..3926a593a 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkPaintballMachineGun.java @@ -74,6 +74,9 @@ public class PerkPaintballMachineGun extends Perk event.setCancelled(true); + if (!Recharge.Instance.use(player, GetName(), 80, false)) + return; + ShootPaintball(player, team); /* diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkShockingStrike.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkShockingStrike.java index cf71c9f99..101f3a65c 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkShockingStrike.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkShockingStrike.java @@ -38,7 +38,7 @@ public class PerkShockingStrike extends Perk return; Manager.GetCondition().Factory().Slow(GetName(), event.GetDamageeEntity(), damager, 2, 1, false, false, false, false); - Manager.GetCondition().Factory().Blind(GetName(), event.GetDamageeEntity(), damager, 2, 1, false, false, false); - Manager.GetCondition().Factory().Shock(GetName(), event.GetDamageeEntity(), damager, 2, false, false); + Manager.GetCondition().Factory().Blind(GetName(), event.GetDamageeEntity(), damager, 1.5, 1, false, false, false); + Manager.GetCondition().Factory().Shock(GetName(), event.GetDamageeEntity(), damager, 1, false, false); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java index 1863ece2d..58610ee59 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameLobbyManager.java @@ -649,6 +649,11 @@ public class GameLobbyManager implements IPacketRunnable, Listener } } } + + public void AddKitLocation(Entity ent, Kit kit, Location loc) + { + _kits.put(ent, new LobbyEnt(ent, loc, kit)); + } @EventHandler public void PlayerQuit(PlayerQuitEvent event)