From 6b700a96eb8d790de6777db40f89d150b666a4ae Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 11 Jun 2016 14:21:42 -0400 Subject: [PATCH] v0.4.0: updated wand curse logic --- .../shatteredpixeldungeon/items/wands/Wand.java | 12 ++++++++---- .../items/weapon/melee/MagesStaff.java | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java index b905e64f1..7b60b8cf6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java @@ -186,12 +186,16 @@ public abstract class Wand extends Item { @Override public Item upgrade() { - if (cursed && cursedKnown) { - GLog.p( Messages.get(Item.class, "remove_curse") ); - Dungeon.hero.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10 ); - } + boolean cursedPreUpgrade = cursed; super.upgrade(); + + if (cursedPreUpgrade && Random.Float() > Math.pow(0.9, level())){ + GLog.p( Messages.get(Item.class, "remove_curse") ); + Dungeon.hero.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10 ); + } else { + cursed = cursedPreUpgrade; + } updateLevel(); curCharges = Math.min( curCharges + 1, maxCharges ); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java index 2b903d848..ba9995dd2 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java @@ -155,6 +155,7 @@ public class MagesStaff extends MeleeWeapon { public Item imbueWand(Wand wand, Char owner){ + wand.cursed = false; this.wand = null; //syncs the level of the two items. @@ -176,7 +177,6 @@ public class MagesStaff extends MeleeWeapon { wand.maxCharges = Math.min(wand.maxCharges + 1, 10); wand.curCharges = wand.maxCharges; wand.identify(); - wand.cursed = false; if (owner != null) wand.charge(owner); name = Messages.get(wand, "staff_name");