From 2496dc0d1c064d714a3081671b31c440a046a92a Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 20 Oct 2020 17:40:26 -0400 Subject: [PATCH] v0.9.1: sniper's mark, charm and terror now detach if their targets die --- .../shatteredpixeldungeon/actors/Char.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java index 8f6c1f185..e90dbbbe6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -54,6 +54,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Preparation; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ShieldBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.SnipersMark; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Speed; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Stamina; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror; @@ -550,6 +551,18 @@ public abstract class Char extends Actor { public void destroy() { HP = 0; Actor.remove( this ); + + for (Char ch : Actor.chars().toArray(new Char[0])){ + if (ch.buff(Charm.class) != null && ch.buff(Charm.class).object == id()){ + ch.buff(Charm.class).detach(); + } + if (ch.buff(Terror.class) != null && ch.buff(Terror.class).object == id()){ + ch.buff(Terror.class).detach(); + } + if (ch.buff(SnipersMark.class) != null && ch.buff(SnipersMark.class).object == id()){ + ch.buff(SnipersMark.class).detach(); + } + } } public void die( Object src ) {