diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java index bea3c1f83..8d5beaf19 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/SneakyAssassins.java @@ -4,6 +4,7 @@ import mineplex.core.common.util.*; import mineplex.core.disguise.*; import mineplex.core.updater.*; import mineplex.core.updater.event.*; +import mineplex.minecraft.game.core.combat.event.*; import mineplex.minecraft.game.core.damage.*; import nautilus.game.arcade.*; import nautilus.game.arcade.events.*; @@ -12,6 +13,7 @@ import nautilus.game.arcade.game.games.sneakyassassins.kits.*; import nautilus.game.arcade.game.games.sneakyassassins.npc.*; import nautilus.game.arcade.game.games.sneakyassassins.powerups.*; import nautilus.game.arcade.kit.*; +import nautilus.game.arcade.kit.perks.*; import org.bukkit.*; import org.bukkit.entity.*; import org.bukkit.event.*; @@ -37,6 +39,7 @@ public class SneakyAssassins extends SoloGame private final NpcManager _npcManager; private PowerUpManager _powerUpManager; private EntityType _disguiseType = EntityType.VILLAGER; + private int _revealCountdown = 60; public SneakyAssassins(ArcadeManager manager) { @@ -56,7 +59,6 @@ public class SneakyAssassins extends SoloGame this._npcManager = new NpcManager(this, UtilMath.random); this.DamageTeamSelf = true; - this.HungerSet = 20; this.PrepareFreeze = false; } @@ -87,8 +89,6 @@ public class SneakyAssassins extends SoloGame { if (event.GetGame() == this) { - int count = GetTeamList().get(0).GetSpawns().size() - GetTeamList().get(0).GetSize(); - for (int i = 0; i < 80; i++) getNpcManager().spawnNpc(); } @@ -137,6 +137,81 @@ public class SneakyAssassins extends SoloGame return; event.AddMod(GetName(), "Sword Damage", damage - event.GetDamage(), false); + + damager.setFoodLevel(Math.min(20, damager.getFoodLevel() + 8)); + } + + @EventHandler + public void onCombatDeath(CombatDeathEvent event) + { + if (event.GetLog().GetKiller() == null) + return; + + if (!event.GetLog().GetKiller().IsPlayer()) + return; + + Player player = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName()); + if (player == null) + return; + + ArmorPowerUp.powerUpArmor(player, getPowerUpManager().getRandom()); + player.getInventory().addItem(SneakyAssassinKit.SMOKE_BOMB.clone()); + } + + @EventHandler + public void onDrainHunger(UpdateEvent event) + { + if (event.getType() == UpdateType.SEC && GetState() == GameState.Live) + { + for (Player player : Bukkit.getOnlinePlayers()) + { + if (IsAlive(player)) + player.setFoodLevel(Math.max(0, player.getFoodLevel() - 1)); + } + } + } + + @Override + @EventHandler + public void ScoreboardUpdate(UpdateEvent event) + { + super.ScoreboardUpdate(event); + + if (event.getType() != UpdateType.FAST) + return; + + GetScoreboard().WriteBlank(); + GetScoreboard().Write(C.cYellow + "Player Reveal"); + GetScoreboard().Write(String.valueOf(Math.max(0, _revealCountdown)) + (_revealCountdown == 1 ? " Second" : " Seconds")); + GetScoreboard().Draw(); + } + + @EventHandler + public void onRevealCountdown(UpdateEvent event) + { + if (GetState() == GameState.Live && event.getType() == UpdateType.SEC) + { + _revealCountdown--; + + if (_revealCountdown == 0) + { + for (Player player : Bukkit.getOnlinePlayers()) + { + if (IsAlive(player)) + Manager.GetDisguise().undisguise(player); + } + } + else if (_revealCountdown == -2) + { + for (Player player : Bukkit.getOnlinePlayers()) + { + if (IsAlive(player)) + Manager.GetDisguise().disguise(DisguiseFactory.createDisguise(player, _disguiseType)); + } + + _revealCountdown = 60; + } + } } @EventHandler(ignoreCancelled = true) @@ -167,7 +242,7 @@ public class SneakyAssassins extends SoloGame @EventHandler(ignoreCancelled = true) public void onPlayerInteractHanging(PlayerInteractEntityEvent event) { - if(event.getRightClicked() instanceof Hanging) + if (event.getRightClicked() instanceof Hanging) event.setCancelled(true); } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/kits/SneakyAssassinKit.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/kits/SneakyAssassinKit.java index d18ae64f7..8ab51720e 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/kits/SneakyAssassinKit.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/kits/SneakyAssassinKit.java @@ -12,6 +12,16 @@ import org.bukkit.inventory.*; public abstract class SneakyAssassinKit extends Kit { + public static final ItemStack SMOKE_BOMB = ItemStackFactory.Instance.CreateStack(Material.INK_SACK, (byte) 0, 1, + C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Smoke Bomb", + new String[] + { + ChatColor.RESET + "Throw a Smoke Bomb.", + ChatColor.RESET + "Everyone within 6 blocks", + ChatColor.RESET + "gets Blindness for 6 seconds.", + + }); + public SneakyAssassinKit(ArcadeManager manager, String name, KitAvailability kitAvailability, String[] kitDesc, Perk[] kitPerks, ItemStack itemInHand, EntityType disguiseType) { super(manager, name, kitAvailability, kitDesc, kitPerks, disguiseType, itemInHand); @@ -34,14 +44,6 @@ public abstract class SneakyAssassinKit extends Kit new ItemStack(Material.LEATHER_CHESTPLATE), new ItemStack(Material.LEATHER_HELMET) }); - player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.INK_SACK, (byte) 0, 1, - C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Smoke Bomb", - new String[] - { - ChatColor.RESET + "Throw a Smoke Bomb.", - ChatColor.RESET + "Everyone within 6 blocks", - ChatColor.RESET + "gets Blindness for 6 seconds.", - - })); + player.getInventory().addItem(SMOKE_BOMB.clone()); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/npc/NpcManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/npc/NpcManager.java index 12c20e22f..5fe5c4ffe 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/npc/NpcManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/npc/NpcManager.java @@ -35,9 +35,9 @@ public class NpcManager implements Listener return _sneakyAssassins; } - public Collection getNpcs() + public Collection getNpcs() { - return getGame().WorldData.World.getEntitiesByClass(getDisguiseType().getEntityClass()); + return (Collection) getGame().WorldData.World.getEntitiesByClass(getDisguiseType().getEntityClass()); } public Entity spawnNpc() @@ -70,20 +70,27 @@ public class NpcManager implements Listener } @EventHandler - public void onEntityDeath(EntityDeathEvent event) + public void onKillNpc(UpdateEvent event) { - try + if (event.getType() == UpdateType.TWOSEC && getGame().GetState() == Game.GameState.Live) { - if (event.getEntity().getWorld() == getGame().WorldData.World) + List npcs = new ArrayList<>(getNpcs()); + + if (!npcs.isEmpty()) { - event.setDroppedExp(0); - event.getDrops().clear(); + LivingEntity npc = UtilAlg.Random(npcs); + + UtilParticle.PlayParticle(UtilParticle.ParticleType.LARGE_SMOKE, npc.getLocation(), 0f, 0f, 0f, 0, 1); + npc.remove(); } } - catch (Exception e) - { - e.printStackTrace(); - } + } + + @EventHandler + public void onEntityDeath(EntityDeathEvent event) + { + event.setDroppedExp(0); + event.getDrops().clear(); } public void bustle() @@ -123,7 +130,7 @@ public class NpcManager implements Listener } } - UtilEnt.CreatureMove(npc, location, 0.8f); + UtilEnt.CreatureMove(npc, location, 0.7f); } } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/ArmorPowerUp.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/ArmorPowerUp.java index 21809071c..89f9f60fe 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/ArmorPowerUp.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/ArmorPowerUp.java @@ -32,32 +32,26 @@ public class ArmorPowerUp extends PowerUp ) ); - public ArmorPowerUp(PowerUpManager powerUpManager, Location location) + public ArmorPowerUp() { - super(powerUpManager, PowerUpType.ARMOR, location); + super(PowerUpType.ARMOR); } @Override - public boolean powerUpPlayer(Player player) + public boolean powerUpPlayer(Player player, Random random) { - boolean powerUp1 = powerUpArmor(player); - boolean powerUp2 = powerUpArmor(player); + boolean powerUp1 = powerUpArmor(player, random); + boolean powerUp2 = powerUpArmor(player, random); if (powerUp1 || powerUp2) - { UtilPlayer.message(player, F.main("Power-Up", "Your " + F.item("Armor") + " was upgraded.")); - - return super.powerUpPlayer(player); - } else - { UtilPlayer.message(player, F.main("Power-Up", "Your " + F.item("Armor") + " is already fully upgraded!")); - return false; - } + return super.powerUpPlayer(player, random); } - private boolean powerUpArmor(Player player) + public static boolean powerUpArmor(Player player, Random random) { ItemStack[] armor = player.getInventory().getArmorContents(); @@ -73,7 +67,7 @@ public class ArmorPowerUp extends PowerUp if (!upgradeable.isEmpty()) { - int choice = upgradeable.get(getPowerUpManager().getRandom().nextInt(upgradeable.size())); + int choice = upgradeable.get(random.nextInt(upgradeable.size())); int nextLevel = Math.min(ARMOR_PROGRESSION.get(choice).size() - 1, level + 1); armor[choice] = new ItemStack(ARMOR_PROGRESSION.get(choice).get(nextLevel)); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUp.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUp.java index 4dc0ed861..3379fac5b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUp.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUp.java @@ -1,138 +1,33 @@ package nautilus.game.arcade.game.games.sneakyassassins.powerups; -import mineplex.core.common.util.*; -import mineplex.core.updater.*; -import mineplex.core.updater.event.*; +import nautilus.game.arcade.game.games.sneakyassassins.kits.*; import org.bukkit.*; -import org.bukkit.block.*; import org.bukkit.entity.*; import org.bukkit.inventory.*; -import org.bukkit.material.*; -import org.bukkit.util.*; + +import java.util.*; public abstract class PowerUp { - private final PowerUpManager _powerUpManager; private final PowerUpType _powerUpType; - private final Location _location; - private Location _effectLocation; - private Block _beaconBlock; - private BlockState[][][] _originalBeaconBlocks = new BlockState[3][2][3]; - private Item _item; - public PowerUp(PowerUpManager powerUpManager, PowerUpType powerUpType, Location location) + protected PowerUp(PowerUpType powerUpType) { - _powerUpManager = powerUpManager; _powerUpType = powerUpType; - _location = location; - _effectLocation = getLocation().getBlock().getLocation().add(0.5, 0, 0.5); - _effectLocation.setY(250); } - public PowerUpManager getPowerUpManager() + public boolean powerUpPlayer(Player player, Random random) { - return _powerUpManager; - } + player.playSound(player.getEyeLocation(), Sound.LEVEL_UP, 2f, 0.8f); - public Location getLocation() - { - return _location; - } + player.getInventory().addItem(SneakyAssassinKit.SMOKE_BOMB.clone()); + player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); - @SuppressWarnings("deprecation") - public void activate() - { - _beaconBlock = getLocation().getBlock().getRelative(BlockFace.DOWN); - - for (int x = 0; x < 3; x++) - { - for (int y = 0; y < 2; y++) - { - for (int z = 0; z < 3; z++) - { - Block beaconBaseBlock = _beaconBlock.getRelative(x - 1, y - 1, z - 1); - - _originalBeaconBlocks[x][y][z] = beaconBaseBlock.getState(); - - if (y == 0) - beaconBaseBlock.setType(Material.IRON_BLOCK); - else if (x == 1 && z == 1) - beaconBaseBlock.setType(Material.BEACON); - else - beaconBaseBlock.setTypeIdAndData(Material.STAINED_GLASS.getId(), getPowerUpType().getDyeColor().getWoolData(), false); - } - } - } - } - - public void onUpdate(UpdateEvent event) - { - if (event.getType() == UpdateType.FASTEST && _effectLocation != null) - { - FireworkEffect effect = FireworkEffect - .builder() - .flicker(false) - .withColor(getPowerUpType().getColor()) - .with(FireworkEffect.Type.BURST) - .trail(false) - .build(); - - UtilFirework.playFirework(_effectLocation, effect); - - _effectLocation.setY(_effectLocation.getY() - 2); - - if (_effectLocation.getY() - getLocation().getY() < 2) - { - _effectLocation = null; - - Location itemLocation = _beaconBlock.getLocation().add(0.5, 1.5, 0.5); - - effect = FireworkEffect - .builder() - .flicker(false) - .withColor(getPowerUpType().getColor()) - .with(FireworkEffect.Type.BALL_LARGE) - .trail(true) - .build(); - - UtilFirework.playFirework(itemLocation, effect); - - _item = itemLocation.getWorld().dropItem(itemLocation, new ItemStack(getPowerUpType().getItemType())); - _item.setVelocity(new Vector(0, 0.15, 0)); - } - } - } - - public Item getItem() - { - return _item; + return true; } public PowerUpType getPowerUpType() { return _powerUpType; } - - public void remove() - { - if (getItem() != null) - { - getItem().remove(); - _item = null; - } - - for (int x = 0; x < _originalBeaconBlocks.length; x++) - for (int y = 0; y < _originalBeaconBlocks[x].length; y++) - for (int z = 0; z < _originalBeaconBlocks[x][y].length; z++) - _originalBeaconBlocks[x][y][z].update(true, false); - - getPowerUpManager().removePowerUp(this); - } - - public boolean powerUpPlayer(Player player) - { - player.playSound(player.getEyeLocation(), Sound.LEVEL_UP, 2f, 0.8f); - - return true; - } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpItem.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpItem.java new file mode 100644 index 000000000..1112e44c9 --- /dev/null +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpItem.java @@ -0,0 +1,126 @@ +package nautilus.game.arcade.game.games.sneakyassassins.powerups; + +import mineplex.core.common.util.*; +import mineplex.core.updater.*; +import mineplex.core.updater.event.*; +import org.bukkit.*; +import org.bukkit.block.*; +import org.bukkit.entity.*; +import org.bukkit.inventory.*; +import org.bukkit.util.*; + +/** + * Created by Tim on 8/5/2014. + */ +public class PowerUpItem +{ + private final PowerUpManager _powerUpManager; + private final Location _location; + private Location _effectLocation; + private Block _beaconBlock; + private BlockState[][][] _originalBeaconBlocks = new BlockState[3][2][3]; + private Item _item; + + public PowerUpItem(PowerUpManager powerUpManager, Location location) + { + _powerUpManager = powerUpManager; + _location = location; + _effectLocation = getLocation().getBlock().getLocation().add(0.5, 0, 0.5); + _effectLocation.setY(250); + } + + public PowerUpManager getPowerUpManager() + { + return _powerUpManager; + } + + public Location getLocation() + { + return _location; + } + + @SuppressWarnings("deprecation") + public void activate() + { + _beaconBlock = getLocation().getBlock().getRelative(BlockFace.DOWN); + + for (int x = 0; x < 3; x++) + { + for (int y = 0; y < 2; y++) + { + for (int z = 0; z < 3; z++) + { + Block beaconBaseBlock = _beaconBlock.getRelative(x - 1, y - 1, z - 1); + + _originalBeaconBlocks[x][y][z] = beaconBaseBlock.getState(); + + if (y == 0) + beaconBaseBlock.setType(Material.IRON_BLOCK); + else if (x == 1 && z == 1) + beaconBaseBlock.setType(Material.BEACON); + else + beaconBaseBlock.setTypeIdAndData(Material.STAINED_GLASS.getId(), DyeColor.GREEN.getWoolData(), false); + } + } + } + } + + public void onUpdate(UpdateEvent event) + { + if (event.getType() == UpdateType.FASTEST && _effectLocation != null) + { + FireworkEffect effect = FireworkEffect + .builder() + .flicker(false) + .withColor(DyeColor.GREEN.getFireworkColor()) + .with(FireworkEffect.Type.BURST) + .trail(false) + .build(); + + UtilFirework.playFirework(_effectLocation, effect); + + _effectLocation.setY(_effectLocation.getY() - 2); + + if (_effectLocation.getY() - getLocation().getY() < 2) + { + _effectLocation = null; + + Location itemLocation = _beaconBlock.getLocation().add(0.5, 1.5, 0.5); + + effect = FireworkEffect + .builder() + .flicker(false) + .withColor(DyeColor.GREEN.getFireworkColor()) + .with(FireworkEffect.Type.BALL_LARGE) + .trail(true) + .build(); + + UtilFirework.playFirework(itemLocation, effect); + + _item = itemLocation.getWorld().dropItem(itemLocation, new ItemStack(Material.CHEST)); + _item.setVelocity(new Vector(0, 0.15, 0)); + } + } + } + + public Item getItem() + { + return _item; + } + + public void remove() + { + if (getItem() != null) + { + getItem().remove(); + _item = null; + } + + for (int x = 0; x < _originalBeaconBlocks.length; x++) + for (int y = 0; y < _originalBeaconBlocks[x].length; y++) + for (int z = 0; z < _originalBeaconBlocks[x][y].length; z++) + _originalBeaconBlocks[x][y][z].update(true, false); + + getPowerUpManager().removePowerUp(this); + } +} diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpManager.java index 35f9b0664..cf913be82 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpManager.java @@ -1,5 +1,6 @@ package nautilus.game.arcade.game.games.sneakyassassins.powerups; +import mineplex.core.common.util.*; import mineplex.core.updater.*; import mineplex.core.updater.event.*; import nautilus.game.arcade.events.*; @@ -19,10 +20,10 @@ public class PowerUpManager implements Listener private final Game _game; private final Random _random; private final List _spawnLocations; - private final List _powerUps = new ArrayList<>(); + private final List _powerUps = new ArrayList<>(); private Location _lastLocation = null; private int _nextSpawnCountdown = -1; - private final Map _powerUpPickUpCooldown = new HashMap<>(); + private final Map _lastPowerUpType = new HashMap<>(); public PowerUpManager(Game game, Random random, List spawnLocations) { @@ -70,18 +71,18 @@ public class PowerUpManager implements Listener public void spawnNextPowerUp() { - PowerUp powerUp = PowerUpType.values()[getRandom().nextInt(PowerUpType.values().length)].spawn(this, nextLocation()); + PowerUpItem powerUp = new PowerUpItem(this, nextLocation()); getPowerUps().add(powerUp); powerUp.activate(); } - public List getPowerUps() + public List getPowerUps() { return _powerUps; } - boolean removePowerUp(PowerUp powerUp) + boolean removePowerUp(PowerUpItem powerUp) { return _powerUps.remove(powerUp); } @@ -125,7 +126,7 @@ public class PowerUpManager implements Listener _nextSpawnCountdown--; } - for (PowerUp powerUp : getPowerUps()) + for (PowerUpItem powerUp : getPowerUps()) powerUp.onUpdate(event); } @@ -149,47 +150,37 @@ public class PowerUpManager implements Listener @EventHandler public void onPlayerPickUpPowerUp(final PlayerPickupItemEvent event) { - if (getGame().GetTeam(event.getPlayer()) != null) + if (getGame().IsPlaying(event.getPlayer())) { - final PowerUp powerUp = getPowerUpByItem(event.getItem()); + final PowerUpItem powerUp = getPowerUpByItem(event.getItem()); if (powerUp != null) { event.setCancelled(true); - if (_powerUpPickUpCooldown.get(event.getPlayer().getUniqueId()) != powerUp) - { - if (powerUp.powerUpPlayer(event.getPlayer())) - { - powerUp.remove(); + PowerUpType lastType = _lastPowerUpType.get(event.getPlayer().getUniqueId()); + if (lastType == null) + lastType = UtilAlg.Random(Arrays.asList(PowerUpType.values())); - schedulePowerUpSpawn(10); - } - else - { - _powerUpPickUpCooldown.put(event.getPlayer().getUniqueId(), powerUp); + int nextIndex = (Arrays.asList(PowerUpType.values()).indexOf(lastType) + 1) % PowerUpType.values().length; - Bukkit.getScheduler().runTaskLater(getPlugin(), new Runnable() - { - @Override - public void run() - { - if (_powerUpPickUpCooldown.get(event.getPlayer().getUniqueId()) == powerUp) - _powerUpPickUpCooldown.remove(event.getPlayer().getUniqueId()); - } - }, 40); - } - } + PowerUp pu = PowerUpType.values()[nextIndex].getPowerUp(); + pu.powerUpPlayer(event.getPlayer(), getRandom()); + powerUp.remove(); + + _lastPowerUpType.put(event.getPlayer().getUniqueId(), pu.getPowerUpType()); + + schedulePowerUpSpawn(10); } } } - public PowerUp getPowerUpByItem(Item item) + public PowerUpItem getPowerUpByItem(Item item) { if (item == null) return null; - for (PowerUp powerUp : getPowerUps()) + for (PowerUpItem powerUp : getPowerUps()) { if (powerUp.getItem() != null && powerUp.getItem().equals(item)) return powerUp; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpType.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpType.java index 8f3de52f4..01fa1509d 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpType.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/PowerUpType.java @@ -31,15 +31,15 @@ public enum PowerUpType return _color; } - public PowerUp spawn(PowerUpManager powerUpManager, Location location) + public PowerUp getPowerUp() { switch (this) { case WEAPON: - return new WeaponPowerUp(powerUpManager, location); + return new WeaponPowerUp(); case ARMOR: - return new ArmorPowerUp(powerUpManager, location); + return new ArmorPowerUp(); default: return null; diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/WeaponPowerUp.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/WeaponPowerUp.java index f19d71608..c53414cba 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/WeaponPowerUp.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/sneakyassassins/powerups/WeaponPowerUp.java @@ -12,18 +12,18 @@ public class WeaponPowerUp extends PowerUp private static final List SWORD_PROGRESSION = Arrays.asList( Material.WOOD_SWORD, Material.STONE_SWORD, - Material.IRON_SWORD, Material.GOLD_SWORD, + Material.IRON_SWORD, Material.DIAMOND_SWORD ); - public WeaponPowerUp(PowerUpManager powerUpManager, Location location) + public WeaponPowerUp() { - super(powerUpManager, PowerUpType.WEAPON, location); + super(PowerUpType.WEAPON); } @Override - public boolean powerUpPlayer(Player player) + public boolean powerUpPlayer(Player player, Random random) { for (int swordType = 0; swordType < SWORD_PROGRESSION.size(); swordType++) { @@ -39,13 +39,13 @@ public class WeaponPowerUp extends PowerUp UtilPlayer.message(player, F.main("Power-Up", "Your " + F.item("Sword") + " was upgraded.")); - return super.powerUpPlayer(player); + return super.powerUpPlayer(player, random); } } } UtilPlayer.message(player, F.main("Power-Up", "Your " + F.item("Sword") + " is already fully upgraded!")); - return false; + return super.powerUpPlayer(player, random); } } diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkRevealer.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkRevealer.java index 855cfebab..3c2a7b935 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkRevealer.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkRevealer.java @@ -125,7 +125,7 @@ public class PerkRevealer extends Perk implements IThrown if (player == data.GetThrower()) continue; - if (player.getLocation().getWorld() == data.GetThrown().getWorld() && player.getLocation().distanceSquared(data.GetThrown().getLocation()) <= 25) + if (player.getLocation().getWorld() == data.GetThrown().getWorld() && player.getLocation().distanceSquared(data.GetThrown().getLocation()) <= 12 * 12) { RevealedPlayerInfo info = getRevealedPlayers().get(player); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSmokebomb.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSmokebomb.java index fa906a767..0dc0eadab 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSmokebomb.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkSmokebomb.java @@ -29,7 +29,7 @@ public class PerkSmokebomb extends Perk private final int effectDuration; private final boolean itemConsumed; - public PerkSmokebomb(Material activatorType, int effectDuration, boolean itemConsumed) + public PerkSmokebomb(Material activatorType, int effectDuration, boolean itemConsumed) { this(activatorType, effectDuration, itemConsumed, C.cYellow + "Right-Click" + C.cGray + " to " + C.cGreen + "Smoke Bomb"); } @@ -62,7 +62,7 @@ public class PerkSmokebomb extends Perk { return itemConsumed; } - + @EventHandler public void Use(PlayerInteractEvent event) { @@ -70,27 +70,30 @@ public class PerkSmokebomb extends Perk if (!Kit.HasKit(player)) return; - + if (!getActivatorTypes().contains(event.getPlayer().getItemInHand().getType())) - return; + return; event.setCancelled(true); - if(isItemConsumed()) + if (isItemConsumed()) { - if(player.getItemInHand().getAmount() > 1) + if (player.getItemInHand().getAmount() > 1) player.getItemInHand().setAmount(player.getItemInHand().getAmount() - 1); else player.setItemInHand(null); } else { - if(!Recharge.Instance.use(player, GetName(), GetName(), 20000, true, true)) + if (!Recharge.Instance.use(player, GetName(), GetName(), 20000, true, true)) return; } + //Inform + UtilPlayer.message(player, F.main("Skill", "You used " + F.skill(GetName()) + ".")); + //Action - //Manager.GetCondition().Factory().Cloak(GetName(), player, player, 8, false, false); + Manager.GetCondition().Factory().Cloak(GetName(), player, player, 2, false, false); //Manager.GetCondition().Factory().Vulnerable(GetName(), player, player, 6, 3, false, false, true); //Blind @@ -99,18 +102,15 @@ public class PerkSmokebomb extends Perk if (other.equals(player) || !(other instanceof LivingEntity)) continue; - LivingEntity living = (LivingEntity) other; - - Manager.GetCondition().Factory().Blind(GetName(), living, player, getEffectDuration(), 0, false, false, true); - Manager.GetCondition().Factory().Slow(GetName(), living, player, getEffectDuration(), 1, false, false, true, false); + LivingEntity living = (LivingEntity) other; + + Manager.GetCondition().Factory().Blind(GetName() + " Effect", living, player, getEffectDuration(), 0, false, false, true); + Manager.GetCondition().Factory().Slow(GetName() + " Effect", living, player, getEffectDuration(), 1, false, false, true, false); } //Effects player.getWorld().playSound(player.getLocation(), Sound.FIZZ, 2f, 0.5f); UtilParticle.PlayParticle(ParticleType.HUGE_EXPLOSION, player.getLocation(), 0f, 0f, 0f, 0, 1); - - //Inform - UtilPlayer.message(player, F.main("Skill", "You used " + F.skill(GetName()) + ".")); } @EventHandler(priority = EventPriority.HIGH) @@ -120,7 +120,7 @@ public class PerkSmokebomb extends Perk return; Player damagee = event.GetDamageePlayer(); - if (damagee == null) return; + if (damagee == null) return; if (!Kit.HasKit(damagee)) return; @@ -128,7 +128,7 @@ public class PerkSmokebomb extends Perk //End Manager.GetCondition().EndCondition(damagee, null, GetName()); } - + @EventHandler(priority = EventPriority.HIGH) public void EndDamager(CustomDamageEvent event) { @@ -136,7 +136,7 @@ public class PerkSmokebomb extends Perk return; Player damager = event.GetDamagerPlayer(true); - if (damager == null) return; + if (damager == null) return; if (!Kit.HasKit(damager)) return; @@ -144,7 +144,7 @@ public class PerkSmokebomb extends Perk //End Manager.GetCondition().EndCondition(damager, null, GetName()); } - + @EventHandler public void EndInteract(PlayerInteractEvent event) { @@ -164,9 +164,9 @@ public class PerkSmokebomb extends Perk { if (!Kit.HasKit(cur)) return; - + Condition cond = Manager.GetCondition().GetActiveCondition(cur, ConditionType.CLOAK); - if (cond == null) continue; + if (cond == null) continue; if (!cond.GetReason().equals(GetName())) continue; @@ -177,7 +177,7 @@ public class PerkSmokebomb extends Perk } @EventHandler - public void Reset(PlayerDeathEvent event) + public void Reset(PlayerDeathEvent event) { //Remove Condition Manager.GetCondition().EndCondition(event.getEntity(), null, GetName());