diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-01-03 12:42:39 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-01-03 12:42:39 +0100 |
commit | 33954538bc30650f639e258eeb057c1340f4c949 (patch) | |
tree | 07f4cb6e1041cd84d3a0f8029ccdbe4e1273784f /src | |
parent | b428f600b1e5cfd71e661f924a30d59f3970800d (diff) |
Core/Auras: Implemented SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES and SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS attributes
Closes #28658
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 4 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.cpp | 3 |
3 files changed, 11 insertions, 8 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 02bf5a512fb..99285a33fbb 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -886,13 +886,13 @@ enum SpellAttr12 : uint32 SPELL_ATTR12_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr12 SPELL_ATTR12_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr12 SPELL_ATTR12_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr12 - SPELL_ATTR12_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr12 + SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES = 0x80000000 // TITLE Only Proc From Class Abilities }; // EnumUtils: DESCRIBE THIS enum SpellAttr13 : uint32 { - SPELL_ATTR13_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr13 + SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS = 0x00000001, // TITLE Allow Class Ability Procs SPELL_ATTR13_UNK1 = 0x00000002, // TITLE Unknown attribute 0@Attr13 SPELL_ATTR13_PASSIVE_IS_UPGRADE = 0x00000004, // TITLE Is Upgrade DESCRIPTION Displays "Upgrade" in spell tooltip instead of "Passive" SPELL_ATTR13_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr13 diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index 60be1fd2ddd..fd36c97078b 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -1835,7 +1835,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr12>::ToString(SpellAttr12 value) case SPELL_ATTR12_UNK28: return { "SPELL_ATTR12_UNK28", "Unknown attribute 28@Attr12", "" }; case SPELL_ATTR12_UNK29: return { "SPELL_ATTR12_UNK29", "Unknown attribute 29@Attr12", "" }; case SPELL_ATTR12_UNK30: return { "SPELL_ATTR12_UNK30", "Unknown attribute 30@Attr12", "" }; - case SPELL_ATTR12_UNK31: return { "SPELL_ATTR12_UNK31", "Unknown attribute 31@Attr12", "" }; + case SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES: return { "SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES", "Only Proc From Class Abilities", "" }; default: throw std::out_of_range("value"); } } @@ -1879,7 +1879,7 @@ TC_API_EXPORT SpellAttr12 EnumUtils<SpellAttr12>::FromIndex(size_t index) case 28: return SPELL_ATTR12_UNK28; case 29: return SPELL_ATTR12_UNK29; case 30: return SPELL_ATTR12_UNK30; - case 31: return SPELL_ATTR12_UNK31; + case 31: return SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES; default: throw std::out_of_range("index"); } } @@ -1920,7 +1920,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr12>::ToIndex(SpellAttr12 value) case SPELL_ATTR12_UNK28: return 28; case SPELL_ATTR12_UNK29: return 29; case SPELL_ATTR12_UNK30: return 30; - case SPELL_ATTR12_UNK31: return 31; + case SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES: return 31; default: throw std::out_of_range("value"); } } @@ -1933,7 +1933,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr13>::ToString(SpellAttr13 value) { switch (value) { - case SPELL_ATTR13_UNK0: return { "SPELL_ATTR13_UNK0", "Unknown attribute 0@Attr13", "" }; + case SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS: return { "SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS", "Allow Class Ability Procs", "" }; case SPELL_ATTR13_UNK1: return { "SPELL_ATTR13_UNK1", "Unknown attribute 0@Attr13", "" }; case SPELL_ATTR13_PASSIVE_IS_UPGRADE: return { "SPELL_ATTR13_PASSIVE_IS_UPGRADE", "Is Upgrade", "Displays \042Upgrade\042 in spell tooltip instead of \042Passive\042" }; case SPELL_ATTR13_UNK3: return { "SPELL_ATTR13_UNK3", "Unknown attribute 3@Attr13", "" }; @@ -1977,7 +1977,7 @@ TC_API_EXPORT SpellAttr13 EnumUtils<SpellAttr13>::FromIndex(size_t index) { switch (index) { - case 0: return SPELL_ATTR13_UNK0; + case 0: return SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS; case 1: return SPELL_ATTR13_UNK1; case 2: return SPELL_ATTR13_PASSIVE_IS_UPGRADE; case 3: return SPELL_ATTR13_UNK3; @@ -2018,7 +2018,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr13>::ToIndex(SpellAttr13 value) { switch (value) { - case SPELL_ATTR13_UNK0: return 0; + case SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS: return 0; case SPELL_ATTR13_UNK1: return 1; case SPELL_ATTR13_PASSIVE_IS_UPGRADE: return 2; case SPELL_ATTR13_UNK3: return 3; diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index ee837ef013d..98a7be4cf07 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -1799,6 +1799,9 @@ uint32 Aura::GetProcEffectMask(AuraApplication* aurApp, ProcEventInfo& eventInfo if (spell->GetSpellInfo()->HasAttribute(SPELL_ATTR4_SUPPRESS_WEAPON_PROCS) && GetSpellInfo()->HasAttribute(SPELL_ATTR6_AURA_IS_WEAPON_PROC)) return 0; + + if (GetSpellInfo()->HasAttribute(SPELL_ATTR12_ONLY_PROC_FROM_CLASS_ABILITIES) && !spell->GetSpellInfo()->HasAttribute(SPELL_ATTR13_ALLOW_CLASS_ABILITY_PROCS)) + return 0; } // check don't break stealth attr present |