diff options
author | My name is Mud <95978183+aquadeus@users.noreply.github.com> | 2022-01-07 15:08:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-07 15:08:21 +0100 |
commit | 7a7c0c25cd84a99fc9cd70463859b2211865310f (patch) | |
tree | 44e20370e154b9ee2ca26b71fd94b2f70987ac77 /src | |
parent | c5d3bd2cdd8f5ccf0d458fd9a97f315d87c1113a (diff) |
Core/Auras: Implement SPELL_AURA_MOD_BONUS_ARMOR (465) (#27539)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.h | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h index 9fb3018a08a..6ec0e1fb3f0 100644 --- a/src/server/game/Spells/Auras/SpellAuraDefines.h +++ b/src/server/game/Spells/Auras/SpellAuraDefines.h @@ -556,7 +556,7 @@ enum AuraType : uint32 SPELL_AURA_MOD_HEALING_AND_ABSORB_FROM_CASTER = 462, // NYI SPELL_AURA_CONVERT_CRIT_RATING_PCT_TO_PARRY_RATING = 463, // NYI SPELL_AURA_MOD_ATTACK_POWER_OF_BONUS_ARMOR = 464, // NYI - SPELL_AURA_MOD_BONUS_ARMOR = 465, // NYI + SPELL_AURA_MOD_BONUS_ARMOR = 465, SPELL_AURA_MOD_BONUS_ARMOR_PCT = 466, // Affects bonus armor gain from all sources except base stats SPELL_AURA_MOD_STAT_BONUS_PCT = 467, // Affects stat gain from all sources except base stats SPELL_AURA_TRIGGER_SPELL_ON_HEALTH_PCT = 468, // Triggers spell when health goes above (MiscA = 0) or falls below (MiscA = 1) specified percent value (once, not every time condition has meet) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 8328e21890d..b0e88f9a51b 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -533,7 +533,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]= &AuraEffect::HandleNULL, //462 SPELL_AURA_MOD_HEALING_AND_ABSORB_FROM_CASTER &AuraEffect::HandleNULL, //463 SPELL_AURA_CONVERT_CRIT_RATING_PCT_TO_PARRY_RATING used by Riposte &AuraEffect::HandleNULL, //464 SPELL_AURA_MOD_ATTACK_POWER_OF_BONUS_ARMOR - &AuraEffect::HandleNULL, //465 SPELL_AURA_MOD_BONUS_ARMOR + &AuraEffect::HandleModStatBonusArmor, //465 SPELL_AURA_MOD_BONUS_ARMOR &AuraEffect::HandleNULL, //466 SPELL_AURA_MOD_BONUS_ARMOR_PCT &AuraEffect::HandleModStatBonusPercent, //467 SPELL_AURA_MOD_STAT_BONUS_PCT &AuraEffect::HandleTriggerSpellOnHealthPercent, //468 SPELL_AURA_TRIGGER_SPELL_ON_HEALTH_PCT @@ -3537,6 +3537,14 @@ void AuraEffect::HandleModArmorPctFromStat(AuraApplication const* aurApp, uint8 player->UpdateArmor(); } +void AuraEffect::HandleModStatBonusArmor(AuraApplication const* aurApp, uint8 mode, bool apply) const +{ + if (!(mode & (AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK | AURA_EFFECT_HANDLE_STAT))) + return; + + aurApp->GetTarget()->HandleStatFlatModifier(UNIT_MOD_ARMOR, BASE_VALUE, float(GetAmount()), apply); +} + void AuraEffect::HandleModStatBonusPercent(AuraApplication const* aurApp, uint8 mode, bool apply) const { if (!(mode & (AURA_EFFECT_HANDLE_CHANGE_AMOUNT_MASK | AURA_EFFECT_HANDLE_STAT))) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.h b/src/server/game/Spells/Auras/SpellAuraEffects.h index a85ea1fc14c..ac3c151ae21 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.h +++ b/src/server/game/Spells/Auras/SpellAuraEffects.h @@ -233,6 +233,7 @@ class TC_GAME_API AuraEffect void HandleModHealingDonePct(AuraApplication const* aurApp, uint8 mode, bool apply) const; void HandleModTotalPercentStat(AuraApplication const* aurApp, uint8 mode, bool apply) const; void HandleAuraModExpertise(AuraApplication const* aurApp, uint8 mode, bool apply) const; + void HandleModStatBonusArmor(AuraApplication const* aurApp, uint8 mode, bool apply) const; void HandleModArmorPctFromStat(AuraApplication const* aurApp, uint8 mode, bool apply) const; void HandleModStatBonusPercent(AuraApplication const* aurApp, uint8 mode, bool apply) const; void HandleOverrideSpellPowerByAttackPower(AuraApplication const* aurApp, uint8 mode, bool apply) const; |