diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java index 231cccd9e..7bbcd9bf9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Lucky.java @@ -43,13 +43,19 @@ public class Lucky extends Weapon.Enchantment { // lvl 1 ~ 12% // lvl 2 ~ 14% float procChance = (level+4f)/(level+40f) * procChanceMultiplier(attacker); - if (defender.HP <= damage && Random.Float() < procChance){ + if (Random.Float() < procChance){ float powerMulti = Math.max(1f, procChance); //default is -5: 80% common, 20% uncommon, 0% rare //ring level increases by 1 for each 20% above 100% proc rate Buff.affect(defender, LuckProc.class).ringLevel = -10 + Math.round(5*powerMulti); + } else { + //in rare cases where we attack many times at once (e.g. gladiator fury) + // make sure that failed luck procs override prior succeeded ones + if (defender.buff(LuckProc.class) != null){ + defender.buff(LuckProc.class).detach(); + } } return damage;