mirror of
https://github.com/araxiaonline/TrinityCore2.git
synced 2026-06-18 05:49:41 -04:00
Core/Spells: Implement SPELL_AURA_MOD_BYPASS_ARMOR_FOR_CASTER
This commit is contained in:
@@ -1490,6 +1490,14 @@ uint32 Unit::CalcArmorReducedDamage(Unit* victim, const uint32 damage, SpellInfo
|
||||
uint32 newdamage = 0;
|
||||
float armor = float(victim->GetArmor());
|
||||
|
||||
// bypass enemy armor effectiveness by SPELL_AURA_BYPASS_ARMOR_FOR_CASTER
|
||||
int32 auraEffectivenessReduction = 0;
|
||||
AuraEffectList const & reductionAuras = victim->GetAuraEffectsByType(SPELL_AURA_BYPASS_ARMOR_FOR_CASTER);
|
||||
for (AuraEffectList::const_iterator i = reductionAuras.begin(); i != reductionAuras.end(); ++i)
|
||||
if ((*i)->GetCasterGUID() == GetGUID())
|
||||
auraEffectivenessReduction += (*i)->GetAmount();
|
||||
armor = CalculatePctN(armor, 100 - std::min(auraEffectivenessReduction, 100));
|
||||
|
||||
// Ignore enemy armor by SPELL_AURA_MOD_TARGET_RESISTANCE aura
|
||||
armor += GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_TARGET_RESISTANCE, SPELL_SCHOOL_MASK_NORMAL);
|
||||
|
||||
|
||||
@@ -404,7 +404,7 @@ enum AuraType
|
||||
SPELL_AURA_MOD_TIME_BETWEEN_ATTACKS = 342, // (attack speed) NYI
|
||||
SPELL_AURA_343 = 343,
|
||||
SPELL_AURA_MOD_AUTOATTACK_DAMAGE = 344, // (white damage) NYI
|
||||
SPELL_AURA_MOD_BYPASS_ARMOR_FOR_CASTER = 345, // NYI
|
||||
SPELL_AURA_BYPASS_ARMOR_FOR_CASTER = 345,
|
||||
SPELL_AURA_PROGRESS_BAR = 346, // NYI
|
||||
SPELL_AURA_MOD_SPELL_COOLDOWN_BY_HASTE = 347, // NYI
|
||||
SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT = 348, // NYI
|
||||
|
||||
Reference in New Issue
Block a user