From 5dcb6b5ef4a746ce04b916cea76d846fc603b5ca Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 23 Aug 2017 04:07:38 -0400 Subject: [PATCH] v0.6.1b: fixed extremely rare crash caused by cursed wands --- .../items/wands/CursedWand.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java index 4641d387d..a9735d582 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java @@ -377,16 +377,20 @@ public class CursedWand { cursedFX(user, bolt, new Callback() { public void call() { Mimic mimic = Mimic.spawnAt(bolt.collisionPos, new ArrayList()); - mimic.adjustStats(Dungeon.depth + 10); - mimic.HP = mimic.HT; - Item reward; - do { - reward = Generator.random(Random.oneOf(Generator.Category.WEAPON, Generator.Category.ARMOR, - Generator.Category.RING, Generator.Category.WAND)); - } while (reward.level() < 2 && !(reward instanceof MissileWeapon)); - Sample.INSTANCE.play(Assets.SND_MIMIC, 1, 1, 0.5f); - mimic.items.clear(); - mimic.items.add(reward); + if (mimic != null) { + mimic.adjustStats(Dungeon.depth + 10); + mimic.HP = mimic.HT; + Item reward; + do { + reward = Generator.random(Random.oneOf(Generator.Category.WEAPON, Generator.Category.ARMOR, + Generator.Category.RING, Generator.Category.WAND)); + } while (reward.level() < 2 && !(reward instanceof MissileWeapon)); + Sample.INSTANCE.play(Assets.SND_MIMIC, 1, 1, 0.5f); + mimic.items.clear(); + mimic.items.add(reward); + } else { + GLog.i(Messages.get(CursedWand.class, "nothing")); + } wand.wandUsed(); }