mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2024-12-23 00:15:05 +00:00
Fixed issues with EarthGrab. (#607)
* Changes to EarthGrab (PR Fixed, I hope.) - Move now has travel time. - Added particles that travel along the ground, to represent the travel time. - Changed the functions of the move to be: Shift + click = grab other - entity, left click ground = self-grab. - Edited the default config for the description. - Edited the default range of the move, changed from 14 to 20. - Edited the default cooldown time, it is now set to 2 seconds by default. * Fixed issues with Earthgrab.
This commit is contained in:
parent
329f91fff8
commit
a756e8df89
1 changed files with 14 additions and 10 deletions
|
@ -30,6 +30,7 @@ public class EarthGrab extends EarthAbility {
|
||||||
private Vector dir;
|
private Vector dir;
|
||||||
private Block groundBlock;
|
private Block groundBlock;
|
||||||
private Material blockType;
|
private Material blockType;
|
||||||
|
private Byte blockByte;
|
||||||
private Random random;
|
private Random random;
|
||||||
|
|
||||||
public EarthGrab(Player player) {
|
public EarthGrab(Player player) {
|
||||||
|
@ -44,7 +45,7 @@ public class EarthGrab extends EarthAbility {
|
||||||
this.closestEntity = null;
|
this.closestEntity = null;
|
||||||
this.startLoc = player.getLocation();
|
this.startLoc = player.getLocation();
|
||||||
this.loc = player.getLocation();
|
this.loc = player.getLocation();
|
||||||
this.dir = player.getLocation().getDirection();
|
this.dir = player.getLocation().getDirection().clone().normalize().multiply(1.5);
|
||||||
this.random = new Random();
|
this.random = new Random();
|
||||||
|
|
||||||
if (!bPlayer.canBend(this)) {
|
if (!bPlayer.canBend(this)) {
|
||||||
|
@ -52,14 +53,15 @@ public class EarthGrab extends EarthAbility {
|
||||||
}
|
}
|
||||||
if(player.isSneaking()) {
|
if(player.isSneaking()) {
|
||||||
start();
|
start();
|
||||||
}
|
} else {
|
||||||
Location targetLocation = GeneralMethods.getTargetedLocation(player, 1);
|
Location targetLocation = GeneralMethods.getTargetedLocation(player, 1);
|
||||||
Block block = GeneralMethods.getTopBlock(targetLocation, 1);
|
Block block = GeneralMethods.getTopBlock(targetLocation, 1, 1);
|
||||||
if(isEarthbendable(block) && block.getLocation().distance(player.getLocation()) <= 2) {
|
if(isEarthbendable(block) && block.getLocation().distance(player.getLocation()) <= 1.3) {
|
||||||
earthGrabSelf();
|
earthGrabSelf();
|
||||||
remove();
|
remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void formDome() {
|
public void formDome() {
|
||||||
|
|
||||||
|
@ -113,7 +115,7 @@ public class EarthGrab extends EarthAbility {
|
||||||
closestEntity = player;
|
closestEntity = player;
|
||||||
getGround();
|
getGround();
|
||||||
ParticleEffect.BLOCK_CRACK.display(
|
ParticleEffect.BLOCK_CRACK.display(
|
||||||
(ParticleEffect.ParticleData) new ParticleEffect.BlockData(blockType, (byte) 0), 1F, 1F, 1F,
|
(ParticleEffect.ParticleData) new ParticleEffect.BlockData(blockType, blockByte), 1F, 1F, 1F,
|
||||||
0.1F, 100, player.getLocation(), 500);
|
0.1F, 100, player.getLocation(), 500);
|
||||||
if (closestEntity != null) {
|
if (closestEntity != null) {
|
||||||
ArrayList<Block> blocks = new ArrayList<Block>();
|
ArrayList<Block> blocks = new ArrayList<Block>();
|
||||||
|
@ -166,12 +168,14 @@ public class EarthGrab extends EarthAbility {
|
||||||
return "EarthGrab";
|
return "EarthGrab";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
private void getGround() {
|
private void getGround() {
|
||||||
for (int i = 0; i <= 5; i++) {
|
for (int i = 0; i <= 5; i++) {
|
||||||
Block block = loc.getBlock().getRelative(BlockFace.DOWN, i);
|
Block block = loc.getBlock().getRelative(BlockFace.DOWN, i);
|
||||||
if (isEarthbendable(block)) {
|
if (isEarthbendable(block)) {
|
||||||
groundBlock = block;
|
groundBlock = block;
|
||||||
blockType = block.getType();
|
blockType = block.getType();
|
||||||
|
blockByte = block.getData();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,7 +189,7 @@ public class EarthGrab extends EarthAbility {
|
||||||
remove();
|
remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dir = player.getLocation().getDirection().clone().normalize().multiply(1.5);
|
dir = dir.clone().normalize().multiply(1.5);
|
||||||
dir.setY(0);
|
dir.setY(0);
|
||||||
double distance = loc.getY() - (double) groundBlock.getY();
|
double distance = loc.getY() - (double) groundBlock.getY();
|
||||||
double dx = Math.abs(distance - 2.4);
|
double dx = Math.abs(distance - 2.4);
|
||||||
|
@ -198,7 +202,7 @@ public class EarthGrab extends EarthAbility {
|
||||||
}
|
}
|
||||||
loc.add(dir);
|
loc.add(dir);
|
||||||
ParticleEffect.BLOCK_CRACK.display(
|
ParticleEffect.BLOCK_CRACK.display(
|
||||||
(ParticleEffect.ParticleData) new ParticleEffect.BlockData(blockType, (byte) 0), 1F, 0.1F, 1F,
|
(ParticleEffect.ParticleData) new ParticleEffect.BlockData(blockType, blockByte), 1F, 0.1F, 1F,
|
||||||
0.1F, 100, loc.add(0, -1, 0), 500);
|
0.1F, 100, loc.add(0, -1, 0), 500);
|
||||||
if(player.isDead() || !player.isOnline()) {
|
if(player.isDead() || !player.isOnline()) {
|
||||||
remove();
|
remove();
|
||||||
|
|
Loading…
Reference in a new issue