From ba5d06db88ba6bbed96d24684f6862e663992c01 Mon Sep 17 00:00:00 2001 From: Thanos Paravantis Date: Wed, 27 Apr 2016 13:14:20 +0300 Subject: [PATCH] Fix tag master and achievement progress --- .../game/games/mineware/BawkBawkBattles.java | 6 +- .../games/mineware/challenge/Challenge.java | 2 + .../mineware/challenge/LogicTracker.java | 8 + .../{DataTracker.java => NumberTracker.java} | 2 +- .../type/ChallengeBouncingBlock.java | 152 +++++++++++------- .../type/ChallengeChickenShooting.java | 4 +- .../challenge/type/ChallengeEggSmash.java | 4 +- .../type/ChallengeFallingBlocks.java | 4 +- .../challenge/type/ChallengeKangarooJump.java | 4 +- .../type/ChallengeKingOfTheLadder.java | 8 +- .../challenge/type/ChallengeMilkACow.java | 4 +- .../type/ChallengeMiniOneInTheQuiver.java | 4 +- .../type/ChallengeNavigationMaze.java | 4 +- .../challenge/type/ChallengeReverseTag.java | 49 +++++- .../challenge/type/ChallengeWaveCrush.java | 4 +- .../tracker/BouncingShadowTracker.java | 4 +- .../mineware/tracker/QuickClimberTracker.java | 4 +- .../mineware/tracker/TagMasterTracker.java | 4 +- 18 files changed, 178 insertions(+), 93 deletions(-) create mode 100644 Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/LogicTracker.java rename Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/{DataTracker.java => NumberTracker.java} (85%) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/BawkBawkBattles.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/BawkBawkBattles.java index 5969d2efc..3be5785a6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/BawkBawkBattles.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/BawkBawkBattles.java @@ -174,8 +174,6 @@ public class BawkBawkBattles extends TeamGame implements IThrown * - Fix item rendering exception (kangaroo jump http://i.imgur.com/CPYIogC.jpg) * - Pinata Master * - http://prnt.sc/ax86n8 typos - * - Tag master only adds 1 - * - Bouncing block don't make completed players jump high * * Medium Priority * - Make spawn distance equal from a target @@ -200,8 +198,8 @@ public class BawkBawkBattles extends TeamGame implements IThrown new String[] { "Follow Bawk Bawk's instructions in chat.", "Complete a task first or be the last one to stay alive.", - "If you fail a challenge, you loose one life.", - "If you ran out of lives, chickens will attack you.", + "If you fail a challenge, you lose one life.", + "If you run out of lives, chickens will attack you.", "Last player with lives wins.", }); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/Challenge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/Challenge.java index 2af28cdb3..4079229c8 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/Challenge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/Challenge.java @@ -25,6 +25,7 @@ import mineplex.core.common.util.C; import mineplex.core.common.util.MapUtil; import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilMath; +import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilTextBottom; import mineplex.core.common.util.UtilTime; import mineplex.core.hologram.Hologram; @@ -318,6 +319,7 @@ public abstract class Challenge implements Listener } Data.addCompletedPlayer(player); + UtilPlayer.clearPotionEffects(player); UtilInv.Clear(player); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/LogicTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/LogicTracker.java new file mode 100644 index 000000000..1405ff348 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/LogicTracker.java @@ -0,0 +1,8 @@ +package nautilus.game.arcade.game.games.mineware.challenge; + +import org.bukkit.entity.Player; + +public interface LogicTracker +{ + public boolean hasData(Player player); +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/DataTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/NumberTracker.java similarity index 85% rename from Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/DataTracker.java rename to Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/NumberTracker.java index bbc759d4e..61a96175f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/DataTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/NumberTracker.java @@ -2,7 +2,7 @@ package nautilus.game.arcade.game.games.mineware.challenge; import org.bukkit.entity.Player; -public interface DataTracker +public interface NumberTracker { public Number getData(Player player); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeBouncingBlock.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeBouncingBlock.java index e7184f135..b71dc01f0 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeBouncingBlock.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeBouncingBlock.java @@ -29,14 +29,14 @@ import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; +import nautilus.game.arcade.game.games.mineware.challenge.LogicTracker; -public class ChallengeBouncingBlock extends Challenge +public class ChallengeBouncingBlock extends Challenge implements LogicTracker { private ArrayList _stepTracker = new ArrayList(); private ArrayList _blocks = new ArrayList(); private HashMap _score = new HashMap(); - - // TODO: Separate functionality to different methods. + private static int _goal = 10; public ChallengeBouncingBlock(BawkBawkBattles host) { @@ -46,7 +46,7 @@ public class ChallengeBouncingBlock extends Challenge "Bouncing Block", "Jump and punch floating wool blocks.", "Avoid landing on red wool.", - "First to 10 wins!"); + "First to " + _goal + " wins!"); Settings.setUseMapHeight(); } @@ -74,9 +74,8 @@ public class ChallengeBouncingBlock extends Challenge Block block = location.getBlock(); block.setType(Material.WOOL); - if (Math.random() * 100 < 20.0) + if (Math.random() < 0.2) block.setData((byte) 14); - else block.setData((byte) 0); @@ -89,27 +88,23 @@ public class ChallengeBouncingBlock extends Challenge @Override public void onStart() { + Host.StrictAntiHack = false; + addEffect(PotionEffectType.JUMP, 6); for (Player player : getPlayersAlive()) { _score.put(player, 0); } - - Host.StrictAntiHack = false; } @Override public void onEnd() { + Host.StrictAntiHack = true; + for (Block woolBlocks : _blocks) woolBlocks.setType(Material.AIR); - - _blocks.clear(); - _score.clear(); - - // _antiHackFix.clear(); - Host.StrictAntiHack = true; } @EventHandler @@ -131,17 +126,8 @@ public class ChallengeBouncingBlock extends Challenge if (!_blocks.contains(block)) return; - increment(player, 1); - player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 0.2f, 0.2f); - - block.setType(Material.AIR); - spawnRandomWool(getArenaSize(9), (UtilMath.r(6) + 5)); - - if (_score.get(player) >= 10) - { - setCompleted(player); - UtilTextBottom.display(C.cGreen + C.Bold + "Completed!", player); - } + hitBlock(player, block); + checkCompleted(player); } @EventHandler @@ -153,11 +139,8 @@ public class ChallengeBouncingBlock extends Challenge if (event.getType() != UpdateType.TICK) return; - for (Player player : getPlayersAlive()) + for (Player player : getPlayersIn(true)) { - if (Data.isDone(player)) - continue; - UtilTextBottom.display(C.Bold + "Score: " + C.Reset + C.cYellow + C.Bold + _score.get(player), player); } } @@ -173,35 +156,21 @@ public class ChallengeBouncingBlock extends Challenge if (!isPlayerValid(player)) return; - if (event.getFrom().getX() == event.getTo().getX() && event.getFrom().getZ() == event.getTo().getZ()) + if (isLooking(event.getFrom(), event.getTo())) return; Location loc = player.getLocation(); Block blockBelow = loc.getBlock().getRelative(BlockFace.DOWN); - if (Recharge.Instance.use(player, "Movement", 300, false, false) && _score.get(player) > 0) + if (canLooseScore(player) && blockBelow.getType() == Material.WOOL) { - if (blockBelow.getType() == Material.WOOL) + Wool woolBelow = (Wool) blockBelow.getState().getData(); + + if (woolBelow.getColor() == DyeColor.RED) { - Wool woolBelow = (Wool) blockBelow.getState().getData(); - - if (woolBelow.getColor() == DyeColor.RED) - { - int subtract = 2; - - if (_score.get(player) == 1) - subtract = 1; - - subtract(player, subtract); - - UtilTextMiddle.display(null, "Score decreased by " + C.cRed + subtract + C.Reset + "!", 5, 40, 5, player); - player.playSound(player.getLocation(), Sound.NOTE_BASS, 1.0F, 1.0F); - - if (!_stepTracker.contains(player)) - { - _stepTracker.add(player); - } - } + int amount = subtractFromScore(player); + showSubtractMessage(player, amount); + trackStep(player); } } } @@ -212,13 +181,71 @@ public class ChallengeBouncingBlock extends Challenge if (!isChallengeValid()) return; - _stepTracker.remove(event.getPlayer()); + Player player = event.getPlayer(); + + _stepTracker.remove(player); + _score.remove(player); + } + + private void hitBlock(Player player, Block block) + { + increment(player, 1); + player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 0.2f, 0.2f); + + block.setType(Material.AIR); + spawnRandomWool(getArenaSize(9), (UtilMath.r(6) + 5)); + } + + private void checkCompleted(Player player) + { + if (_score.get(player) >= _goal) + { + setCompleted(player); + UtilTextBottom.display(C.cGreen + C.Bold + "Completed!", player); + } + } + + private boolean isLooking(Location from, Location to) + { + return from.getX() == to.getX() && from.getZ() == to.getZ(); + } + + private boolean canLooseScore(Player player) + { + return Recharge.Instance.use(player, "Movement", 300, false, false) && _score.get(player) > 0; + } + + private int subtractFromScore(Player player) + { + int amount = 2; + + if (_score.get(player) == 1) + { + amount = 1; + } + + subtract(player, amount); + return amount; + } + + private void showSubtractMessage(Player player, int amount) + { + UtilTextMiddle.display(null, "Score decreased by " + C.cRed + amount + C.Reset + "!", 5, 40, 5, player); + player.playSound(player.getLocation(), Sound.NOTE_BASS, 1.0F, 1.0F); + } + + private void trackStep(Player player) + { + if (!_stepTracker.contains(player)) + { + _stepTracker.add(player); + } } @SuppressWarnings("deprecation") private void spawnStartingWool() { - whileLoop: while (_blocks.size() <= Math.ceil(getPlayersAlive().size() / 2) + 1) + whileLoop: while (_blocks.size() <= Math.ceil(Host.getPlayersWithRemainingLives() / 2) + 1) { for (int x = -getArenaSize(); x <= getArenaSize(); x++) { @@ -226,9 +253,9 @@ public class ChallengeBouncingBlock extends Challenge { for (int y = 5; y <= 11; y++) { - Block b = getCenter().getBlock().getRelative(x, y, z); + Block block = getCenter().getBlock().getRelative(x, y, z); - if (b.getType() == Material.AIR || b.getType() == null) + if (block.isEmpty() || block.getType() == null) { if (UtilMath.r(50) == 0) { @@ -239,11 +266,11 @@ public class ChallengeBouncingBlock extends Challenge color = (byte) UtilMath.r(16); } - b.setType(Material.WOOL); - b.setData((byte) UtilMath.r(16)); - _blocks.add(b); + block.setType(Material.WOOL); + block.setData((byte) UtilMath.r(16)); + _blocks.add(block); - if (_blocks.size() >= Math.ceil(Host.GetPlayers(true).size() / 2) + 1) + if (_blocks.size() >= Math.ceil(Host.getPlayersWithRemainingLives() / 2) + 1) { break whileLoop; } @@ -266,7 +293,7 @@ public class ChallengeBouncingBlock extends Challenge Block b = getCenter().getBlock().getRelative(x, y, z); Byte color = (byte) UtilMath.r(16); - while (color == 14) // prevent RED + while (color == 14) { color = (byte) UtilMath.r(16); } @@ -299,8 +326,9 @@ public class ChallengeBouncingBlock extends Challenge _score.put(player, 0); } - public boolean hasSteppedOnWool(Player player) + @Override + public boolean hasData(Player player) { - return _stepTracker.contains(player); + return !_stepTracker.contains(player); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeChickenShooting.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeChickenShooting.java index 2ae919771..1d1121153 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeChickenShooting.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeChickenShooting.java @@ -32,9 +32,9 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeChickenShooting extends Challenge implements DataTracker +public class ChallengeChickenShooting extends Challenge implements NumberTracker { private ArrayList _chickens = new ArrayList(); private HashMap _score = new HashMap(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeEggSmash.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeEggSmash.java index 8e0dc6665..edd7c8914 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeEggSmash.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeEggSmash.java @@ -22,9 +22,9 @@ import mineplex.core.itemstack.ItemBuilder; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeEggSmash extends Challenge implements DataTracker +public class ChallengeEggSmash extends Challenge implements NumberTracker { private static int _smashedEggsGoal = 10; private HashMap _score = new HashMap(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeFallingBlocks.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeFallingBlocks.java index e94da66ff..e1ea16235 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeFallingBlocks.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeFallingBlocks.java @@ -32,9 +32,9 @@ import mineplex.core.projectile.ProjectileUser; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeFallingBlocks extends Challenge implements DataTracker +public class ChallengeFallingBlocks extends Challenge implements NumberTracker { // The spawn chances of a falling block. private double _spawnChance = 20.0; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKangarooJump.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKangarooJump.java index 7470f8d0a..f95e6f31b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKangarooJump.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKangarooJump.java @@ -21,9 +21,9 @@ import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeKangarooJump extends Challenge implements DataTracker +public class ChallengeKangarooJump extends Challenge implements NumberTracker { private HashMap _heightData = new HashMap(); private long _gameTime = System.currentTimeMillis() + ((UtilMath.r(5) + 20) * 1000); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKingOfTheLadder.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKingOfTheLadder.java index 78b19eb1a..00e1c6d0e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKingOfTheLadder.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeKingOfTheLadder.java @@ -24,8 +24,9 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; +import nautilus.game.arcade.game.games.mineware.challenge.LogicTracker; -public class ChallengeKingOfTheLadder extends Challenge +public class ChallengeKingOfTheLadder extends Challenge implements LogicTracker { private ArrayList _hitTracker = new ArrayList(); private Location _winCornerA; @@ -236,8 +237,9 @@ public class ChallengeKingOfTheLadder extends Challenge _hitTracker.remove(event.getPlayer()); } - public boolean hasBeenHit(Player player) + @Override + public boolean hasData(Player player) { - return _hitTracker.contains(player); + return !_hitTracker.contains(player); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMilkACow.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMilkACow.java index 7069b3f7a..139a2ecc3 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMilkACow.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMilkACow.java @@ -31,9 +31,9 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeMilkACow extends Challenge implements DataTracker +public class ChallengeMilkACow extends Challenge implements NumberTracker { private Villager _villager; private HashMap> _milked = new HashMap>(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMiniOneInTheQuiver.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMiniOneInTheQuiver.java index 1443aa9a0..55094e373 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMiniOneInTheQuiver.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeMiniOneInTheQuiver.java @@ -28,9 +28,9 @@ import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeMiniOneInTheQuiver extends Challenge implements DataTracker +public class ChallengeMiniOneInTheQuiver extends Challenge implements NumberTracker { private HashMap _killTracker = new HashMap(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeNavigationMaze.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeNavigationMaze.java index efb997e79..4d0860e43 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeNavigationMaze.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeNavigationMaze.java @@ -15,9 +15,9 @@ import org.bukkit.event.player.PlayerQuitEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeNavigationMaze extends Challenge implements DataTracker +public class ChallengeNavigationMaze extends Challenge implements NumberTracker { private HashMap _completionTime = new HashMap(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeReverseTag.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeReverseTag.java index 0e0f3b154..583064b25 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeReverseTag.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeReverseTag.java @@ -1,6 +1,7 @@ package nautilus.game.arcade.game.games.mineware.challenge.type; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import org.bukkit.Color; @@ -25,12 +26,14 @@ import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; +import nautilus.game.arcade.game.games.mineware.challenge.LogicTracker; import nautilus.game.arcade.game.games.mineware.challenge.TeamChallenge; -public class ChallengeReverseTag extends TeamChallenge +public class ChallengeReverseTag extends TeamChallenge implements LogicTracker { private int _cooldown = 2; // Seconds private HashSet _cooldowns = new HashSet(); + private HashMap _tagTracker = new HashMap(); public ChallengeReverseTag(BawkBawkBattles host) { @@ -97,6 +100,7 @@ public class ChallengeReverseTag extends TeamChallenge for (Player tagged : getFirstTeam().getPlayers()) { tagEffect(tagged); + _tagTracker.put(tagged, true); } } @@ -191,18 +195,32 @@ public class ChallengeReverseTag extends TeamChallenge return; _cooldowns.remove(player); + _tagTracker.remove(player); } private void clear(Player player) { if (getFirstTeam().isMember(player)) { + trackClear(player); clearEffect(player); + getFirstTeam().remove(player); getSecondTeam().add(player); } } + private void trackClear(Player player) + { + if (_tagTracker.containsKey(player)) + { + if (_tagTracker.get(player)) + { + _tagTracker.put(player, false); + } + } + } + private void clearEffect(Player player) { UtilTextMiddle.display(null, C.cRed + "You are no longer tagged.", 5, 40, 5, player); @@ -218,6 +236,7 @@ public class ChallengeReverseTag extends TeamChallenge { if (getSecondTeam().isMember(player)) { + trackTag(player); tagEffect(player); getSecondTeam().remove(player); @@ -231,6 +250,21 @@ public class ChallengeReverseTag extends TeamChallenge } } + private void trackTag(Player player) + { + if (_tagTracker.containsKey(player)) + { + if (_tagTracker.get(player)) + { + _tagTracker.put(player, true); + } + } + else + { + _tagTracker.put(player, true); + } + } + private void tagEffect(Player player) { UtilTextMiddle.display(null, C.cGreen + "You are now tagged, keep it up.", 5, 40, 5, player); @@ -253,4 +287,17 @@ public class ChallengeReverseTag extends TeamChallenge } }.runTaskLater(Host.Manager.getPlugin(), 20 * _cooldown); } + + @Override + public boolean hasData(Player player) + { + if (_tagTracker.containsKey(player)) + { + return _tagTracker.get(player); + } + else + { + return false; + } + } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeWaveCrush.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeWaveCrush.java index a34ddc748..27b9d1901 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeWaveCrush.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/type/ChallengeWaveCrush.java @@ -21,9 +21,9 @@ import mineplex.core.projectile.ProjectileUser; import nautilus.game.arcade.game.games.mineware.BawkBawkBattles; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType; -import nautilus.game.arcade.game.games.mineware.challenge.DataTracker; +import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker; -public class ChallengeWaveCrush extends Challenge implements DataTracker +public class ChallengeWaveCrush extends Challenge implements NumberTracker { // The amount of waves that started. private int _waveAmount = 0; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/BouncingShadowTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/BouncingShadowTracker.java index 9d7c28246..4597eee02 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/BouncingShadowTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/BouncingShadowTracker.java @@ -22,10 +22,10 @@ public class BouncingShadowTracker extends ChallengeStatTracker for (Player player : getGame().GetPlayers(true)) { - if (!bouncingBlock.hasSteppedOnWool(player) && bouncingBlock.getData().isDone(player)) + if (bouncingBlock.hasData(player) && bouncingBlock.getData().isDone(player)) { System.out.println("Bouncing Shadow: " + player.getName()); - addStat(player, "BouncingShadow", 1, true, false); + addStat(player, "BouncingShadow", 1, false, false); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/QuickClimberTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/QuickClimberTracker.java index fb4014326..9c737f52d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/QuickClimberTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/QuickClimberTracker.java @@ -22,10 +22,10 @@ public class QuickClimberTracker extends ChallengeStatTracker for (Player player : getGame().GetPlayers(true)) { - if (!kotl.hasBeenHit(player) && kotl.getData().isDone(player)) + if (kotl.hasData(player) && kotl.getData().isDone(player)) { System.out.println("Quick Climber: " + player.getName()); - addStat(player, "QuickClimber", 1, true, false); + addStat(player, "QuickClimber", 1, false, false); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/TagMasterTracker.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/TagMasterTracker.java index c8b11691d..90804ced1 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/TagMasterTracker.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/tracker/TagMasterTracker.java @@ -22,10 +22,10 @@ public class TagMasterTracker extends ChallengeStatTracker for (Player player : reverseTag.getFirstTeam().getPlayers()) { - if (reverseTag.getData().isCompleted(player)) + if (reverseTag.hasData(player)) { System.out.println("Tag Master: " + player.getName()); - addStat(player, "TagMaster", 1, true, false); + addStat(player, "TagMaster", 1, false, false); } } }