aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-03 12:42:39 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-03 12:42:39 +0100
commit33954538bc30650f639e258eeb057c1340f4c949 (patch)
tree07f4cb6e1041cd84d3a0f8029ccdbe4e1273784f /src
parentb428f600b1e5cfd71e661f924a30d59f3970800d (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.h4
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp12
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp3
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