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 481c128bb..c0689363c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/LiquidMetal.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/LiquidMetal.java @@ -120,7 +120,9 @@ public class LiquidMetal extends Item { //we remove a tiny amount here to account for rounding errors float percentDurabilityLost = 0.999f - (m.durabilityLeft()/100f); maxToUse = (int)Math.ceil(maxToUse*percentDurabilityLost); - if (maxToUse == 0 || percentDurabilityLost < m.durabilityPerUse()/100f){ + float durPerUse = m.durabilityPerUse()/100f; + if (maxToUse == 0 || + Math.ceil(m.durabilityLeft()/ m.durabilityPerUse()) >= Math.ceil(m.MAX_DURABILITY/ m.durabilityPerUse()) ){ GLog.w(Messages.get(LiquidMetal.class, "already_fixed")); return; } else if (maxToUse < quantity()) { 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 aa7e963d9..042e4189b 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 @@ -61,7 +61,7 @@ abstract public class MissileWeapon extends Weapon { protected boolean sticky = true; - protected static final float MAX_DURABILITY = 100; + public static final float MAX_DURABILITY = 100; protected float durability = MAX_DURABILITY; protected float baseUses = 10; @@ -265,6 +265,7 @@ abstract public class MissileWeapon extends Weapon { public void repair( float amount ){ durability += amount; + durability = Math.min(durability, MAX_DURABILITY); } public float durabilityPerUse(){ @@ -444,7 +445,7 @@ abstract public class MissileWeapon extends Weapon { bundleRestoring = true; super.restoreFromBundle(bundle); bundleRestoring = false; - durability = bundle.getInt(DURABILITY); + durability = bundle.getFloat(DURABILITY); } public static class PlaceHolder extends MissileWeapon {