diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java index 0be92fc3c..78a914bac 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java @@ -43,11 +43,11 @@ public class CloakOfShadows extends Artifact { image = ItemSpriteSheet.ARTIFACT_CLOAK; exp = 0; - levelCap = 15; + levelCap = 14; - charge = level()+5; + charge = level()+6; partialCharge = 0; - chargeCap = level()+5; + chargeCap = level()+6; cooldown = 0; @@ -154,6 +154,12 @@ public class CloakOfShadows extends Artifact { super.restoreFromBundle(bundle); stealthed = bundle.getBoolean( STEALTHED ); cooldown = bundle.getInt( COOLDOWN ); + + //for pre-0.4.1 saves which may have over-levelled cloaks + if (level() == 15){ + level(14); + chargeCap = 20; + } } public class cloakRecharge extends ArtifactBuff{ @@ -162,7 +168,7 @@ public class CloakOfShadows extends Artifact { if (charge < chargeCap) { LockedFloor lock = target.buff(LockedFloor.class); if (!stealthed && (lock == null || lock.regenOn())) - partialCharge += (1f / (60 - (chargeCap-charge)*2)); + partialCharge += (1f / (50 - (chargeCap-charge))); if (partialCharge >= 1) { charge++; @@ -216,9 +222,9 @@ public class CloakOfShadows extends Artifact { if (turnsToCost == 0) exp += 10 + ((Hero)target).lvl; - if (exp >= (level()+1)*50 && level() < levelCap) { + if (exp >= (level()+1)*40 && level() < levelCap) { upgrade(); - exp -= level()*50; + exp -= level()*40; GLog.p( Messages.get(this, "levelup") ); } @@ -236,9 +242,9 @@ public class CloakOfShadows extends Artifact { exp += 10 + ((Hero)target).lvl; - if (exp >= (level()+1)*50 && level() < levelCap) { + if (exp >= (level()+1)*40 && level() < levelCap) { upgrade(); - exp -= level()*50; + exp -= level()*40; GLog.p( Messages.get(this, "levelup") ); } @@ -267,7 +273,7 @@ public class CloakOfShadows extends Artifact { if (target.invisible > 0) target.invisible--; stealthed = false; - cooldown = 10 - (level() / 3); + cooldown = 6 - (level() / 4); updateQuickslot(); super.detach(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java index bffbab180..3da8660e4 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java @@ -43,7 +43,7 @@ public class WandOfMagicMissile extends Wand { if (ch != null) { processSoulMark(ch, chargesPerCast()); - ch.damage(Random.NormalIntRange(4 , 6 + level() * 2), this); + ch.damage(Random.NormalIntRange(3 + level() , 6 + level() * 2), this); ch.sprite.burst(0xFFFFFFFF, level() / 2 + 2); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java index ba9995dd2..15942cede 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java @@ -76,7 +76,7 @@ public class MagesStaff extends MeleeWeapon { @Override public int max(int lvl) { - return 3*(tier+1) + //6 base damage, down from 10 + return 4*(tier+1) + //8 base damage, down from 10 lvl*(tier+1); //scaling unaffected } @@ -161,6 +161,9 @@ public class MagesStaff extends MeleeWeapon { //syncs the level of the two items. int targetLevel = Math.max(this.level(), wand.level()); + //if the staff's level is being overridden by the wand, preserve 1 upgrade + if (wand.level() >= this.level() && this.level() > 0) targetLevel++; + int staffLevelDiff = targetLevel - this.level(); if (staffLevelDiff > 0) this.upgrade(staffLevelDiff); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties b/src/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties index 47bd5b26c..28ea3a48f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties +++ b/src/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties @@ -823,7 +823,7 @@ items.weapon.melee.magesstaff.imbue=You imbue your staff with the %s. items.weapon.melee.magesstaff.conflict=The conflicting magics erase the enchantment on your staff. items.weapon.melee.magesstaff.id_first=You'll need to identify this wand first. items.weapon.melee.magesstaff.cursed=You can't use a cursed wand. -items.weapon.melee.magesstaff.warning=Are you sure you want to imbue your staff with this wand?\n\nYour staff will inherit the highest level between it and the wand, and all magic currently affecting the staff will be lost. +items.weapon.melee.magesstaff.warning=Are you sure you want to imbue your staff with this wand? The previous imbue will be lost.\n\nIf the wand is the same or a higher level, the staff will inherit the wand's level and carry over a single upgrade. items.weapon.melee.magesstaff.yes=Yes, I'm sure. items.weapon.melee.magesstaff.no=No, I changed my mind items.weapon.melee.magesstaff.desc=Crafted by the mage himself, this staff is a one of a kind magical weapon. Rather than having an innate magic in it, this staff is instead imbued with magical energy from a wand, granting it new power.