v1.4.0: fixed cases where magical explosions didn't award friendly fire
This commit is contained in:
+1
-1
@@ -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;
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ public class StoneOfBlast extends Runestone {
|
||||
|
||||
@Override
|
||||
protected void activate(int cell) {
|
||||
new Bomb().explode(cell);
|
||||
new Bomb.MagicalBomb().explode(cell);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ public class Explosive extends Weapon.Enchantment {
|
||||
}
|
||||
}
|
||||
|
||||
new Bomb().explode(explosionPos);
|
||||
new Bomb.MagicalBomb().explode(explosionPos);
|
||||
|
||||
durability = 100;
|
||||
Item.updateQuickslot();
|
||||
|
||||
Reference in New Issue
Block a user