v0.8.2c: improved piranha surprise attack logic

This commit is contained in:
Evan Debenham
2020-08-27 11:36:33 -04:00
parent eb65e2b356
commit fc60397281

View File

@@ -84,15 +84,17 @@ public class Piranha extends Mob {
public int drRoll() { public int drRoll() {
return Random.NormalIntRange(0, Dungeon.depth); return Random.NormalIntRange(0, Dungeon.depth);
} }
@Override @Override
public int defenseSkill( Char enemy ) { public boolean surprisedBy(Char enemy) {
enemySeen = state != SLEEPING if (enemy == Dungeon.hero){
&& this.enemy != null if (fieldOfView == null || fieldOfView.length != Dungeon.level.length()){
&& fieldOfView != null fieldOfView = new boolean[Dungeon.level.length()];
&& fieldOfView[this.enemy.pos] Dungeon.level.updateFieldOfView( this, fieldOfView );
&& this.enemy.invisible == 0; }
return super.defenseSkill( enemy ); return state == SLEEPING || !fieldOfView[enemy.pos] || enemy.invisible > 0;
}
return super.surprisedBy(enemy);
} }
@Override @Override