From d4e8c0c9a6c01ed29e4320810aa5378b1176eb07 Mon Sep 17 00:00:00 2001 From: Cheese Date: Fri, 3 Apr 2015 15:28:10 +1100 Subject: [PATCH] Added Respawn middle screen text Added Champs capture point mid screen text Fixed hitbox mults for projectiles Fixed inconsistent arrow damage Lots of Champions balance --- .../core/projectile/ProjectileManager.java | 18 +- .../core/projectile/ProjectileUser.java | 162 +++++++++--------- .../classcombat/Skill/Assassin/Assassin.java | 4 +- .../classcombat/Skill/Assassin/Blink.java | 7 +- .../classcombat/Skill/Assassin/Flash.java | 4 +- .../classcombat/Skill/Assassin/Recall.java | 4 +- .../Skill/Assassin/SilencingArrow.java | 2 +- .../Skill/Assassin/SmokeArrow.java | 2 +- .../classcombat/Skill/Assassin/SmokeBomb.java | 4 +- .../classcombat/Skill/Brute/BlockToss.java | 32 ++-- .../classcombat/Skill/Brute/Bloodlust.java | 85 ++++----- .../classcombat/Skill/Brute/Colossus.java | 6 +- .../Skill/Brute/CripplingBlow.java | 4 +- .../classcombat/Skill/Brute/DwarfToss.java | 30 ++-- .../classcombat/Skill/Brute/Overwhelm.java | 4 +- .../classcombat/Skill/Brute/WhirlwindAxe.java | 13 +- .../classcombat/Skill/Knight/AxeThrow.java | 4 +- .../Skill/Knight/DefensiveStance.java | 9 +- .../classcombat/Skill/Knight/Deflection.java | 4 +- .../classcombat/Skill/Knight/HiltSmash.java | 19 +- .../game/classcombat/Skill/Mage/Blizzard.java | 4 +- .../classcombat/Skill/Mage/IcePrison.java | 6 +- .../game/classcombat/Skill/Mage/Inferno.java | 4 +- .../classcombat/Skill/Mage/LifeBondsData.java | 3 +- .../classcombat/Skill/Mage/LightningOrb.java | 2 +- .../classcombat/Skill/Mage/StaticLazer.java | 17 +- .../game/classcombat/Skill/Mage/Void.java | 6 +- .../classcombat/Skill/Ranger/Agility.java | 4 +- .../classcombat/Skill/Ranger/Disengage.java | 55 ++++-- .../classcombat/Skill/Ranger/HealingShot.java | 4 +- .../classcombat/Skill/Ranger/HeavyArrows.java | 6 +- .../classcombat/Skill/Ranger/Longshot.java | 4 +- .../classcombat/Skill/Ranger/Overcharge.java | 2 +- .../Skill/Ranger/Sharpshooter.java | 5 +- .../Skill/Ranger/VitalitySpores.java | 5 +- .../classcombat/Skill/Ranger/WolfsPounce.java | 4 +- .../game/classcombat/Skill/SkillCharge.java | 20 +++ .../game/classcombat/Skill/SkillFactory.java | 8 +- .../game/core/damage/DamageManager.java | 11 +- .../nautilus/game/arcade/ArcadeManager.java | 4 +- .../common/dominate_data/CapturePoint.java | 2 + .../game/arcade/managers/GameFlagManager.java | 4 +- 42 files changed, 352 insertions(+), 245 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java index bf3b827b5..3355e945d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileManager.java @@ -35,15 +35,7 @@ public class ProjectileManager extends MiniPlugin { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, expireTime, hitPlayer, hitBlock, idle, false, - null, 1f, 1f, null, 0, null, null, hitboxMult, null)); - } - - public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, - long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, double hitboxMult, DisguiseManager disguise) - { - _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, - expireTime, hitPlayer, hitBlock, idle, false, - null, 1f, 1f, null, 0, null, null, hitboxMult, disguise)); + null, 1f, 1f, null, 0, null, null, hitboxMult)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, @@ -51,7 +43,7 @@ public class ProjectileManager extends MiniPlugin { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, expireTime, hitPlayer, hitBlock, idle, pickup, - null, 1f, 1f, null, 0, null, null, hitboxMult, null)); + null, 1f, 1f, null, 0, null, null, hitboxMult)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, @@ -60,7 +52,7 @@ public class ProjectileManager extends MiniPlugin { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, expireTime, hitPlayer, hitBlock, idle, false, - sound, soundVolume, soundPitch, effect, effectData, effectRate, null, hitboxMult, null)); + sound, soundVolume, soundPitch, effect, effectData, effectRate, null, hitboxMult)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, @@ -69,7 +61,7 @@ public class ProjectileManager extends MiniPlugin { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, expireTime, hitPlayer, hitBlock, idle, false, - sound, soundVolume, soundPitch, effect, effectData, effectRate, particle, hitboxMult, null)); + sound, soundVolume, soundPitch, effect, effectData, effectRate, particle, hitboxMult)); } public void AddThrow(Entity thrown, LivingEntity thrower, IThrown callback, @@ -78,7 +70,7 @@ public class ProjectileManager extends MiniPlugin { _thrown.put(thrown, new ProjectileUser(this, thrown, thrower, callback, expireTime, hitPlayer, hitBlock, idle, false, - sound, soundVolume, soundPitch, null, 0, effectRate, particle, hitboxMult, null)); + sound, soundVolume, soundPitch, null, 0, effectRate, particle, hitboxMult)); } @EventHandler diff --git a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java index 876a95580..9d2abf3cb 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/projectile/ProjectileUser.java @@ -3,6 +3,7 @@ package mineplex.core.projectile; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; import mineplex.core.common.util.UtilBlock; +import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilParticle.ParticleType; @@ -48,14 +49,14 @@ public class ProjectileUser private int _effectData = 0; private UpdateType _effectRate = UpdateType.TICK; - private DisguiseManager _disguise; - + private double _hitboxMult; + public ProjectileUser(ProjectileManager throwInput, Entity thrown, LivingEntity thrower, IThrown callback, long expireTime, boolean hitPlayer, boolean hitBlock, boolean idle, boolean pickup, Sound sound, float soundVolume, float soundPitch, Effect effect, int effectData, UpdateType effectRate, ParticleType particle, - double hitboxMult, DisguiseManager disguise) + double hitboxMult) { Throw = throwInput; @@ -77,7 +78,7 @@ public class ProjectileUser _effectData = effectData; _effectRate = effectRate; - _disguise = disguise; + _hitboxMult = hitboxMult; } public void Effect(UpdateEvent event) @@ -104,90 +105,93 @@ public class ProjectileUser return true; } - double distanceToEntity = 0.0D; - LivingEntity victim = null; - - net.minecraft.server.v1_7_R4.Entity nmsEntity = ((CraftEntity)_thrown).getHandle(); - Vec3D vec3d = Vec3D.a(nmsEntity.locX, nmsEntity.locY, nmsEntity.locZ); - Vec3D vec3d1 = Vec3D.a(nmsEntity.locX + nmsEntity.motX, nmsEntity.locY + nmsEntity.motY, nmsEntity.locZ + nmsEntity.motZ); - - MovingObjectPosition finalObjectPosition = nmsEntity.world.rayTrace(vec3d, vec3d1, false, true, false); - vec3d = Vec3D.a(nmsEntity.locX, nmsEntity.locY, nmsEntity.locZ); - vec3d1 = Vec3D.a(nmsEntity.locX + nmsEntity.motX, nmsEntity.locY + nmsEntity.motY, nmsEntity.locZ + nmsEntity.motZ); + if (_hitPlayer) + { + double distanceToEntity = 0.0D; + LivingEntity victim = null; + + net.minecraft.server.v1_7_R4.Entity nmsEntity = ((CraftEntity)_thrown).getHandle(); + Vec3D vec3d = Vec3D.a(nmsEntity.locX, nmsEntity.locY, nmsEntity.locZ); + Vec3D vec3d1 = Vec3D.a(nmsEntity.locX + nmsEntity.motX, nmsEntity.locY + nmsEntity.motY, nmsEntity.locZ + nmsEntity.motZ); + + MovingObjectPosition finalObjectPosition = nmsEntity.world.rayTrace(vec3d, vec3d1, false, true, false); + vec3d = Vec3D.a(nmsEntity.locX, nmsEntity.locY, nmsEntity.locZ); + vec3d1 = Vec3D.a(nmsEntity.locX + nmsEntity.motX, nmsEntity.locY + nmsEntity.motY, nmsEntity.locZ + nmsEntity.motZ); - if (finalObjectPosition != null) - { - vec3d1 = Vec3D.a(finalObjectPosition.pos.a, finalObjectPosition.pos.b, finalObjectPosition.pos.c); - } - - for (Object entity : ((CraftWorld)_thrown.getWorld()).getHandle().getEntities(((CraftEntity)_thrown).getHandle(), ((CraftEntity)_thrown).getHandle().boundingBox.a(((CraftEntity)_thrown).getHandle().motX, ((CraftEntity)_thrown).getHandle().motY, ((CraftEntity)_thrown).getHandle().motZ).grow(1.0D, 1.0D, 1.0D))) - { - if (entity instanceof net.minecraft.server.v1_7_R4.Entity) - { - Entity bukkitEntity = ((net.minecraft.server.v1_7_R4.Entity) entity).getBukkitEntity(); - - if (bukkitEntity instanceof LivingEntity) - { - LivingEntity ent = (LivingEntity)bukkitEntity; - - //Avoid Self - if (ent.equals(_thrower)) - continue; - - //Creative or Spec - if (ent instanceof Player) - if (((Player)ent).getGameMode() == GameMode.CREATIVE || UtilPlayer.isSpectator(ent)) + if (finalObjectPosition != null) + { + vec3d1 = Vec3D.a(finalObjectPosition.pos.a, finalObjectPosition.pos.b, finalObjectPosition.pos.c); + } + + for (Object entity : ((CraftWorld)_thrown.getWorld()).getHandle().getEntities(((CraftEntity)_thrown).getHandle(), + ((CraftEntity)_thrown).getHandle().boundingBox.a( + ((CraftEntity)_thrown).getHandle().motX, + ((CraftEntity)_thrown).getHandle().motY, + ((CraftEntity)_thrown).getHandle().motZ).grow(_hitboxMult, _hitboxMult, _hitboxMult))) + { + if (entity instanceof net.minecraft.server.v1_7_R4.Entity) + { + Entity bukkitEntity = ((net.minecraft.server.v1_7_R4.Entity) entity).getBukkitEntity(); + + if (bukkitEntity instanceof LivingEntity) + { + LivingEntity ent = (LivingEntity)bukkitEntity; + + //Avoid Self + if (ent.equals(_thrower)) continue; - - EntityType disguise = null; - if (_disguise != null && _disguise.getDisguise(ent) != null) - { - if (_disguise.getDisguise(ent) instanceof DisguiseSquid) - disguise = EntityType.SQUID; - } + + //Creative or Spec + if (ent instanceof Player) + if (((Player)ent).getGameMode() == GameMode.CREATIVE || UtilPlayer.isSpectator(ent)) + continue; - float f1 = (float)(nmsEntity.boundingBox.a() * .6); - AxisAlignedBB axisalignedbb1 = ((CraftEntity)ent).getHandle().boundingBox.grow(f1, f1, f1); - MovingObjectPosition entityCollisionPosition = axisalignedbb1.a(vec3d, vec3d1); - - if (entityCollisionPosition != null) - { - double d1 = vec3d.distanceSquared(entityCollisionPosition.pos); - if ((d1 < distanceToEntity) || (distanceToEntity == 0.0D)) + //float f1 = (float)(nmsEntity.boundingBox.a() * 0.6f); + AxisAlignedBB axisalignedbb1 = ((CraftEntity)ent).getHandle().boundingBox.grow(1F, 1F, 1F); + MovingObjectPosition entityCollisionPosition = axisalignedbb1.a(vec3d, vec3d1); + + if (entityCollisionPosition != null) { - victim = ent; - distanceToEntity = d1; + if (_thrower instanceof Player) + ((Player)_thrower).playSound(_thrower.getLocation(), Sound.ORB_PICKUP, 1f, 1.25f); + + double d1 = vec3d.distanceSquared(entityCollisionPosition.pos); + if ((d1 < distanceToEntity) || (distanceToEntity == 0.0D)) + { + victim = ent; + distanceToEntity = d1; + } } } - } - } - } - - if (victim != null) - { - finalObjectPosition = new MovingObjectPosition(((CraftLivingEntity)victim).getHandle()); + } + } - _callback.Collide(victim, null, this); - return true; - } - - if (finalObjectPosition != null) - { - if (_hitBlock) + if (victim != null) { - Block block = _thrown.getWorld().getBlockAt(finalObjectPosition.b, finalObjectPosition.c, finalObjectPosition.d); - if (!UtilBlock.airFoliage(block) && !block.isLiquid()) + finalObjectPosition = new MovingObjectPosition(((CraftLivingEntity)victim).getHandle()); + + _callback.Collide(victim, null, this); + return true; + } + + if (finalObjectPosition != null) + { + if (_hitBlock) { - nmsEntity.motX = ((float) (finalObjectPosition.pos.a - nmsEntity.locX)); - nmsEntity.motY = ((float) (finalObjectPosition.pos.b - nmsEntity.locY)); - nmsEntity.motZ = ((float) (finalObjectPosition.pos.c - nmsEntity.locZ)); - float f2 = MathHelper.sqrt(nmsEntity.motX * nmsEntity.motX + nmsEntity.motY * nmsEntity.motY + nmsEntity.motZ * nmsEntity.motZ); - nmsEntity.locX -= nmsEntity.motX / f2 * 0.0500000007450581D; - nmsEntity.locY -= nmsEntity.motY / f2 * 0.0500000007450581D; - nmsEntity.locZ -= nmsEntity.motZ / f2 * 0.0500000007450581D; - - _callback.Collide(null, block, this); - return true; + Block block = _thrown.getWorld().getBlockAt(finalObjectPosition.b, finalObjectPosition.c, finalObjectPosition.d); + if (!UtilBlock.airFoliage(block) && !block.isLiquid()) + { + nmsEntity.motX = ((float) (finalObjectPosition.pos.a - nmsEntity.locX)); + nmsEntity.motY = ((float) (finalObjectPosition.pos.b - nmsEntity.locY)); + nmsEntity.motZ = ((float) (finalObjectPosition.pos.c - nmsEntity.locZ)); + float f2 = MathHelper.sqrt(nmsEntity.motX * nmsEntity.motX + nmsEntity.motY * nmsEntity.motY + nmsEntity.motZ * nmsEntity.motZ); + nmsEntity.locX -= nmsEntity.motX / f2 * 0.0500000007450581D; + nmsEntity.locY -= nmsEntity.motY / f2 * 0.0500000007450581D; + nmsEntity.locZ -= nmsEntity.motZ / f2 * 0.0500000007450581D; + + _callback.Collide(null, block, this); + return true; + } } } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Assassin.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Assassin.java index 94dea13b0..62dc3852b 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Assassin.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Assassin.java @@ -23,7 +23,7 @@ public class Assassin extends Skill SetDesc(new String[] { "Permanent Speed II.", - "Fall damage reduced by 1." + "Fall damage reduced by 1.5." }); } @@ -87,7 +87,7 @@ public class Assassin extends Skill int level = getLevel(player); if (level == 0) return; - event.AddMod(null, GetName(), -1, false); + event.AddMod(null, GetName(), -1.5, false); } @Override diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java index 7a1d5f331..66b2682dd 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Blink.java @@ -70,11 +70,14 @@ public class Blink extends SkillActive return false; } - //Mastery + //Deblink if (_loc.containsKey(player) && _blinkTime.containsKey(player)) if (!UtilTime.elapsed(_blinkTime.get(player), 5000)) { - Deblink(player, level); + //Require 500ms after blink to deblink + if (UtilTime.elapsed(_blinkTime.get(player), 500)) + Deblink(player, level); + return false; } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Flash.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Flash.java index 9e3890b3c..58f2a0046 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Flash.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Flash.java @@ -53,7 +53,7 @@ public class Flash extends SkillActive @Override public String GetRechargeString() { - return "Recharge: #11#-1 Seconds per Charge"; + return "Recharge: #10#-1 Seconds per Charge"; } @Override @@ -98,7 +98,7 @@ public class Flash extends SkillActive if (charges >= 1 + level) continue; - if (!mineplex.core.recharge.Recharge.Instance.use(cur, "Flash Recharge", 11000 - (1000 * level), false, false)) + if (!mineplex.core.recharge.Recharge.Instance.use(cur, "Flash Recharge", 10000 - (1000 * level), false, false)) continue; _flash.put(cur, charges + 1); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Recall.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Recall.java index 6c860f086..b15f4756c 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Recall.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/Recall.java @@ -46,7 +46,7 @@ public class Recall extends Skill @Override public String GetRechargeString() { - return "Recharge: #90#-15 Seconds"; + return "Recharge: #60#-10 Seconds"; } @EventHandler @@ -70,7 +70,7 @@ public class Recall extends Skill if (trigger.IsCancelled()) return; - if (!Recharge.Instance.use(player, GetName(), GetName(level), 90000 - (level * 15000), true, false)) + if (!Recharge.Instance.use(player, GetName(), GetName(level), 60000 - (level * 10000), true, false)) return; LinkedList locs = _locMap.remove(player); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SilencingArrow.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SilencingArrow.java index 2af2d2345..2a9b18a2f 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SilencingArrow.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SilencingArrow.java @@ -50,7 +50,7 @@ public class SilencingArrow extends SkillActive SetDesc(new String[] { "Your next arrow will Silence", - "target for #3#3 seconds.", + "target for #1#3 seconds.", "", "Silence stops skills being used." }); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeArrow.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeArrow.java index 29135e56f..ad888f7d5 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeArrow.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeArrow.java @@ -50,7 +50,7 @@ public class SmokeArrow extends SkillActive SetDesc(new String[] { "Your next arrow will give Blindness", - "to target for #3#1 seconds." + "to target for #4#1 seconds." }); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeBomb.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeBomb.java index c7ddc4924..96de20042 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeBomb.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Assassin/SmokeBomb.java @@ -46,7 +46,7 @@ public class SmokeBomb extends Skill @Override public String GetRechargeString() { - return "Recharge: #90#-15 Seconds"; + return "Recharge: #60#-10 Seconds"; } @EventHandler @@ -75,7 +75,7 @@ public class SmokeBomb extends Skill return; } - if (!Recharge.Instance.use(player, GetName(), GetName(level), 90000 - (level * 15000), true, false)) + if (!Recharge.Instance.use(player, GetName(), GetName(level), 60000 - (level * 10000), true, false)) return; //Action diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java index 8375c2ae5..b09e64c30 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/BlockToss.java @@ -25,6 +25,7 @@ import mineplex.core.recharge.Recharge; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; import mineplex.core.common.util.UtilAction; +import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilGear; import mineplex.core.common.util.UtilServer; @@ -55,9 +56,6 @@ public class BlockToss extends SkillCharge implements IThrown "dealing up to #6#1 damage.", "", GetChargeString(), - "", - "You can only pick up Stone, Dirt,", - "Cobblestone, Sand, Gravel or Snow." }); } @@ -98,24 +96,22 @@ public class BlockToss extends SkillCharge implements IThrown UtilPlayer.message(player, F.main("Skill", "You cannot use " + F.skill(GetName()) + " in water.")); return; } - + + Block grab = event.getClickedBlock(); + + if (!UtilBlock.solid(grab) || grab.getType() == Material.BEDROCK) + return; + //Recharge if (!Recharge.Instance.use(player, GetName(), 1000, false, false)) return; - - Block grab = event.getClickedBlock(); - - int id = event.getClickedBlock().getTypeId(); - - if ( - id != 1 && - id != 2 && - id != 3 && - id != 12 && - id != 13 && - id != 80) + + if (grab.getRelative(BlockFace.UP).getType() != Material.AIR) + { + UtilPlayer.message(player, F.main(GetName(), "You cannot grab this block.")); return; - + } + //Door if (grab.getRelative(BlockFace.UP).getTypeId() == 64 || grab.getRelative(BlockFace.UP).getTypeId() == 71) { @@ -240,7 +236,7 @@ public class BlockToss extends SkillCharge implements IThrown //Damage Event Factory.Damage().NewDamageEvent(target, data.GetThrower(), null, - DamageCause.CUSTOM, data.GetThrown().getVelocity().length() * (2.5 + 0.5 * level), true, true, false, + DamageCause.CUSTOM, data.GetThrown().getVelocity().length() * (3 + 0.6 * level), true, true, false, UtilEnt.getName(data.GetThrower()), GetName()); //Block to Item diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Bloodlust.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Bloodlust.java index f857bad86..1101d4d65 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Bloodlust.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Bloodlust.java @@ -8,6 +8,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; +import com.mysql.jdbc.Util; + import mineplex.minecraft.game.classcombat.Class.IPvpClass.ClassType; import mineplex.core.common.util.F; import mineplex.core.updater.event.UpdateEvent; @@ -32,9 +34,9 @@ public class Bloodlust extends Skill SetDesc(new String[] { - "When an enemy dies within #8#2 blocks,", - "you go into a Bloodlust, receiving", - "Speed 1 and Strength 1 for #4#2 seconds.", + "When you kill an enemy, you go into", + "a Bloodlust, receiving Speed 1 and", + "Strength 1 for #4#2 seconds.", "You also heal #0#1 health.", "", "Bloodlust can stack up to 3 times,", @@ -47,50 +49,53 @@ public class Bloodlust extends Skill { if (!(event.GetEvent().getEntity() instanceof Player)) return; + + if (event.GetLog().GetKiller() == null || !event.GetLog().GetKiller().IsPlayer()) + return; - for (Player cur : UtilServer.getPlayers()) - { - if (Expire(cur)) - continue; + Player player = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName()); + if (player == null) + return; - if (!Factory.Relation().canHurt(cur, (Player)event.GetEvent().getEntity())) - continue; - - if (cur.equals(event.GetEvent().getEntity())) - continue; + if (!Factory.Relation().canHurt(player, (Player)event.GetEvent().getEntity())) + return; - //Level - int level = getLevel(cur); - if (level == 0) continue; + if (player.equals(event.GetEvent().getEntity())) + return; - //Offset - double distance = 4 + (4 * level); - if (UtilMath.offset(event.GetEvent().getEntity().getLocation(), cur.getLocation()) > distance) - continue; + //Level + int level = getLevel(player); + if (level == 0) + return; + + //Offset + double distance = 4 + (4 * level); + if (UtilMath.offset(event.GetEvent().getEntity().getLocation(), player.getLocation()) > distance) + return; - //Strength - int str = 0; - if (_str.containsKey(cur)) - str = _str.get(cur) + 1; - str = Math.min(str, 3); - _str.put(cur, str); + //Strength + int str = 0; + if (_str.containsKey(player)) + str = _str.get(player) + 1; + str = Math.min(str, 2); + _str.put(player, str); - //Time - double dur = 4 + (2 * level); - _time.put(cur, (System.currentTimeMillis() + (long)(dur*1000))); + //Time + double dur = 4 + (2 * level); + _time.put(player, (System.currentTimeMillis() + (long)(dur*1000))); - //Condition - Factory.Condition().Factory().Speed(GetName(), cur, event.GetEvent().getEntity(), dur, str, false, true, true); - Factory.Condition().Factory().Strength(GetName(), cur, event.GetEvent().getEntity(), dur, 0, false, true, true); + //Condition + Factory.Condition().Factory().Speed(GetName(), player, event.GetEvent().getEntity(), dur, str, false, true, true); + Factory.Condition().Factory().Strength(GetName(), player, event.GetEvent().getEntity(), dur, 0, false, true, true); - UtilPlayer.health(cur, level); - - //Inform - UtilPlayer.message(cur, F.main(GetClassType().name(), "You entered " + F.skill(GetName(level)) + " at " + F.elem("Level " + (str+1)) + ".")); + UtilPlayer.health(player, level); + + //Inform + UtilPlayer.message(player, F.main(GetClassType().name(), "You entered " + F.skill(GetName(level)) + " at " + F.elem("Level " + (str+1)) + ".")); + + //Effect + player.getWorld().playSound(player.getLocation(), Sound.ZOMBIE_PIG_ANGRY, 2f, 0.6f); - //Effect - cur.getWorld().playSound(cur.getLocation(), Sound.ZOMBIE_PIG_ANGRY, 2f, 0.6f); - } } @EventHandler @@ -120,13 +125,13 @@ public class Bloodlust extends Skill return false; } - + @EventHandler public void Particle(UpdateEvent event) { if (event.getType() != UpdateType.TICK) return; - + for (Entity ent : _str.keySet()) { UtilParticle.PlayParticle(ParticleType.RED_DUST, ent.getLocation(), diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Colossus.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Colossus.java index e19886d4a..86074595b 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Colossus.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Colossus.java @@ -17,8 +17,8 @@ public class Colossus extends Skill SetDesc(new String[] { - "You are so huge that you do not", - "take any knockback from attacks." + "You are so huge that you take", + "#25#25 % less knockback from attacks." }); } @@ -36,7 +36,7 @@ public class Colossus extends Skill //Damage event.AddMod(damagee.getName(), GetName(), 0, false); - event.SetKnockback(false); + event.AddKnockback(GetName(), 0.75 - 0.25*level); } @Override diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/CripplingBlow.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/CripplingBlow.java index 9d85fd230..252d4cd22 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/CripplingBlow.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/CripplingBlow.java @@ -23,7 +23,7 @@ public class CripplingBlow extends Skill SetDesc(new String[] { "Your powerful axe attacks give", - "targets Slow 1 for 1.5 second,", + "targets Slow 2 for 1.5 second,", "as well as no knockback." }); } @@ -53,7 +53,7 @@ public class CripplingBlow extends Skill if (level == 0) return; //Stun - Factory.Condition().Factory().Slow(GetName(), damagee, damager, 0.5 + 0.5 * 1, 0, false, true, false, true); + Factory.Condition().Factory().Slow(GetName(), damagee, damager, 0.5 + 0.5 * 1, 1, false, true, false, true); //Damage event.AddMod(damager.getName(), GetName(), 0, true); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/DwarfToss.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/DwarfToss.java index b078c8a9b..e9236c01e 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/DwarfToss.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/DwarfToss.java @@ -2,6 +2,7 @@ package mineplex.minecraft.game.classcombat.Skill.Brute; import java.util.HashSet; +import org.bukkit.Bukkit; import org.bukkit.EntityEffect; import org.bukkit.GameMode; import org.bukkit.Material; @@ -298,28 +299,37 @@ public class DwarfToss extends SkillActive UtilPlayer.message(cur, F.main(GetClassType().name(), F.name(UtilEnt.getName(target)) + " escaped your " + F.skill(GetName(level)) + ".")); } - for (Player cur : throwSet) + for (final Player cur : throwSet) { - LivingEntity target = _holding.remove(cur); + final LivingEntity target = _holding.remove(cur); _time.remove(cur); int level = getLevel(cur); //Throw cur.eject(); target.leaveVehicle(); - double mult = 1.2 + (0.2 * level); + final double mult = 1.2 + (0.2 * level); - UtilAction.velocity(target, cur.getLocation().getDirection(), mult, false, 0, 0.2, 1.2, true); - - //Condition - Factory.Condition().Factory().Falling(GetName(), target, cur, 10, false, true); + //Delay + Bukkit.getScheduler().scheduleSyncDelayedTask(Factory.getPlugin(), new Runnable() + { + @Override + public void run() + { + UtilAction.velocity(target, cur.getLocation().getDirection(), mult, false, 0, 0.2, 1.2, true); + + //Condition + Factory.Condition().Factory().Falling(GetName(), target, cur, 10, false, true); + + //Effect + target.playEffect(EntityEffect.HURT); + } + + }, 4); //Inform UtilPlayer.message(cur, F.main(GetClassType().name(), "You threw " + F.name(UtilEnt.getName(target)) + " with " + F.skill(GetName(level)) + ".")); UtilPlayer.message(target, F.main(GetClassType().name(), F.name(cur.getName()) + " threw you with " + F.skill(GetName(level)) + ".")); - - //Effect - target.playEffect(EntityEffect.HURT); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Overwhelm.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Overwhelm.java index dd16ffaca..50001ce48 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Overwhelm.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/Overwhelm.java @@ -23,7 +23,7 @@ public class Overwhelm extends Skill "than your target, you deal 0.25", "bonus damage", "", - "Maximum of #0#1 bonus damage." + "Maximum of #0.5#0.5 bonus damage." }); } @@ -52,7 +52,7 @@ public class Overwhelm extends Skill int level = getLevel(damager); if (level == 0) return; - diff = Math.min(diff, level); + diff = Math.min(diff, 0.5 + 0.5 * level); //Damage event.AddMod(damager.getName(), GetName(), diff, true); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/WhirlwindAxe.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/WhirlwindAxe.java index 8c93a2b43..ec172fd73 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/WhirlwindAxe.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Brute/WhirlwindAxe.java @@ -42,9 +42,8 @@ public class WhirlwindAxe extends SkillActive SetDesc(new String[] { "Whirl your axes around rapidly dealing", - "#4#1 damage to nearby enemies, and", - "pulling enemies within #5#1 blocks", - "towards you.", + "up to #3#1 damage to enemies within", + "#4#1 blocks, pulling them towards you.", }); this.setAchievementSkill(true); @@ -66,17 +65,21 @@ public class WhirlwindAxe extends SkillActive public void Skill(final Player player, int level) { //Pull + Damage - HashMap targets = UtilEnt.getInRadius(player.getLocation(), 5d + 1 * level); + HashMap targets = UtilEnt.getInRadius(player.getLocation(), 4d + 1 * level); for (LivingEntity cur : targets.keySet()) { if (cur.equals(player)) continue; + if (cur instanceof Player) + if (!Factory.Relation().canHurt((Player)cur, player)) + continue; + //Damage Event if (UtilMath.offset(cur, player) < 4) { Factory.Damage().NewDamageEvent(cur, player, null, - DamageCause.CUSTOM, 4 + level, false, true, false, + DamageCause.CUSTOM, 2 + (1 + level) * targets.get(cur), false, true, false, player.getName(), GetName()); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/AxeThrow.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/AxeThrow.java index daf1b4245..478392b57 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/AxeThrow.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/AxeThrow.java @@ -59,7 +59,7 @@ public class AxeThrow extends SkillActive implements IThrown "collides with anything.", "", "Your axe is returned to you if you do", - "not pick it up within #20#-2 seconds." + "not pick it up within #15#-1 seconds." }); setAchievementSkill(true); @@ -186,7 +186,7 @@ public class AxeThrow extends SkillActive implements IThrown int level = getLevel(player); - if (item.getTicksLived() > 400 - level * 40) + if (item.getTicksLived() > 300 - level * 40) { _thrown.get(item).getInventory().addItem(item.getItemStack()); item.remove(); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/DefensiveStance.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/DefensiveStance.java index 24819aabb..5935feefe 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/DefensiveStance.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/DefensiveStance.java @@ -15,6 +15,7 @@ import org.bukkit.util.Vector; import mineplex.minecraft.game.classcombat.Class.IPvpClass.ClassType; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import mineplex.core.common.util.UtilAlg; +import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilTime; import mineplex.minecraft.game.classcombat.Skill.SkillActive; import mineplex.minecraft.game.classcombat.Skill.SkillFactory; @@ -85,6 +86,9 @@ public class DefensiveStance extends SkillActive if (event.GetCause() != DamageCause.ENTITY_ATTACK && event.GetCause() != DamageCause.PROJECTILE) return; + + if (UtilEnt.inWater(event.GetDamageeEntity())) + return; Player damagee = event.GetDamageePlayer(); if (damagee == null) return; @@ -112,7 +116,10 @@ public class DefensiveStance extends SkillActive } //Damage - event.SetCancelled(GetName() + " Defense"); + if (event.GetCause() == DamageCause.ENTITY_ATTACK) + event.AddMult(GetName(), GetName(), 0.1, false); + else + event.SetCancelled(GetName() + " Defense"); //Effect damagee.getWorld().playSound(damagee.getLocation(), Sound.ZOMBIE_METAL, 1f, 2f); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/Deflection.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/Deflection.java index 75bae265b..32b148220 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/Deflection.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/Deflection.java @@ -29,7 +29,7 @@ public class Deflection extends Skill { "Prepare to deflect incoming attacks.", "You gain 1 Charge every #5#-1 seconds.", - "You can store a maximum of #2#1 Charges.", + "You can store a maximum of #1#1 Charges.", "", "When you are attacked, the damage is", "reduced by the number of your Charges,", @@ -73,7 +73,7 @@ public class Deflection extends Skill if (!Recharge.Instance.use(cur, GetName(), 5000 - (1000 * level), false, false)) continue; - int max = 2 + (1 * level); + int max = 1 + (1 * level); int charge = 1; if (_charges.containsKey(cur)) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/HiltSmash.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/HiltSmash.java index 6979bbcff..9e743cea2 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/HiltSmash.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Knight/HiltSmash.java @@ -17,6 +17,7 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent; import mineplex.core.common.util.F; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; +import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; @@ -46,13 +47,19 @@ public class HiltSmash extends SkillActive { "Smash the hilt of your sword into", "your opponent, dealing #2#1 damage", - "and Slow 4 for #0.5#0.5 seconds." + "and Slow 3 for #0.5#0.5 seconds." }); } @Override public boolean CustomCheck(Player player, int level) { + if (UtilEnt.inWater(player)) + { + UtilPlayer.message(player, F.main("Skill", "You cannot use " + F.skill(GetName()) + " in water.")); + return false; + } + if (_used.contains(player)) return false; @@ -111,6 +118,9 @@ public class HiltSmash extends SkillActive { if (event.isCancelled()) return; + + if (UtilEnt.inWater(event.getPlayer())) + return; Player player = event.getPlayer(); @@ -123,12 +133,15 @@ public class HiltSmash extends SkillActive Entity ent = event.getRightClicked(); + if (UtilPlayer.isSpectator(ent)) + return; + if (ent == null) return; if (!(ent instanceof LivingEntity)) return; - + if (UtilMath.offset(player, ent) > 4) { UtilPlayer.message(player, F.main(GetClassType().name(), "You missed " + F.skill(GetName()) + ".")); @@ -169,7 +182,7 @@ public class HiltSmash extends SkillActive return; //Condition - Factory.Condition().Factory().Slow(GetName(), damagee, damager, 0.5 + 0.5 * level, 4, false, true, true, true); + Factory.Condition().Factory().Slow(GetName(), damagee, damager, 0.5 + 0.5 * level, 2, false, true, true, true); //Effect damagee.getWorld().playSound(damagee.getLocation(), Sound.ZOMBIE_WOOD, 1f, 1.2f); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Blizzard.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Blizzard.java index 83782befe..b95d909fb 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Blizzard.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Blizzard.java @@ -66,7 +66,7 @@ public class Blizzard extends SkillActive @Override public String GetEnergyString() { - return "Energy: #32#-2 per Second"; + return "Energy: #34#-2 per Second"; } @Override @@ -113,7 +113,7 @@ public class Blizzard extends SkillActive } //Energy - if (!Factory.Energy().Use(cur, GetName(), 1.6 - (0.1 * level), true, true)) + if (!Factory.Energy().Use(cur, GetName(), 1.7 - (0.1 * level), true, true)) { _active.remove(cur); continue; diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java index 592c595f8..2b56bba57 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/IcePrison.java @@ -71,10 +71,10 @@ public class IcePrison extends SkillActive implements IThrown Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(79)); item.setVelocity(player.getLocation().getDirection()); Factory.Projectile().AddThrow(item, player, this, System.currentTimeMillis() + 2000, true, false, false, - Sound.FIZZ, 0.6f, 1.6f, ParticleType.SNOW_SHOVEL, UpdateType.TICK, 2d); - + Sound.FIZZ, 0.6f, 1.6f, ParticleType.SNOW_SHOVEL, UpdateType.TICK, 1.5d); + //Inform - UtilPlayer.message(player, F.main(GetClassType().name(), "You used " + F.skill(GetName(level)) + ".")); + UtilPlayer.message(player, F.main(GetClassType().name(), "You used " + F.skill(GetName(level)) + ".")); //Effect item.getWorld().playSound(item.getLocation(), Sound.SILVERFISH_HIT, 2f, 1f); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java index 1fb9140b6..cced308da 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Inferno.java @@ -53,7 +53,7 @@ public class Inferno extends SkillActive @Override public String GetEnergyString() { - return "Energy: #30#-2 per Second"; + return "Energy: #34#-2 per Second"; } @Override @@ -100,7 +100,7 @@ public class Inferno extends SkillActive } //Energy - if (!Factory.Energy().Use(cur, GetName(), 1.5 - (0.1 * level), true, false)) + if (!Factory.Energy().Use(cur, GetName(), 1.7 - (0.1 * level), true, false)) { _active.remove(cur); continue; diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LifeBondsData.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LifeBondsData.java index 62b15b37b..a2a54c0fa 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LifeBondsData.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LifeBondsData.java @@ -33,8 +33,7 @@ public class LifeBondsData return true; } - - _loc.add(UtilAlg.getTrajectory(_loc, _target.getLocation().add(0, 0.8, 0)).multiply(0.5)); + _loc.add(UtilAlg.getTrajectory(_loc, _target.getLocation().add(0, 0.8, 0)).multiply(0.9)); UtilParticle.PlayParticle(ParticleType.HEART, _loc, 0, 0, 0, 0, 1); return false; diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java index c7119f0b1..b7e3f3b00 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/LightningOrb.java @@ -102,7 +102,7 @@ public class LightningOrb extends SkillActive implements IThrown Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(57)); item.setVelocity(player.getLocation().getDirection()); Factory.Projectile().AddThrow(item, player, this, System.currentTimeMillis() + 5000 - (400 * level), true, false, false, - Sound.FIZZ, 0.6f, 1.6f, ParticleType.FIREWORKS_SPARK, UpdateType.TICK, 1.5d); + Sound.FIZZ, 0.6f, 1.6f, ParticleType.FIREWORKS_SPARK, UpdateType.TICK, 2d); //Inform UtilPlayer.message(player, F.main(GetClassType().name(), "You used " + F.skill(GetName(level)) + ".")); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java index 10e364d40..7c343e2d6 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/StaticLazer.java @@ -33,7 +33,7 @@ public class StaticLazer extends SkillChargeSword int cost, int maxLevel) { super(skills, name, classType, skillType, cost, maxLevel, - 0.012f, 0.008f, + 0.012f, 0.004f, 12000, -1000, true, true, false, true); @@ -45,11 +45,12 @@ public class StaticLazer extends SkillChargeSword GetChargeString(), "Taking damage cancels charge.", "", - "Deals up to #7#1 damage and travels", - "up to #20#10 blocks.", + "Deals #6#1 damage and travels up to", + "#20#10 blocks.", }); - _fireOnFull = true; + _fireOnFull = false; + _energyPerCharge = 1.2f; setAchievementSkill(true); } @@ -58,6 +59,12 @@ public class StaticLazer extends SkillChargeSword { return "Recharge: " + "#12#-1 Seconds"; } + + @Override + public String GetEnergyString() + { + return "Energy: " + "24 per Second"; + } @Override public void DoSkillCustom(Player player, float charge) @@ -105,7 +112,7 @@ public class StaticLazer extends SkillChargeSword //Damage Event Factory.Damage().NewDamageEvent(other, player, null, - DamageCause.CUSTOM, (2 + (5 + level) * hit.get(other)) * charge, true, true, false, + DamageCause.CUSTOM, 6 + level * charge, true, true, false, player.getName(), GetName()); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Void.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Void.java index 149ae1336..950ce0293 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Void.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Mage/Void.java @@ -33,7 +33,7 @@ public class Void extends Skill "Drop Axe/Sword to Toggle.", "", "While in void form, you receive", - "Slow 2, take no knockback and", + "Slow 3, take no knockback and", "use no energy to swing weapons.", "", "Reduces incoming damage by #1#1 , but", @@ -144,8 +144,8 @@ public class Void extends Skill continue; //Condition - Factory.Condition().Factory().Invisible(GetName(), cur, cur, 1.9, 0, false, true, true); - Factory.Condition().Factory().Slow(GetName(), cur, cur, 1.9, 1, false, true, false, true); + Factory.Condition().Factory().Invisible(GetName(), cur, cur, 1.9, 1, false, true, true); + Factory.Condition().Factory().Slow(GetName(), cur, cur, 1.9, 2, false, true, false, true); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Agility.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Agility.java index fb2a899f3..aff5b5bc0 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Agility.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Agility.java @@ -45,7 +45,7 @@ public class Agility extends SkillActive SetDesc(new String[] { "Sprint with great agility, gaining", - "Speed I for #3#1 seconds. You take", + "Speed 2 for #3#1 seconds. You take", "#45#5 % less damage and take no knockback.", "", "Agility ends if you Left-Click." @@ -68,7 +68,7 @@ public class Agility extends SkillActive public void Skill(Player player, int level) { //Action - Factory.Condition().Factory().Speed(GetName(), player, player, 3 + level, 0, false, true, true); + Factory.Condition().Factory().Speed(GetName(), player, player, 3 + level, 1, false, true, true); _active.add(player); //Inform diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Disengage.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Disengage.java index 231db08bb..a5e872bcb 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Disengage.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Disengage.java @@ -21,6 +21,7 @@ import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilPlayer; +import mineplex.core.common.util.UtilTime; import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.minecraft.game.classcombat.Skill.SkillActive; import mineplex.minecraft.game.classcombat.Skill.SkillFactory; @@ -28,7 +29,8 @@ import mineplex.minecraft.game.classcombat.Skill.SkillFactory; public class Disengage extends SkillActive { private HashMap _prepare = new HashMap(); - + private HashMap _fall = new HashMap(); + public Disengage(SkillFactory skills, String name, ClassType classType, SkillType skillType, int cost, int levels, int energy, int energyMod, @@ -118,8 +120,10 @@ public class Disengage extends SkillActive //Condition Factory.Condition().Factory().Slow(GetName(), damager, damagee, 2.5 + (0.5 * level), 3, false, true, true, true); - Factory.Condition().Factory().Invulnerable(GetName(), damagee, damagee, 2, false, false); + Factory.Condition().Factory().Invulnerable(GetName(), damagee, damagee, 1, false, false); + _fall.put(damagee, System.currentTimeMillis()); + //Effect damagee.getWorld().playSound(damager.getLocation(), Sound.ZOMBIE_METAL, 0.5f, 1.6f); UtilParticle.PlayParticle(ParticleType.ANGRY_VILLAGER, damager.getEyeLocation(), 0, 0, 0, 0, 1); @@ -135,26 +139,53 @@ public class Disengage extends SkillActive { if (event.getType() != UpdateType.TICK) return; - + for (Player cur : GetUsers()) { - if (!_prepare.containsKey(cur)) - continue; - - if (System.currentTimeMillis() > _prepare.get(cur)) + if (_fall.containsKey(cur)) { - //Remove - _prepare.remove(cur); - - //Inform - UtilPlayer.message(cur, F.main(GetClassType().name(), "You failed to " + F.skill(GetName()) + ".")); + if (UtilTime.elapsed(_fall.get(cur), 2000)) + { + if (UtilEnt.isGrounded(cur) || UtilTime.elapsed(_fall.get(cur), 20000)) + { + _fall.remove(cur); + } + } } + + if (_prepare.containsKey(cur)) + { + if (System.currentTimeMillis() > _prepare.get(cur)) + { + //Remove + _prepare.remove(cur); + + //Inform + UtilPlayer.message(cur, F.main(GetClassType().name(), "You failed to " + F.skill(GetName()) + ".")); + } + } + } + } + + @EventHandler(priority = EventPriority.LOW) + public void fallCancel(CustomDamageEvent event) + { + if (event.IsCancelled()) + return; + + if (event.GetCause() != DamageCause.FALL) + return; + + if (_fall.remove(event.GetDamageeEntity()) != null) + { + event.SetCancelled(GetName() + " Fall"); } } @Override public void Reset(Player player) { + _fall.remove(player); _prepare.remove(player); } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HealingShot.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HealingShot.java index c29eb1021..8a92aea48 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HealingShot.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HealingShot.java @@ -55,7 +55,7 @@ public class HealingShot extends SkillActive { "Prepare a healing shot;", "Your next arrow will give its target", - "Regeneration 1 for #2#2 seconds,", + "Regeneration 2 for #3#2 seconds,", "and remove all negative effects." }); } @@ -148,7 +148,7 @@ public class HealingShot extends SkillActive projectile.remove(); //Regen - Factory.Condition().Factory().Regen(GetName(), damagee, damager, 2 + 2 * level, 0, false, true, true); + Factory.Condition().Factory().Regen(GetName(), damagee, damager, 3 + 2 * level, 1, false, true, true); //Remove Bad damagee.setFireTicks(0); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HeavyArrows.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HeavyArrows.java index 6f1a142cd..9848193ed 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HeavyArrows.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/HeavyArrows.java @@ -39,7 +39,7 @@ public class HeavyArrows extends Skill "as well as #1#1 additional damage.", "", "You also receive #10#10 % knockback", - "when firing arrows.", + "when firing arrows if not sneaking.", }); } @@ -59,11 +59,11 @@ public class HeavyArrows extends Skill if (level == 0) return; //Backboost - if (Recharge.Instance.use(player, GetName(), 500, false, false)) + if (!player.isSneaking() && Recharge.Instance.use(player, GetName(), 750, false, false)) { double vel = (event.getProjectile().getVelocity().length() * (0.1 + 0.1 * level)); UtilAction.velocity(player, player.getLocation().getDirection().multiply(-1), vel, - false, 0, 0.2, 0.6, true); + false, 0, 0.3, 0.6, true); } //Decrease Speed diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Longshot.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Longshot.java index a3abf916e..102f8110e 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Longshot.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Longshot.java @@ -25,7 +25,7 @@ public class Longshot extends Skill SetDesc(new String[] { "Arrows do an additional 1 damage", "for every #4#-0.5 Blocks they travelled,", - "however, their base damage is", "reduced by 3.", "", "Maximum of #5#5 additional damage." + "however, their base damage is", "reduced by 3.", "", "Maximum of #6#6 additional damage." }); } @@ -70,7 +70,7 @@ public class Longshot extends Skill double length = UtilMath.offset(loc, projectile.getLocation()); // Damage - double damage = Math.min(5 + 5 * level, (length / (4 - 0.5 * level)) - 3); + double damage = Math.min(6 + 6 * level, (length / (4 - 0.5 * level)) - 3); event.AddMod(damager.getName(), GetName(), damage, damage > 0); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Overcharge.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Overcharge.java index e4e71d223..88412d922 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Overcharge.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Overcharge.java @@ -40,7 +40,7 @@ public class Overcharge extends SkillChargeBow "", GetChargeString(), "", - "Deals up to #0#1 bonus damage." + "Deals up to #1.5#1.5 bonus damage." }); } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Sharpshooter.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Sharpshooter.java index 5fa378428..6946be806 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Sharpshooter.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/Sharpshooter.java @@ -72,7 +72,10 @@ public class Sharpshooter extends Skill Player player = _arrows.remove(projectile); int level = getLevel(player); - + + if (event.GetDamagerEntity(true) != null && event.GetDamagerEntity(true).equals(event.GetDamageeEntity())) + return; + if (_hitCount.containsKey(player)) { //Damage diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/VitalitySpores.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/VitalitySpores.java index 55abc63f9..fa39af241 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/VitalitySpores.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/VitalitySpores.java @@ -6,6 +6,7 @@ import org.bukkit.event.EventHandler; import mineplex.minecraft.game.classcombat.Class.IPvpClass.ClassType; import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.UpdateType; +import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilParticle; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilTime; @@ -40,12 +41,12 @@ public class VitalitySpores extends Skill int level = getLevel(cur); if (level == 0) continue; - if (UtilTime.elapsed(Factory.Combat().Get(cur).GetLastDamaged(), 12000 - 2000*level)) + if (UtilTime.elapsed(Factory.Combat().Get(cur).GetLastDamaged(), 5000 - 1000*level)) { //Factory.Condition().Factory().Regen(GetName(), cur, cur, 3.9 + 2*level, 0, false, true, true); UtilPlayer.health(cur, 1); - UtilParticle.PlayParticle(ParticleType.HEART, cur.getEyeLocation(), 0, 0.2f, 0, 0, 1); + UtilParticle.PlayParticle(ParticleType.HEART, cur.getEyeLocation().add(UtilAlg.getBehind(cur.getLocation().getDirection().multiply(0.5))), 0, 0.2f, 0, 0, 1); } } } diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/WolfsPounce.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/WolfsPounce.java index dd6753902..5a827d651 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/WolfsPounce.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Ranger/WolfsPounce.java @@ -33,7 +33,7 @@ public class WolfsPounce extends SkillChargeSword { super(skills, name, classType, skillType, cost, maxLevel, 0.012f, 0.008f, - 7000, -1000, true, true, + 8000, -1000, true, true, false, false); SetDesc(new String[] @@ -88,7 +88,7 @@ public class WolfsPounce extends SkillChargeSword if (!_live.containsKey(player)) continue; - if (!UtilTime.elapsed(_live.get(player), 2000)) + if (!UtilTime.elapsed(_live.get(player), 1000)) continue; _live.remove(player); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillCharge.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillCharge.java index 2825c5f93..9925302f8 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillCharge.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillCharge.java @@ -14,6 +14,8 @@ public class SkillCharge extends Skill protected float _rateBase; protected float _rateBoost; + protected float _energyPerCharge = 0; + public SkillCharge(SkillFactory skills, String name, ClassType classType, SkillType skillType, int cost, int maxLevel, float base, float boost) @@ -36,6 +38,24 @@ public class SkillCharge extends Skill _charge.put(player, 0f); float charge = _charge.get(player); + + if (charge >= 1) + { + //Display + DisplayProgress(player, GetName(level), charge); + return true; + } + + //Energy + if (_energyPerCharge > 0) + { + if (!Factory.Energy().Use(player, GetName(), _energyPerCharge, true, false)) + { + //Display + DisplayProgress(player, GetName(level), charge); + return true; + } + } //Increase Charge charge = Math.min(1f, charge + _rateBase + (_rateBoost * level)); diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java index 543e45572..bae3ebf03 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/SkillFactory.java @@ -171,7 +171,7 @@ public class SkillFactory extends MiniPlugin implements ISkillFactory AddSkill(new Illusion(this, "Illusion", ClassType.Assassin, SkillType.Sword, 1, 4, 50, -4, - 20000, -1000, true, + 17000, -1000, true, new Material[] {Material.IRON_SWORD, Material.GOLD_SWORD, Material.DIAMOND_SWORD}, new Action[] {Action.RIGHT_CLICK_AIR, Action.RIGHT_CLICK_BLOCK})); @@ -193,7 +193,7 @@ public class SkillFactory extends MiniPlugin implements ISkillFactory AddSkill(new Leap(this, "Leap", ClassType.Assassin, SkillType.Axe, 1, 4, 36, -3, - 9500, -1500, true, + 10500, -1500, true, new Material[] {Material.IRON_AXE, Material.GOLD_AXE, Material.DIAMOND_AXE}, new Action[] {Action.RIGHT_CLICK_AIR, Action.RIGHT_CLICK_BLOCK})); @@ -282,7 +282,7 @@ public class SkillFactory extends MiniPlugin implements ISkillFactory //Passive B AddSkill(new CripplingBlow(this, "Crippling Blow", ClassType.Brute, SkillType.PassiveB, 2, 1)); - AddSkill(new Colossus(this, "Colossus", ClassType.Brute, SkillType.PassiveB, 2, 1)); + AddSkill(new Colossus(this, "Colossus", ClassType.Brute, SkillType.PassiveB, 1, 3)); AddSkill(new Overwhelm(this, "Overwhelm", ClassType.Brute, SkillType.PassiveB, 1, 3)); } @@ -386,7 +386,7 @@ public class SkillFactory extends MiniPlugin implements ISkillFactory AddSkill(new FireBlast(this, "Fire Blast", ClassType.Mage, SkillType.Axe, 1, 5, 60, -3, - 11000, -1000, true, + 13000, -1000, true, new Material[] {Material.IRON_AXE, Material.GOLD_AXE, Material.DIAMOND_AXE}, new Action[] {Action.RIGHT_CLICK_AIR, Action.RIGHT_CLICK_BLOCK})); diff --git a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java index 5cd36efd5..69a258f60 100644 --- a/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java +++ b/Plugins/Mineplex.Minecraft.Game.Core/src/mineplex/minecraft/game/core/damage/DamageManager.java @@ -21,6 +21,7 @@ import net.minecraft.server.v1_7_R4.DamageSource; import net.minecraft.server.v1_7_R4.EntityHuman; import net.minecraft.server.v1_7_R4.EntityLiving; +import org.bukkit.Bukkit; import org.bukkit.EntityEffect; import org.bukkit.GameMode; import org.bukkit.Location; @@ -99,9 +100,17 @@ public class DamageManager extends MiniPlugin //Pre-Event Modifications if (!DisableDamageChanges) WeaponDamage(event, damager); + + double damage = event.getDamage(); + + //Consistent Arrow Damage + if (projectile != null && projectile instanceof Arrow) + { + damage = projectile.getVelocity().length() * 3; + } //New Event - NewDamageEvent(damagee, damager, projectile, event.getCause(), event.getDamage(), true, false, false, null, null, preCancel); + NewDamageEvent(damagee, damager, projectile, event.getCause(), damage, true, false, false, null, null, preCancel); //System.out.println(UtilEnt.getName(damagee) + " by " + event.getCause() + " at " + UtilWorld.locToStr(damagee.getLocation())); diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java index 3c710989d..13aab5ea5 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/ArcadeManager.java @@ -115,7 +115,7 @@ import nautilus.game.arcade.shop.ArcadeShop; public class ArcadeManager extends MiniPlugin implements IRelation { - // Modules + // Modules private BlockRestore _blockRestore; private Blood _blood; private Chat _chat; @@ -131,7 +131,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation private Fire _fire; private ProjectileManager _projectileManager; - private Portal _portal; + private Portal _portal; private ArcadeShop _arcadeShop; //Champions Modules diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/dominate_data/CapturePoint.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/dominate_data/CapturePoint.java index ba8a84196..ac022741b 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/dominate_data/CapturePoint.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/common/dominate_data/CapturePoint.java @@ -301,6 +301,8 @@ public class CapturePoint RewardCapture(player, 30); } } + + UtilTextMiddle.display(null, _owner.GetColor() + _owner.GetName() + " captured " + _name, 5, 40, 5); } } //Count Down diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java index 8fdc41db5..7a7c00480 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/GameFlagManager.java @@ -11,6 +11,7 @@ import mineplex.core.common.util.UtilInv; import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilTextMiddle; import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.recharge.Recharge; import mineplex.core.teleport.event.MineplexTeleportEvent; @@ -713,6 +714,7 @@ public class GameFlagManager implements Listener UtilAction.velocity(player, new Vector(0,0,0), 1, true, 0.4, 0, 1, true); UtilPlayer.message(player, C.cWhite + C.Bold + "You will respawn in " + time + " seconds..."); + UtilTextMiddle.display(null, "Respawning in " + time + " seconds...", 5, 40, 5, player); Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() { @@ -727,7 +729,7 @@ public class GameFlagManager implements Listener { Manager.addSpectator(player, true); } - + player.setFireTicks(0); player.setVelocity(new Vector(0,0,0)); }