From 89e2cfcd26c14f9dd448a4d1f488a76f7899b232 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 29 Jan 2025 13:51:34 -0500 Subject: [PATCH] v3.0.0: fixed smite dealing dmg to freshly corrupted enemies --- .../shatteredpixeldungeon/items/weapon/Weapon.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java index 60c6e9298..b43b3069c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/Weapon.java @@ -118,21 +118,29 @@ abstract public class Weapon extends KindOfWeapon { @Override public int proc( Char attacker, Char defender, int damage ) { + boolean becameAlly = false; + boolean wasAlly = defender.alignment == Char.Alignment.ALLY; if (attacker.buff(MagicImmune.class) == null) { if (attacker instanceof Hero && isEquipped((Hero) attacker) && attacker.buff(HolyWeapon.HolyWepBuff.class) != null){ if (((Hero) attacker).subClass == HeroSubClass.PALADIN && enchantment != null){ damage = enchantment.proc(this, attacker, defender, damage); + if (defender.alignment == Char.Alignment.ALLY && !wasAlly){ + becameAlly = true; + } } - if (defender.isAlive()) { + if (defender.isAlive() && !becameAlly) { int dmg = ((Hero) attacker).subClass == HeroSubClass.PALADIN ? 6 : 2; defender.damage(Math.round(dmg * Enchantment.genericProcChanceMultiplier(attacker)), HolyWeapon.INSTANCE); } } else if (enchantment != null) { damage = enchantment.proc(this, attacker, defender, damage); + if (defender.alignment == Char.Alignment.ALLY && !wasAlly){ + becameAlly = true; + } } if (attacker instanceof Hero && isEquipped((Hero) attacker) && - attacker.buff(Smite.SmiteTracker.class) != null){ + attacker.buff(Smite.SmiteTracker.class) != null && !becameAlly){ defender.damage(Smite.bonusDmg((Hero) attacker, defender), Smite.INSTANCE); } }