v2.0.0: fixed DM-201s rarely lobbing grenades through closed doors
This commit is contained in:
@@ -128,7 +128,7 @@ public class DM200 extends Mob {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canVent(int target){
|
protected boolean canVent(int target){
|
||||||
if (ventCooldown > 0) return false;
|
if (ventCooldown > 0) return false;
|
||||||
PathFinder.buildDistanceMap(target, BArray.not(Dungeon.level.solid, null), Dungeon.level.distance(pos, target)+1);
|
PathFinder.buildDistanceMap(target, BArray.not(Dungeon.level.solid, null), Dungeon.level.distance(pos, target)+1);
|
||||||
//vent can go around blocking terrain, but not through it
|
//vent can go around blocking terrain, but not through it
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ public class DM201 extends DM200 {
|
|||||||
Dungeon.level.updateFieldOfView( this, fieldOfView );
|
Dungeon.level.updateFieldOfView( this, fieldOfView );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (paralysed <= 0 && state == HUNTING && enemy != null && enemySeen
|
if (paralysed <= 0 && state == HUNTING && enemy != null && enemySeen && threatened
|
||||||
&& threatened && !Dungeon.level.adjacent(pos, enemy.pos) && fieldOfView[enemy.pos]){
|
&& canVent(enemy.pos) && !Dungeon.level.adjacent(pos, enemy.pos) && fieldOfView[enemy.pos]){
|
||||||
enemySeen = enemy.isAlive() && fieldOfView[enemy.pos] && enemy.invisible <= 0;
|
enemySeen = enemy.isAlive() && fieldOfView[enemy.pos] && enemy.invisible <= 0;
|
||||||
if (sprite != null && (sprite.visible || enemy.sprite.visible)) {
|
if (sprite != null && (sprite.visible || enemy.sprite.visible)) {
|
||||||
sprite.zap( enemy.pos );
|
sprite.zap( enemy.pos );
|
||||||
|
|||||||
Reference in New Issue
Block a user