From 1ce9b5d1d5312e6a0da0acb896d6d43b7af3cd4f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 20 Mar 2023 17:00:05 -0400 Subject: [PATCH] v2.0.1: added various safety checks for rare crashes --- .../shatteredpixeldungeon/actors/hero/Hero.java | 6 ++++++ .../shatteredpixeldungeon/actors/mobs/Mob.java | 2 +- .../shatteredpixel/shatteredpixeldungeon/items/Item.java | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) 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 ) {