diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java index 092999544..4a898dc3c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java @@ -182,10 +182,20 @@ public class GnollSapper extends Mob { @Override public boolean act(boolean enemyInFOV, boolean justAlerted) { if (!enemyInFOV) { + if (Dungeon.level.distance(spawnPos, target) > 3){ + //don't chase something more than a few tiles out of spawning position + target = pos; + } return super.act(enemyInFOV, justAlerted); } else { enemySeen = true; + if (Actor.findById(guardID) instanceof GnollGuard + && Dungeon.level.distance(pos, enemy.pos) <= 3){ + ((GnollGuard) Actor.findById(guardID)).beckon(enemy.pos); + ((GnollGuard) Actor.findById(guardID)).aggro(enemy); + } + if (abilityCooldown-- <= 0){ boolean targetNextToBarricade = false; for (int i : PathFinder.NEIGHBOURS8){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index 56819159d..c203cc9d8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -1153,7 +1153,7 @@ public abstract class Mob extends Char { if (!enemyInFOV) { sprite.showLost(); state = WANDERING; - target = Dungeon.level.randomDestination( Mob.this ); + target = ((Mob.Wandering)WANDERING).randomDestination(); } return true; }