Nerfed MetalClips

Made MetalClips' fourth clip require that the user have a permission,
and changed the overall dynamic of it.
This commit is contained in:
Brendan Wilson 2014-11-29 13:28:55 -05:00
parent c5a8a4f773
commit b55d8caa5e
2 changed files with 24 additions and 8 deletions

View file

@ -46,6 +46,7 @@ public class MetalClips
public int var; public int var;
private long startTime; private long startTime;
private long time; private long time;
private double lastDistanceCheck;
private ItemStack[] oldarmor; private ItemStack[] oldarmor;
private List<Item> trackedIngots = new ArrayList<Item>(); private List<Item> trackedIngots = new ArrayList<Item>();
@ -134,6 +135,9 @@ public class MetalClips
if(metalclips >= 4) if(metalclips >= 4)
return; return;
if(metalclips == 3 && !player.hasPermission("bending.ability.MetalClips.4clips"))
return;
metalclips = (metalclips < 4) ? metalclips + 1 : 4; metalclips = (metalclips < 4) ? metalclips + 1 : 4;
if(target instanceof Player) if(target instanceof Player)
@ -167,7 +171,11 @@ public class MetalClips
target.getEquipment().setArmorContents(metalarmor); target.getEquipment().setArmorContents(metalarmor);
} }
if(metalclips == 4) time = System.currentTimeMillis(); if(metalclips == 4)
{
time = System.currentTimeMillis();
lastDistanceCheck = player.getLocation().distance(target.getLocation());
}
startTime = System.currentTimeMillis(); startTime = System.currentTimeMillis();
isBeingWorn = true; isBeingWorn = true;
} }
@ -365,7 +373,6 @@ public class MetalClips
if(distance > .5) if(distance > .5)
target.setVelocity(v.normalize().multiply(0.2)); target.setVelocity(v.normalize().multiply(0.2));
Methods.breakBreathbendingHold(target);
} }
if(metalclips == 2) if(metalclips == 2)
@ -380,7 +387,6 @@ public class MetalClips
if(distance > 1.2) if(distance > 1.2)
target.setVelocity(v.normalize().multiply(0.2)); target.setVelocity(v.normalize().multiply(0.2));
Methods.breakBreathbendingHold(target);
} }
if(metalclips >= 3) if(metalclips >= 3)
@ -397,15 +403,24 @@ public class MetalClips
target.setVelocity(new Vector(0, 0, 0)); target.setVelocity(new Vector(0, 0, 0));
target.setFallDistance(0); target.setFallDistance(0);
Methods.breakBreathbendingHold(target);
} }
if(metalclips == 4) if(metalclips == 4 && player.hasPermission("bending.ability.MetalClips.4clips"))
{ {
if(System.currentTimeMillis() > time + crushInterval) double distance = player.getLocation().distance(target.getLocation());
if(distance < lastDistanceCheck - 0.3)
{ {
time = System.currentTimeMillis(); double height = target.getLocation().getY();
Methods.damageEntity(player, target, (crushDamage + (crushDamage * 1.2))); if(height > player.getEyeLocation().getY())
{
lastDistanceCheck = distance;
if(System.currentTimeMillis() > time + crushInterval)
{
time = System.currentTimeMillis();
Methods.damageEntity(player, target, (crushDamage + (crushDamage * 1.2)));
}
}
} }
} }
} }

View file

@ -101,6 +101,7 @@ permissions:
bending.ability.Extraction: true bending.ability.Extraction: true
bending.ability.MetalClips: true bending.ability.MetalClips: true
bending.ability.MetalClips.loot: false bending.ability.MetalClips.loot: false
bending.ability.MetalClips.4clips: false
bending.earth.passive: true bending.earth.passive: true
bending.earth.metalbending: true bending.earth.metalbending: true
bending.earth.lavabending: true bending.earth.lavabending: true