diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 606ffee21..1ac7729f2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -1992,6 +1992,12 @@ public class Hero extends Char { @Override public void onAttackComplete() { + + if (enemy == null){ + curAction = null; + super.onAttackComplete(); + return; + } AttackIndicator.target(enemy); boolean wasEnemy = enemy.alignment == Alignment.ENEMY 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 09275c787..863090bbb 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 @@ -698,7 +698,7 @@ public abstract class Mob extends Char { public boolean surprisedBy( Char enemy, boolean attacking ){ return enemy == Dungeon.hero - && (enemy.invisible > 0 || !enemySeen || (fieldOfView != null && !fieldOfView[enemy.pos])) + && (enemy.invisible > 0 || !enemySeen || (fieldOfView != null && fieldOfView.length == Dungeon.level.length() && !fieldOfView[enemy.pos])) && (!attacking || enemy.canSurpriseAttack()); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java index 7a7578878..64f3bad37 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java @@ -172,7 +172,10 @@ public class Item implements Bundlable { } public void execute( Hero hero ) { - execute( hero, defaultAction() ); + String action = defaultAction(); + if (action != null) { + execute(hero, defaultAction()); + } } protected void onThrow( int cell ) {