diff --git a/common/ruletypes.h b/common/ruletypes.h index 5be339c17..2def8abb8 100644 --- a/common/ruletypes.h +++ b/common/ruletypes.h @@ -387,6 +387,7 @@ RULE_BOOL(Spells, InvisRequiresGroup, false, "Invis requires the the target to b RULE_INT(Spells, ClericInnateHealFocus, 5, "Clerics on live get a 5 pct innate heal focus") RULE_BOOL(Spells, DOTsScaleWithSpellDmg, false, "Allow SpellDmg stat to affect DoT spells") RULE_BOOL(Spells, HOTsScaleWithHealAmt, false, "Allow HealAmt stat to affect HoT spells") +RULE_BOOL(Spells, CompoundLifetapHeals, true, "True: Lifetap heals calculate damage bonuses and then heal bonuses. False: Lifetaps heal using the amount damaged to mob.") RULE_CATEGORY_END() RULE_CATEGORY(Combat) diff --git a/zone/attack.cpp b/zone/attack.cpp index c5fa1d3fb..c1a46fbac 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -3613,7 +3613,7 @@ void Mob::CommonDamage(Mob* attacker, int &damage, const uint16 spell_id, const if (spell_id != SPELL_UNKNOWN && IsLifetapSpell(spell_id)) { int healed = damage; - healed = attacker->GetActSpellHealing(spell_id, healed); + healed = RuleB(Spells, CompoundLifetapHeals) ? attacker->GetActSpellHealing(spell_id, healed) : healed; LogCombat("Applying lifetap heal of [{}] to [{}]", healed, attacker->GetName()); attacker->HealDamage(healed);