Core/Unit: damage immune improvements
This commit is contained in:
1 parent
746cb97dce
commit
b7b69b88ba
8 files changed
+80
-40
No files matched your search
@@ -2457,15 +2457,29 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
|
||||
// Fill base damage struct (unitTarget - is real spell target)
|
||||
SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo->Id, m_spellSchoolMask);
|
||||
|
||||
// Add bonuses and fill damageInfo struct
|
||||
caster->CalculateSpellDamageTaken(&damageInfo, m_damage, m_spellInfo, m_attackType, target->crit);
|
||||
caster->DealDamageMods(damageInfo.target, damageInfo.damage, &damageInfo.absorb);
|
||||
// Check damage immunity
|
||||
if (unitTarget->IsImmunedToDamage(m_spellInfo))
|
||||
{
|
||||
hitMask = PROC_HIT_IMMUNE;
|
||||
m_damage = 0;
|
||||
|
||||
// Send log damage message to client
|
||||
caster->SendSpellNonMeleeDamageLog(&damageInfo);
|
||||
// no packet found in sniffs
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add bonuses and fill damageInfo struct
|
||||
caster->CalculateSpellDamageTaken(&damageInfo, m_damage, m_spellInfo, m_attackType, target->crit);
|
||||
caster->DealDamageMods(damageInfo.target, damageInfo.damage, &damageInfo.absorb);
|
||||
|
||||
hitMask |= createProcHitMask(&damageInfo, missInfo);
|
||||
procVictim |= PROC_FLAG_TAKEN_DAMAGE;
|
||||
// Send log damage message to client
|
||||
caster->SendSpellNonMeleeDamageLog(&damageInfo);
|
||||
|
||||
hitMask |= createProcHitMask(&damageInfo, missInfo);
|
||||
procVictim |= PROC_FLAG_TAKEN_DAMAGE;
|
||||
|
||||
m_damage = damageInfo.damage;
|
||||
caster->DealSpellDamage(&damageInfo, true);
|
||||
}
|
||||
|
||||
// Do triggers for unit
|
||||
if (canEffectTrigger)
|
||||
@@ -2477,10 +2491,6 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
|
||||
(m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
|
||||
caster->ToPlayer()->CastItemCombatSpell(spellDamageInfo);
|
||||
}
|
||||
|
||||
m_damage = damageInfo.damage;
|
||||
|
||||
caster->DealSpellDamage(&damageInfo, true);
|
||||
}
|
||||
// Passive spell hits/misses or active spells only misses (only triggers)
|
||||
else
|
||||
|
||||
Reference in new issue
Block a user