diff options
author | Seyden <saiifii@live.de> | 2023-08-25 12:36:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-25 12:36:11 +0200 |
commit | fa2257681726caf16509940ef8c6d427cd85150e (patch) | |
tree | 1ea90c6d5a234291a616746f75356c6657da1e53 /src | |
parent | b51afbdfb975b676cb885fc4f3559944f99df030 (diff) |
Core/Auras: Implement SPELL_ATTR8_PERIODIC_CAN_CRIT (#29198)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 5 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 4c6cac27059..70f78d3be39 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -731,7 +731,7 @@ enum SpellAttr8 : uint32 SPELL_ATTR8_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr8 SPELL_ATTR8_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr8 SPELL_ATTR8_AFFECT_PARTY_AND_RAID = 0x00000100, // TITLE Use Target's Level for Spell Scaling - SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER = 0x00000200, // TITLE Periodic Can Crit DESCRIPTION (WRONG) Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping) + SPELL_ATTR8_PERIODIC_CAN_CRIT = 0x00000200, // TITLE Periodic Can Crit SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM = 0x00000400, // TITLE Mirror creature name SPELL_ATTR8_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr8 SPELL_ATTR8_AURA_SEND_AMOUNT = 0x00001000, // TITLE Aura Points On Client diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index aafb6d28c28..db9992394c6 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -1315,7 +1315,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr8>::ToString(SpellAttr8 value) case SPELL_ATTR8_UNK6: return { "SPELL_ATTR8_UNK6", "Unknown attribute 6@Attr8", "" }; case SPELL_ATTR8_UNK7: return { "SPELL_ATTR8_UNK7", "Unknown attribute 7@Attr8", "" }; case SPELL_ATTR8_AFFECT_PARTY_AND_RAID: return { "SPELL_ATTR8_AFFECT_PARTY_AND_RAID", "Use Target's Level for Spell Scaling", "" }; - case SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER: return { "SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER", "Periodic Can Crit", "(WRONG) Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping)" }; + case SPELL_ATTR8_PERIODIC_CAN_CRIT: return { "SPELL_ATTR8_PERIODIC_CAN_CRIT", "Periodic Can Crit", "" }; case SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM: return { "SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM", "Mirror creature name", "" }; case SPELL_ATTR8_UNK11: return { "SPELL_ATTR8_UNK11", "Unknown attribute 11@Attr8", "" }; case SPELL_ATTR8_AURA_SEND_AMOUNT: return { "SPELL_ATTR8_AURA_SEND_AMOUNT", "Aura Points On Client", "" }; @@ -1359,7 +1359,7 @@ TC_API_EXPORT SpellAttr8 EnumUtils<SpellAttr8>::FromIndex(size_t index) case 6: return SPELL_ATTR8_UNK6; case 7: return SPELL_ATTR8_UNK7; case 8: return SPELL_ATTR8_AFFECT_PARTY_AND_RAID; - case 9: return SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER; + case 9: return SPELL_ATTR8_PERIODIC_CAN_CRIT; case 10: return SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM; case 11: return SPELL_ATTR8_UNK11; case 12: return SPELL_ATTR8_AURA_SEND_AMOUNT; @@ -1400,7 +1400,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr8>::ToIndex(SpellAttr8 value) case SPELL_ATTR8_UNK6: return 6; case SPELL_ATTR8_UNK7: return 7; case SPELL_ATTR8_AFFECT_PARTY_AND_RAID: return 8; - case SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER: return 9; + case SPELL_ATTR8_PERIODIC_CAN_CRIT: return 9; case SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM: return 10; case SPELL_ATTR8_UNK11: return 11; case SPELL_ATTR8_AURA_SEND_AMOUNT: return 12; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index d106a183701..6b008d36f06 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5870,7 +5870,10 @@ bool AuraEffect::CanPeriodicTickCrit() const if (GetSpellInfo()->HasAttribute(SPELL_ATTR2_CANT_CRIT)) return false; - return true; + if (GetSpellInfo()->HasAttribute(SPELL_ATTR8_PERIODIC_CAN_CRIT)) + return true; + + return false; } float AuraEffect::CalcPeriodicCritChance(Unit const* caster) const |