v0.4.2: fixed bugs with mob pathfinding

This commit is contained in:
Evan Debenham 2016-08-31 00:37:28 -04:00
parent 01aad4196c
commit 67f435319f

View File

@ -294,6 +294,18 @@ public abstract class Mob extends Char {
return false; return false;
} }
int step = -1;
if (Dungeon.level.adjacent( pos, target )) {
path = null;
if (Actor.findChar( target ) == null && Level.passable[target]) {
step = target;
}
} else {
boolean newPath = false; boolean newPath = false;
if (path == null || path.isEmpty()) if (path == null || path.isEmpty())
newPath = true; newPath = true;
@ -335,6 +347,7 @@ public abstract class Mob extends Char {
} }
if (!newPath) { if (!newPath) {
//checks the next 4 cells in the path for validity //checks the next 4 cells in the path for validity
for (int i = 0; i < Math.min(path.size(), 4); i++) { for (int i = 0; i < Math.min(path.size(), 4); i++) {
@ -355,7 +368,8 @@ public abstract class Mob extends Char {
if (path == null) if (path == null)
return false; return false;
int step = path.removeFirst(); step = path.removeFirst();
}
if (step != -1) { if (step != -1) {
move( step ); move( step );
return true; return true;