diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/Challenge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/Challenge.java index a5a9a1527..213eb1866 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/Challenge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/Challenge.java @@ -12,6 +12,7 @@ import mineplex.core.hologram.Hologram; import mineplex.core.hologram.Hologram.HologramTarget; import mineplex.core.projectile.ProjectileUser; import mineplex.minecraft.game.core.condition.Condition.ConditionType; +import nautilus.game.arcade.game.games.mineware.events.challengeEndEvent; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -98,6 +99,7 @@ public abstract class Challenge implements Listener setupPlayers(); Completed.clear(); + Lost.clear(); StartTime = System.currentTimeMillis(); Duration = getMaxTime(); Places = (int) Math.ceil(getChallengers().size() / 2D); @@ -240,6 +242,7 @@ public abstract class Challenge implements Listener _invisPlayers.add(player); Host.Manager.GetCondition().Factory().Cloak("Completed", player, player, 7777, true, false); } + Lost.add(player); Host.LoseLife(player, false); UtilInv.Clear(player); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java index 183b142c8..ed002c275 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/MineWare.java @@ -54,6 +54,7 @@ import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.GameTeam.PlayerState; import nautilus.game.arcade.game.games.holeinwall.KitNormal; import nautilus.game.arcade.game.games.mineware.challenges.*; +import nautilus.game.arcade.game.games.mineware.events.challengeEndEvent; import nautilus.game.arcade.kit.Kit; public class MineWare extends SoloGame implements IThrown @@ -149,28 +150,27 @@ public class MineWare extends SoloGame implements IThrown public void PopulateOrders() { - _challenges.add(ChallengePickASide.class); - _challenges.add(ChallengeKOTL.class); +// _challenges.add(ChallengePickASide.class); +// _challenges.add(ChallengeKOTL.class); _challenges.add(ChallengeWaveCrush.class); - _challenges.add(ChallengePunchThePig.class); - _challenges.add(ChallengeDogvsCat.class); - _challenges.add(ChallengeShootChickens.class); - _challenges.add(ChallengeReverseTag.class); +// _challenges.add(ChallengePunchThePig.class); +// _challenges.add(ChallengeDogvsCat.class); // TODO +// _challenges.add(ChallengeShootChickens.class); +// _challenges.add(ChallengeReverseTag.class); _challenges.add(ChallengeKangarooJump.class); _challenges.add(ChallengeMiniOITQ.class); - _challenges.add(ChallengeMineADiamond.class); - _challenges.add(ChallengeRushPush.class); +// _challenges.add(ChallengeMineADiamond.class); +// _challenges.add(ChallengeRushPush.class); _challenges.add(ChallengeBlockLobbers.class); - _challenges.add(ChallengeStandOnColor.class); - _challenges.add(ChallengeMilkACow.class); - _challenges.add(ChallengeDragonEgg.class); - _challenges.add(ChallengeChestLoot.class); - _challenges.add(ChallengeLavaRun.class); +// _challenges.add(ChallengeStandOnColor.class); +// _challenges.add(ChallengeMilkACow.class); +// _challenges.add(ChallengeDragonEgg.class); +// _challenges.add(ChallengeChestLoot.class); +// _challenges.add(ChallengeLavaRun.class); _challenges.add(ChallengeNavigateMaze.class); - _challenges.add(ChallengeHitTargets.class); - _challenges.add(ChallengeVolleyPig.class); - _challenges.add(ChallengeSmashOff.class); - _challenges.add(ChallengeTntLauncher.class); +// _challenges.add(ChallengeVolleyPig.class); +// _challenges.add(ChallengeSmashOff.class); +// _challenges.add(ChallengeTntLauncher.class); // _challenges.add(ChallengeHitTargets.class); //_challenges.add(ChallengeTameTheWolf.class); @@ -317,6 +317,7 @@ public class MineWare extends SoloGame implements IThrown return; // Deregister + Bukkit.getServer().getPluginManager().callEvent(new challengeEndEvent(_challenge)); HandlerList.unregisterAll(_challenge); _challenge.EndOrder(); @@ -546,6 +547,7 @@ public class MineWare extends SoloGame implements IThrown } // Deregister + Bukkit.getServer().getPluginManager().callEvent(new challengeEndEvent(_challenge)); HandlerList.unregisterAll(_challenge); _challenge.EndOrder(); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenges/ChallengeWaveCrush.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenges/ChallengeWaveCrush.java index bc5d672b9..a304968a6 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenges/ChallengeWaveCrush.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenges/ChallengeWaveCrush.java @@ -11,6 +11,7 @@ import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.game.games.mineware.Challenge; import nautilus.game.arcade.game.games.mineware.MineWare; +import nautilus.game.arcade.game.games.mineware.events.challengeEndEvent; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -28,14 +29,13 @@ import org.bukkit.util.Vector; public class ChallengeWaveCrush extends Challenge { private boolean _inProgress = false; - private boolean _endHandling = true; private int _waveAmount = 0; private int _waveSpeed = 40; // in ticks private ArrayList _colorList = new ArrayList(Arrays.asList(14, 11, 9, 3, 1, 4, 13, 5)); public ChallengeWaveCrush(MineWare host) { - super(host, ChallengeType.FirstComplete, "Wave Crush", "Avoid the crushing waves!"); + super(host, ChallengeType.LastStanding, "Wave Crush", "Avoid the crushing waves!"); } @Override @@ -145,7 +145,7 @@ public class ChallengeWaveCrush extends Challenge } } } - if(var % 5 == 0 && (colorPicker != _colorList.size() - 1)) + if(var % 4 == 0 && (colorPicker != _colorList.size() - 1)) { colorPicker++; } @@ -153,32 +153,6 @@ public class ChallengeWaveCrush extends Challenge } } - public void OnChallengeEnd() - { - for(Player player : Host.GetPlayers(true)) - { - if(!isDone(player)) - { - SetCompleted(player); - } - } - - new BukkitRunnable() - { - @Override - public void run() - { - for(Entity fBlocks : Host.WorldData.World.getEntities()) - { - if(fBlocks instanceof FallingBlock) - { - fBlocks.remove(); - } - } - } - }.runTaskLater(Host.Manager.getPlugin(), 20); - } - @Override public void onCollide(LivingEntity target, Block block, ProjectileUser data) { @@ -203,25 +177,6 @@ public class ChallengeWaveCrush extends Challenge "Wave crush"); } - @EventHandler - public void onEndHandling(UpdateEvent event) - { - if(!Host.IsLive()) - { - return; - } - if(event.getType() != UpdateType.TICK) - { - return; - } - if(!_inProgress && _endHandling) - { - Bukkit.broadcastMessage("End event heard!"); - OnChallengeEnd(); - _endHandling = false; - } - } - public void waveStartingPoint(Block block, int radius) { Block pickedBlock = Host.WorldData.World.getBlockAt(block.getX(), block.getY(), block.getZ() - radius); @@ -237,6 +192,34 @@ public class ChallengeWaveCrush extends Challenge waveCreation(pickedBlock); } } + + @EventHandler + public void OnChallengeEnd(challengeEndEvent event) + { + Bukkit.broadcastMessage("End event Heard"); + for(Player player : Host.GetPlayers(true)) + { + if(!isDone(player)) + { + SetCompleted(player); + } + } + + new BukkitRunnable() + { + @Override + public void run() + { + for(Entity fBlocks : Host.WorldData.World.getEntities()) + { + if(fBlocks instanceof FallingBlock) + { + fBlocks.remove(); + } + } + } + }.runTaskLater(Host.Manager.getPlugin(), 30); + } public void waveCreation(final Block block) { diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/events/challengeEndEvent.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/events/challengeEndEvent.java new file mode 100644 index 000000000..0d85528b1 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/events/challengeEndEvent.java @@ -0,0 +1,35 @@ +package nautilus.game.arcade.game.games.mineware.events; + + +import nautilus.game.arcade.game.games.mineware.Challenge; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class challengeEndEvent extends Event +{ + private Challenge _endedChallenge; + private static final HandlerList _handlers = new HandlerList(); + + public challengeEndEvent(Challenge challenge) + { + this._endedChallenge = challenge; + } + + public Challenge getEndedChallenge() + { + return _endedChallenge; + } + + public static HandlerList getHandlerList() + { + return _handlers; + } + + @Override + public HandlerList getHandlers() + { + return getHandlerList(); + } + +}