From 778ad3f28ce1c7ab39001e9e8e9336f8abf97097 Mon Sep 17 00:00:00 2001 From: Evan Debenham <Evan@ShatteredPixel.com> Date: Wed, 21 Jul 2021 12:21:33 -0400 Subject: [PATCH] v0.9.4: magic immunity now also cleanses existing magic debuffs --- .../actors/buffs/MagicImmune.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicImmune.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicImmune.java index ab54c47d2..68e3b8e53 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicImmune.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicImmune.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -39,8 +40,25 @@ public class MagicImmune extends FlavourBuff { immunities.addAll(AntiMagic.RESISTS); } - //FIXME what about active buffs/debuffs?, what about rings? what about artifacts? - + //FIXME still a lot of cases not handled here, e.g. rings/artifacts and various damage sources + + @Override + public boolean attachTo(Char target) { + if (super.attachTo(target)){ + for (Buff b : target.buffs()){ + for (Class immunity : immunities){ + if (b.getClass().isAssignableFrom(immunity)){ + b.detach(); + break; + } + } + } + return true; + } else { + return false; + } + } + @Override public int icon() { return BuffIndicator.COMBO;