v3.0.0: fixed smite dealing dmg to freshly corrupted enemies

This commit is contained in:
Evan Debenham
2025-01-29 13:51:34 -05:00
parent 24e2a37758
commit 89e2cfcd26

View File

@@ -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);
}
}