v2.3.0: fixed gnoll sappers something moving too far from starting poa
This commit is contained in:
+10
@@ -182,10 +182,20 @@ public class GnollSapper extends Mob {
|
|||||||
@Override
|
@Override
|
||||||
public boolean act(boolean enemyInFOV, boolean justAlerted) {
|
public boolean act(boolean enemyInFOV, boolean justAlerted) {
|
||||||
if (!enemyInFOV) {
|
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);
|
return super.act(enemyInFOV, justAlerted);
|
||||||
} else {
|
} else {
|
||||||
enemySeen = true;
|
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){
|
if (abilityCooldown-- <= 0){
|
||||||
boolean targetNextToBarricade = false;
|
boolean targetNextToBarricade = false;
|
||||||
for (int i : PathFinder.NEIGHBOURS8){
|
for (int i : PathFinder.NEIGHBOURS8){
|
||||||
|
|||||||
@@ -1153,7 +1153,7 @@ public abstract class Mob extends Char {
|
|||||||
if (!enemyInFOV) {
|
if (!enemyInFOV) {
|
||||||
sprite.showLost();
|
sprite.showLost();
|
||||||
state = WANDERING;
|
state = WANDERING;
|
||||||
target = Dungeon.level.randomDestination( Mob.this );
|
target = ((Mob.Wandering)WANDERING).randomDestination();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user