Core/Auras: Implement SPELL_AURA_MOD_BONUS_ARMOR (465) (#27539)

This commit is contained in:
My name is Mud
2022-01-07 15:08:21 +01:00
committed by GitHub
parent c5d3bd2cdd
commit 7a7c0c25cd
3 changed files with 11 additions and 2 deletions

View File

@@ -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)

View File

@@ -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)))

View File

@@ -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;