aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp6
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp5
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