diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 2859d0ef8..d3547d049 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -1046,7 +1046,7 @@ items.spells.spell.no_magic=You can't cast spells while magic immune. items.spells.magicalinfusion.name=magical infusion items.spells.magicalinfusion.inv_title=Infuse an item items.spells.magicalinfusion.infuse=Your %s is infused with arcane energy! -items.spells.magicalinfusion.desc=This spell possesses the same magical power as a scroll of upgrade, but in a more stable form.\n\nIn addition to upgrading an item as normal, it will never erase an enchantment on a weapon or a glyph on armor. +items.spells.magicalinfusion.desc=This spell possesses the same magical power as a scroll of upgrade, but in a more stable form.\n\nIn addition to upgrading an item as normal it will never erase an enchantment on a weapon or a glyph on armor, including curses. items.spells.magicalporter.name=magical porter items.spells.magicalporter.inv_title=Port an item 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 4a59ea60b..e3c8a63cc 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 @@ -56,6 +56,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Stone; import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Swiftness; import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Thorns; import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Viscosity; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; @@ -394,10 +395,16 @@ public class Armor extends EquipableItem { public Item upgrade( boolean inscribe ) { - if (inscribe && (glyph == null || glyph.curse())){ - inscribe( Glyph.random() ); - } else if (!inscribe && level() >= 4 && Random.Float(10) < Math.pow(2, level()-4)){ - inscribe(null); + if (inscribe){ + if (glyph == null){ + inscribe( Glyph.random() ); + } + } else { + if (hasCurseGlyph()){ + if (Random.Int(3) == 0) inscribe(null); + } else if (level() >= 4 && Random.Float(10) < Math.pow(2, level()-4)){ + inscribe(null); + } } cursed = false;