From def4d8b598a7695b887b2a711d276196dd4ac30c Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 31 Aug 2021 18:58:28 -0400 Subject: [PATCH] v1.0.3: fixed cases where metal could be applied at full durability --- .../shatteredpixeldungeon/items/LiquidMetal.java | 12 ++++++------ .../items/weapon/missiles/MissileWeapon.java | 2 +- .../items/weapon/missiles/darts/RotDart.java | 2 +- .../items/weapon/missiles/darts/TippedDart.java | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/LiquidMetal.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/LiquidMetal.java index 4ffe59005..197013848 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/LiquidMetal.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/LiquidMetal.java @@ -114,21 +114,21 @@ public class LiquidMetal extends Item { int maxToUse = 5*(m.tier+1); maxToUse *= Math.pow(2, m.level()); - float durabilityPerUse = 100 / (float)maxToUse; + float durabilityPerMetal = 100 / (float)maxToUse; //we remove a tiny amount here to account for rounding errors - float percentDurabilityLeft = 0.999f - (m.durabilityLeft()/100f); - maxToUse = (int)Math.ceil(maxToUse*percentDurabilityLeft); - if (maxToUse == 0){ + float percentDurabilityLost = 0.999f - (m.durabilityLeft()/100f); + maxToUse = (int)Math.ceil(maxToUse*percentDurabilityLost); + if (maxToUse == 0 || percentDurabilityLost < m.durabilityPerUse()/100f){ GLog.w(Messages.get(LiquidMetal.class, "already_fixed")); return; } else if (maxToUse < quantity()) { - m.repair(maxToUse*durabilityPerUse); + m.repair(maxToUse*durabilityPerMetal); quantity(quantity()-maxToUse); GLog.i(Messages.get(LiquidMetal.class, "apply", maxToUse)); } else { - m.repair(quantity()*durabilityPerUse); + m.repair(quantity()*durabilityPerMetal); GLog.i(Messages.get(LiquidMetal.class, "apply", quantity())); detachAll(Dungeon.hero.belongings.backpack); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java index 995c844ba..aa7e963d9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/MissileWeapon.java @@ -267,7 +267,7 @@ abstract public class MissileWeapon extends Weapon { durability += amount; } - protected float durabilityPerUse(){ + public float durabilityPerUse(){ float usages = baseUses * (float)(Math.pow(3, level())); //+50%/75% durability diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/RotDart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/RotDart.java index dbf813b6c..bcbcbcdef 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/RotDart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/RotDart.java @@ -48,7 +48,7 @@ public class RotDart extends TippedDart { } @Override - protected float durabilityPerUse() { + public float durabilityPerUse() { return 100f; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/TippedDart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/TippedDart.java index 177665659..81a1a0745 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/TippedDart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/TippedDart.java @@ -129,7 +129,7 @@ public abstract class TippedDart extends Dart { private static int targetPos = -1; @Override - protected float durabilityPerUse() { + public float durabilityPerUse() { float use = super.durabilityPerUse(); use /= (1 + Dungeon.hero.pointsInTalent(Talent.DURABLE_TIPS));