From a2cf8c576b3a99de05c62039cc87660ef2aca737 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 28 Nov 2018 03:39:54 -0500 Subject: [PATCH] v0.7.1: adjusted boomerang upgrade conversion logic --- .../com/shatteredpixel/shatteredpixeldungeon/Dungeon.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java index 5166c3a19..e1075d7ed 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java @@ -410,10 +410,17 @@ public class Dungeon { bow = hero.belongings.getItem(SpiritBow.class); } + //pre-0.7.1 saves. refunding upgrades previously spend on a boomerang if (bow != null && bow.spentUpgrades() > 0){ ScrollOfUpgrade refund = new ScrollOfUpgrade(); refund.quantity(bow.spentUpgrades()); bow.level(0); + + //to prevent exploits, some SoU are lost in the conversion of a boomerang higher than +1 + if (refund.quantity() > 1){ + refund.quantity(1 + (int)Math.floor((refund.quantity()-1)*0.8f)); + } + if (!refund.collect()){ level.drop(refund, hero.pos); }