aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2025-10-29 16:04:11 +0100
committerGitHub <noreply@github.com>2025-10-29 16:04:11 +0100
commitff256d20e52b980cde0000f0f7cfc947868c80dd (patch)
tree0078c7119c21adca7ae5a558ff8ab19f05db0adb /src/server/game/Entities/Unit
parentcca05feeb4cb5be081694ada75a90069c96dc13d (diff)
Core/Spells: Name SpellCategoryFlags with official names and implement ResetCooldownUponEndingEncounter flag (#31415)
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 116d81d9f38..c6466bba6b4 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -581,8 +581,14 @@ void Unit::AtEndOfEncounter(EncounterType type)
GetSpellHistory()->ResetCooldowns([](SpellHistory::CooldownEntry const& cooldown)
{
SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(cooldown.SpellId, DIFFICULTY_NONE);
+ if (spellInfo->HasAttribute(SPELL_ATTR10_RESET_COOLDOWN_ON_ENCOUNTER_END))
+ return true;
+
+ if (SpellCategoryEntry const* category = sSpellCategoryStore.LookupEntry(spellInfo->CategoryId))
+ if (category->GetFlags().HasFlag(SpellCategoryFlags::ResetCooldownUponEndingEncounter))
+ return true;
- return spellInfo->HasAttribute(SPELL_ATTR10_RESET_COOLDOWN_ON_ENCOUNTER_END);
+ return false;
}, true);
}