From 88a80fb289a60840c4adf9b1da2135e01d9c820f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 6 Jun 2023 12:17:04 -0400 Subject: [PATCH] v2.1.1: fixed cases where buffs didn't clear fx they give immunity to --- .../actors/buffs/AnkhInvulnerability.java | 12 ++++++++++++ .../actors/buffs/FireImbue.java | 10 ++++++++++ .../actors/buffs/FrostImbue.java | 11 +++++++++++ .../actors/buffs/ToxicImbue.java | 11 +++++++++++ 4 files changed, 44 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AnkhInvulnerability.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AnkhInvulnerability.java index 11f22d747..6bfab2993 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AnkhInvulnerability.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/AnkhInvulnerability.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class AnkhInvulnerability extends FlavourBuff { @@ -52,4 +53,15 @@ public class AnkhInvulnerability extends FlavourBuff { immunities.add(Frost.class); } + @Override + public boolean attachTo(Char target) { + if (super.attachTo(target)){ + Buff.detach(target, Paralysis.class); + Buff.detach(target, Frost.class); + return true; + } else { + return false; + } + } + } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java index 24d522087..ec70f41c4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java @@ -113,4 +113,14 @@ public class FireImbue extends Buff { { immunities.add( Burning.class ); } + + @Override + public boolean attachTo(Char target) { + if (super.attachTo(target)){ + Buff.detach(target, Burning.class); + return true; + } else { + return false; + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java index cbcffa040..e6eaa40b6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java @@ -59,4 +59,15 @@ public class FrostImbue extends FlavourBuff { immunities.add( Frost.class ); immunities.add( Chill.class ); } + + @Override + public boolean attachTo(Char target) { + if (super.attachTo(target)){ + Buff.detach(target, Frost.class); + Buff.detach(target, Chill.class); + return true; + } else { + return false; + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java index ebb912fdd..97db8a4b7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; @@ -101,4 +102,14 @@ public class ToxicImbue extends Buff { immunities.add( ToxicGas.class ); immunities.add( Poison.class ); } + + @Override + public boolean attachTo(Char target) { + if (super.attachTo(target)){ + Buff.detach(target, Poison.class); + return true; + } else { + return false; + } + } }