From 4b8d9783d2c3edc7a66f3eb53db82e838eb618ef Mon Sep 17 00:00:00 2001 From: Simplicitee Date: Sun, 15 Jan 2017 22:11:42 -0500 Subject: [PATCH] PhaseChange changes (#695) --- .../configuration/ConfigManager.java | 9 --- .../waterbending/ice/PhaseChange.java | 71 ++++--------------- 2 files changed, 14 insertions(+), 66 deletions(-) diff --git a/src/com/projectkorra/projectkorra/configuration/ConfigManager.java b/src/com/projectkorra/projectkorra/configuration/ConfigManager.java index 69920b4a..c504c84f 100644 --- a/src/com/projectkorra/projectkorra/configuration/ConfigManager.java +++ b/src/com/projectkorra/projectkorra/configuration/ConfigManager.java @@ -809,15 +809,6 @@ public class ConfigManager { config.addDefault("Abilities.Water.PhaseChange.Melt.Delay", 50); config.addDefault("Abilities.Water.PhaseChange.Melt.Radius", 7); config.addDefault("Abilities.Water.PhaseChange.Melt.AllowFlow", true); - /* - * config.addDefault("Abilities.Water.PhaseChange.Skate.Cooldown", - * 7000); - * config.addDefault("Abilities.Water.PhaseChange.Skate.Duration", - * 7000); - * config.addDefault("Abilities.Water.PhaseChange.Skate.Radius", 1); - * config.addDefault("Abilities.Water.PhaseChange.Skate.Speed", - * 0.335); - */ config.addDefault("Abilities.Water.PlantArmor.Enabled", true); config.addDefault("Abilities.Water.PlantArmor.Duration", 7500); diff --git a/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java b/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java index d6716a3e..cac02de6 100644 --- a/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java +++ b/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java @@ -20,12 +20,13 @@ import com.projectkorra.projectkorra.util.TempBlock; import com.projectkorra.projectkorra.waterbending.SurgeWall; import com.projectkorra.projectkorra.waterbending.SurgeWave; import com.projectkorra.projectkorra.waterbending.Torrent; +import com.projectkorra.projectkorra.waterbending.WaterSpoutWave; import com.projectkorra.projectkorra.waterbending.multiabilities.WaterArmsSpear; public class PhaseChange extends IceAbility { public static enum PhaseChangeType { - FREEZE, MELT, SKATE; + FREEZE, MELT; @Override public String toString() { @@ -33,8 +34,6 @@ public class PhaseChange extends IceAbility { return "Freeze"; } else if (this == MELT) { return "Melt"; - } else if (this == SKATE) { - return "Skate"; } return ""; } @@ -63,13 +62,6 @@ public class PhaseChange extends IceAbility { private long lastBlockTime = 0; private CopyOnWriteArrayList melted_blocks = new CopyOnWriteArrayList<>(); - /*Skate Variables - private long skateCooldown = 7000; - private int skateRadius = 1; - private long duration = 7000; - private double speed = 0.335; - */ - public PhaseChange(Player player, PhaseChangeType type) { super(player); startNewType(type); @@ -103,13 +95,10 @@ public class PhaseChange extends IceAbility { } if (active_types.contains(PhaseChangeType.MELT)) { - if (active_types.contains(PhaseChangeType.SKATE)) { - active_types.remove(PhaseChangeType.MELT); - return; - } if (!player.isSneaking()) { active_types.remove(PhaseChangeType.MELT); bPlayer.addCooldown("PhaseChangeMelt", meltCooldown); + meltRadius = 1; return; } if (meltRadius >= meltMaxRadius) { @@ -119,27 +108,8 @@ public class PhaseChange extends IceAbility { Location l = GeneralMethods.getTargetedLocation(player, sourceRange); resetMeltLocation(l); meltArea(l, meltRadius); - } + } - /*if (active_types.contains(PhaseChangeType.SKATE)) { - if (!player.isSprinting()) { - active_types.remove(PhaseChangeType.SKATE); - bPlayer.addCooldown("PhaseChangeSkate", skateCooldown); - return; - } - - if (System.currentTimeMillis() > getStartTime() + duration) { - return; - } - - Location center = player.getLocation().clone().subtract(0, 1, 0); - if (isWater(center.getBlock()) || isIce(center.getBlock())) { - freezeArea(center, skateRadius, PhaseChangeType.SKATE); - Vector v = new Vector(player.getLocation().getDirection().getX(), 0, player.getLocation().getDirection().getZ()); - player.setVelocity(v.normalize().multiply(speed)); - displaySkateParticles(); - } - }*/ if (active_types.isEmpty()) { remove(); } @@ -176,27 +146,9 @@ public class PhaseChange extends IceAbility { meltDelay = getConfig().getInt("Abilities.Water.PhaseChange.Melt.Delay")/night; meltMaxRadius = night*getConfig().getInt("Abilities.Water.PhaseChange.Melt.Radius"); allowMeltFlow = getConfig().getBoolean("Abilities.Water.PhaseChange.Melt.AllowFlow"); - /*} else if (type == PhaseChangeType.SKATE) { - if (bPlayer.isOnCooldown("PhaseChangeSkate")) { - return; - } - duration = night*getConfig().getLong("Abilities.Water.PhaseChange.Skate.Duration"); - speed = night*getConfig().getDouble("Abilities.Water.PhaseChange.Skate.Speed"); - skateCooldown = getConfig().getLong("Abilities.Water.PhaseChange.Skate.Cooldown"); - skateRadius = night*getConfig().getInt("Abilities.Water.PhaseChange.Skate.Radius"); - - freezeArea(player.getLocation().clone().subtract(0, 1, 0), skateRadius, PhaseChangeType.SKATE);*/ } } - /*public void displaySkateParticles() { - Location right = GeneralMethods.getRightSide(player.getLocation(), 0.3); - Location left = GeneralMethods.getLeftSide(player.getLocation(), 0.3); - - ParticleEffect.SNOW_SHOVEL.display(right, 0, 0, 0, 0.00012F, 1); - ParticleEffect.SNOW_SHOVEL.display(left, 0, 0, 0, 0.00012F, 1); - }*/ - public void resetMeltLocation(Location loc) { if (meltLoc == null) { meltLoc = loc; @@ -266,6 +218,7 @@ public class PhaseChange extends IceAbility { } return blocks; } + public void freezeArea(Location center, int radius, PhaseChangeType type) { if (type == PhaseChangeType.FREEZE) { if (bPlayer.isOnCooldown("PhaseChangeFreeze")) { @@ -333,6 +286,7 @@ public class PhaseChange extends IceAbility { } blocks.add(tb); PLAYER_BY_BLOCK.put(tb, player); + playIcebendingSound(b.getLocation()); } public void meltArea(Location center, int radius) { @@ -355,7 +309,6 @@ public class PhaseChange extends IceAbility { Block b = ice.get(r.nextInt(ice.size())); melt(b); - } public void meltArea(Location center) { @@ -390,6 +343,10 @@ public class PhaseChange extends IceAbility { WaterArmsSpear.thaw(b); return; } + if (WaterSpoutWave.canThaw(b)) { + WaterSpoutWave.thaw(b); + return; + } if (TempBlock.isTempBlock(b)) { TempBlock tb = TempBlock.get(b); @@ -410,6 +367,7 @@ public class PhaseChange extends IceAbility { new TempBlock(b, Material.AIR, (byte)0); melted_blocks.add(b); } + playWaterbendingSound(b.getLocation()); } /** * Only works with PhaseChange frozen blocks! @@ -422,6 +380,9 @@ public class PhaseChange extends IceAbility { } else { Player p = PLAYER_BY_BLOCK.get(tb); PhaseChange pc = getAbility(p, PhaseChange.class); + if (pc == null) { + return false; + } PLAYER_BY_BLOCK.remove(tb); if (pc.getFrozenBlocks() != null) { pc.getFrozenBlocks().remove(tb); @@ -543,10 +504,6 @@ public class PhaseChange extends IceAbility { return meltRadius; } - /*public int getSkateFreezeRadius() { - return skateRadius; - }*/ - public void setFreezeControlRadius(int value) { controlRadius = value; }