v3.0.0: fixed smite dealing dmg to freshly corrupted enemies
This commit is contained in:
@@ -118,21 +118,29 @@ abstract public class Weapon extends KindOfWeapon {
|
|||||||
@Override
|
@Override
|
||||||
public int proc( Char attacker, Char defender, int damage ) {
|
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.buff(MagicImmune.class) == null) {
|
||||||
if (attacker instanceof Hero && isEquipped((Hero) attacker)
|
if (attacker instanceof Hero && isEquipped((Hero) attacker)
|
||||||
&& attacker.buff(HolyWeapon.HolyWepBuff.class) != null){
|
&& attacker.buff(HolyWeapon.HolyWepBuff.class) != null){
|
||||||
if (((Hero) attacker).subClass == HeroSubClass.PALADIN && enchantment != null){
|
if (((Hero) attacker).subClass == HeroSubClass.PALADIN && enchantment != null){
|
||||||
damage = enchantment.proc(this, attacker, defender, damage);
|
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;
|
int dmg = ((Hero) attacker).subClass == HeroSubClass.PALADIN ? 6 : 2;
|
||||||
defender.damage(Math.round(dmg * Enchantment.genericProcChanceMultiplier(attacker)), HolyWeapon.INSTANCE);
|
defender.damage(Math.round(dmg * Enchantment.genericProcChanceMultiplier(attacker)), HolyWeapon.INSTANCE);
|
||||||
}
|
}
|
||||||
} else if (enchantment != null) {
|
} else if (enchantment != null) {
|
||||||
damage = enchantment.proc(this, attacker, defender, damage);
|
damage = enchantment.proc(this, attacker, defender, damage);
|
||||||
|
if (defender.alignment == Char.Alignment.ALLY && !wasAlly){
|
||||||
|
becameAlly = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (attacker instanceof Hero && isEquipped((Hero) attacker) &&
|
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);
|
defender.damage(Smite.bonusDmg((Hero) attacker, defender), Smite.INSTANCE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user