diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java index 85cc9eb0f..fe124c9d4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ArcaneBomb.java @@ -37,7 +37,7 @@ import com.watabou.utils.Random; import java.util.ArrayList; -public class ArcaneBomb extends Bomb { +public class ArcaneBomb extends Bomb.MagicalBomb { { image = ItemSpriteSheet.ARCANE_BOMB; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java index b5a41a6ad..a279bdb5c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.bombs; import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; @@ -192,6 +193,9 @@ public class Bomb extends Item { } if (ch == Dungeon.hero && !ch.isAlive()) { + if (this instanceof MagicalBomb){ + Badges.validateDeathFromFriendlyMagic(); + } Dungeon.fail(Bomb.class); } } @@ -255,6 +259,8 @@ public class Bomb extends Item { Actor.add( fuse = ((Fuse)bundle.get(FUSE)).ignite(this) ); } + //used to track the death from friendly magic badge + public static class MagicalBomb extends Bomb{}; public static class Fuse extends Actor{ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java index 26fef30e9..178e7509f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HolyBomb.java @@ -36,7 +36,7 @@ import com.watabou.utils.Random; import java.util.ArrayList; -public class HolyBomb extends Bomb { +public class HolyBomb extends Bomb.MagicalBomb { { image = ItemSpriteSheet.HOLY_BOMB; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfBlast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfBlast.java index ba88ac0aa..1d1a5735e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfBlast.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfBlast.java @@ -32,7 +32,7 @@ public class StoneOfBlast extends Runestone { @Override protected void activate(int cell) { - new Bomb().explode(cell); + new Bomb.MagicalBomb().explode(cell); } } 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 406054fdf..f6edb8536 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 @@ -243,9 +243,10 @@ public class CursedWand { //Bomb explosion case 2: - new Bomb().explode(targetPos); - if (user == Dungeon.hero && !user.isAlive()){ - Badges.validateDeathFromFriendlyMagic(); + if (user == Dungeon.hero) { + new Bomb.MagicalBomb().explode(targetPos); + } else { + new Bomb().explode(targetPos); } tryForWandProc(Actor.findChar(targetPos), origin); return true; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Explosive.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Explosive.java index bca91fa53..9c6b4f037 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Explosive.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/curses/Explosive.java @@ -76,7 +76,7 @@ public class Explosive extends Weapon.Enchantment { } } - new Bomb().explode(explosionPos); + new Bomb.MagicalBomb().explode(explosionPos); durability = 100; Item.updateQuickslot();