diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java index e559eccdc..159908abc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barrier.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blocking; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -68,8 +69,11 @@ public class Barrier extends ShieldBuff { @Override public void fx(boolean on) { - if (on) target.sprite.add(CharSprite.State.SHIELDED); - else target.sprite.remove(CharSprite.State.SHIELDED); + if (on) { + target.sprite.add(CharSprite.State.SHIELDED); + } else if (target.buff(Blocking.BlockBuff.class) == null) { + target.sprite.remove(CharSprite.State.SHIELDED); + } } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java index c8e32a924..f9b28f7e1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java @@ -401,7 +401,10 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip healing.pour(Speck.factory(Speck.HEALING), 0.5f); break; case SHIELDED: - GameScene.effect( shield = new ShieldHalo( this )); + if (shield != null) { + shield.killAndErase(); + } + GameScene.effect(shield = new ShieldHalo(this)); break; case HEARTS: hearts = emitter();