diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/Armor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/Armor.java index e6bc89a2f..40d3058da 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/Armor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/Armor.java @@ -679,7 +679,15 @@ public class Armor extends EquipableItem { } public boolean hasGlyph(Class type, Char owner) { - return glyph != null && glyph.getClass() == type && owner.buff(MagicImmune.class) == null; + if (glyph == null){ + return false; + } else if (owner.buff(MagicImmune.class) != null) { + return false; + } else if (!glyph.curse() && owner instanceof Hero && isEquipped((Hero) owner) && owner.buff(HolyWard.HolyArmBuff.class) != null){ + return false; + } else { + return glyph.getClass() == type; + } } //these are not used to process specific glyph effects, so magic immune doesn't affect them diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java index 210ff7434..3fb9ccac8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java @@ -397,12 +397,14 @@ abstract public class Weapon extends KindOfWeapon { } public boolean hasEnchant(Class type, Char owner) { - if (owner.buff(MagicImmune.class) != null) { + if (enchantment == null){ return false; - } else if (owner instanceof Hero && isEquipped((Hero) owner) && owner.buff(HolyWeapon.HolyWepBuff.class) != null){ + } else if (owner.buff(MagicImmune.class) != null) { + return false; + } else if (!enchantment.curse() && owner instanceof Hero && isEquipped((Hero) owner) && owner.buff(HolyWeapon.HolyWepBuff.class) != null){ return false; } else { - return enchantment != null && enchantment.getClass() == type; + return enchantment.getClass() == type; } }