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;