v0.9.1: sniper's mark, charm and terror now detach if their targets die

This commit is contained in:
Evan Debenham 2020-10-20 17:40:26 -04:00
parent 51fd143a6e
commit 2496dc0d1c

View File

@ -54,6 +54,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Preparation; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Preparation;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ShieldBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ShieldBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow; 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.Speed;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Stamina; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Stamina;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
@ -550,6 +551,18 @@ public abstract class Char extends Actor {
public void destroy() { public void destroy() {
HP = 0; HP = 0;
Actor.remove( this ); 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 ) { public void die( Object src ) {