From e2663d644843e3d0e270f7875c26a5f97fa10c4b Mon Sep 17 00:00:00 2001 From: Thanos Paravantis Date: Fri, 1 Jul 2016 17:18:03 +0300 Subject: [PATCH] Move spawn related methods to challenge classes --- .../game/games/mineware/BawkBawkBattles.java | 63 ++----------- .../games/mineware/challenge/Challenge.java | 26 ++++++ .../mineware/challenge/TeamChallenge.java | 90 ++++++++++--------- 3 files changed, 82 insertions(+), 97 deletions(-) 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 601977f3c..232848828 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 @@ -76,9 +76,8 @@ import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.TeamGame; import nautilus.game.arcade.game.games.mineware.challenge.Challenge; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeData; -import nautilus.game.arcade.game.games.mineware.challenge.ChallengeSettings; import nautilus.game.arcade.game.games.mineware.challenge.ChallengeList; -import nautilus.game.arcade.game.games.mineware.challenge.TeamChallenge; +import nautilus.game.arcade.game.games.mineware.challenge.ChallengeSettings; import nautilus.game.arcade.game.games.mineware.challenge.type.ChallengeAnvilDance; import nautilus.game.arcade.game.games.mineware.challenge.type.ChallengeArrowRampage; import nautilus.game.arcade.game.games.mineware.challenge.type.ChallengeBlockLobbers; @@ -398,6 +397,10 @@ public class BawkBawkBattles extends TeamGame implements IThrown } } + /* + * Spawns + */ + private ArrayList setupChallengeSpawnLocations() { ArrayList selected = _challenge.createSpawns(); @@ -434,10 +437,6 @@ public class BawkBawkBattles extends TeamGame implements IThrown } } - /* - * Spawns - */ - private void teleportSpectatorsToSpawn() { for (Player player : GetPlayers(false)) @@ -451,15 +450,7 @@ public class BawkBawkBattles extends TeamGame implements IThrown private void teleportPlayersToSpawns(boolean firstRun) { - if (_challenge instanceof TeamChallenge) - { - teamTeleport(firstRun); - } - else - { - playerTeleport(firstRun); - } - + _challenge.spawn(firstRun); removeSolidBlockForPlayers(); } @@ -489,46 +480,6 @@ public class BawkBawkBattles extends TeamGame implements IThrown } } - private void teamTeleport(boolean firstRun) - { - TeamChallenge teamChallenge = (TeamChallenge) _challenge; - - if (teamChallenge.shouldTeamSpawn()) - { - teamChallenge.spawn(firstRun); - } - else - { - playerTeleport(firstRun); - } - } - - private void playerTeleport(boolean firstRun) - { - if (firstRun) - { - ArrayList players = GetPlayers(false); - - for (int i = 0; i < players.size(); i++) - { - Player player = players.get(i); - - new BukkitRunnable() - { - @Override - public void run() - { - _playerTeam.SpawnTeleport(player); - } - }.runTaskLater(Manager.getPlugin(), i); - } - } - else - { - _playerTeam.SpawnTeleport(false); - } - } - /* * Start */ @@ -948,7 +899,7 @@ public class BawkBawkBattles extends TeamGame implements IThrown { for (Player player : UtilServer.getPlayers()) { - UtilTextTop.displayTextBar(player, _challenge.getTimeLeftPercent(), C.cYellow + C.Bold + _challenge.getName()); + UtilTextTop.displayTextBar(player, _challenge.getTimeLeftPercent(), C.cYellowB + _challenge.getName()); player.setLevel(_challenge.getRemainingPlaces()); player.setExp(_challenge.getTimeLeftPercent()); } 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 9fedab233..a505b760d 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 @@ -121,6 +121,32 @@ public abstract class Challenge implements Listener return true; } + public void spawn(boolean firstRun) + { + if (firstRun) + { + ArrayList players = Host.GetPlayers(false); + + for (int i = 0; i < players.size(); i++) + { + Player player = players.get(i); + + new BukkitRunnable() + { + @Override + public void run() + { + Host.getPlayerTeam().SpawnTeleport(player); + } + }.runTaskLater(Host.Manager.getPlugin(), i); + } + } + else + { + Host.getPlayerTeam().SpawnTeleport(false); + } + } + public void start() { Settings.setStartTime(System.currentTimeMillis()); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/TeamChallenge.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/TeamChallenge.java index 55ce38f2f..84c8a69aa 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/TeamChallenge.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/mineware/challenge/TeamChallenge.java @@ -54,64 +54,72 @@ public abstract class TeamChallenge extends Challenge * Called automatically only when _teamSpawn is true. */ @SuppressWarnings("deprecation") + @Override public void spawn(boolean firstRun) { - autoSelectTeams(); - - List firstTeam = _firstTeam.getPlayers(); - List secondTeam = _secondTeam.getPlayers(); - - int firstTeamIndex = 0; - int secondTeamIndex = 0; - - int players = Host.getPlayersWithRemainingLives(); - int teleported = 0; - - List randomSpawns = Data.getDefinedSpawns(); - Collections.shuffle(randomSpawns); - - while (teleported < players) + if (_teamSpawn) { - System.out.println("Selecting spawns"); + autoSelectTeams(); - for (Location spawn : randomSpawns) + List firstTeam = _firstTeam.getPlayers(); + List secondTeam = _secondTeam.getPlayers(); + + int firstTeamIndex = 0; + int secondTeamIndex = 0; + + int players = Host.getPlayersWithRemainingLives(); + int teleported = 0; + + List randomSpawns = Data.getDefinedSpawns(); + Collections.shuffle(randomSpawns); + + while (teleported < players) { - Block block = spawn.getBlock().getRelative(BlockFace.DOWN); + System.out.println("Selecting spawns"); - if (block.getData() == _firstTeamSpawnBlockData && firstTeamIndex < firstTeam.size()) + for (Location spawn : randomSpawns) { - Player player = firstTeam.get(firstTeamIndex); + Block block = spawn.getBlock().getRelative(BlockFace.DOWN); - if (firstRun) + if (block.getData() == _firstTeamSpawnBlockData && firstTeamIndex < firstTeam.size()) { - teleportWithDelay(player, spawn, teleported); - } - else - { - player.teleport(spawn); - } + Player player = firstTeam.get(firstTeamIndex); - firstTeamIndex++; - teleported++; - } - else if (block.getData() == _secondTeamSpawnBlockData && secondTeamIndex < secondTeam.size()) - { - Player player = secondTeam.get(secondTeamIndex); + if (firstRun) + { + teleportWithDelay(player, spawn, teleported); + } + else + { + player.teleport(spawn); + } - if (firstRun) - { - teleportWithDelay(player, spawn, teleported); + firstTeamIndex++; + teleported++; } - else + else if (block.getData() == _secondTeamSpawnBlockData && secondTeamIndex < secondTeam.size()) { - player.teleport(spawn); - } + Player player = secondTeam.get(secondTeamIndex); - secondTeamIndex++; - teleported++; + if (firstRun) + { + teleportWithDelay(player, spawn, teleported); + } + else + { + player.teleport(spawn); + } + + secondTeamIndex++; + teleported++; + } } } } + else + { + super.spawn(firstRun); + } } private void teleportWithDelay(Player player, final Location spawn, int teleported)