aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-05-22 16:35:43 +0200
committerOvahlord <dreadkiller@gmx.de>2024-05-28 17:12:18 +0200
commit27d1749e2fa9a0e862c8a1be135139cd9f2d2ecb (patch)
tree6632d91d9d682527b1e75500e201a8d8e62c27c3 /src/server/game/Entities
parent18c0aa6f48256017c1fffdcb291d41d4ae8fc231 (diff)
Core/Auras: Corrected implementation of dungeon encounter related interrupt flags
(cherry picked from commit e4e6eccdf592cd0760c780d485c439f121e06d4c)
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 45e85c5677b..f03dcdc85f7 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -538,15 +538,20 @@ void Unit::MonsterMoveWithSpeed(float x, float y, float z, float speed, bool gen
void Unit::AtStartOfEncounter(EncounterType type)
{
- RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfEncounter);
-
switch (type)
{
case EncounterType::DungeonEncounter:
- RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfDungeonEncounter);
+ if (GetMap()->IsRaid())
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfRaidEncounterAndStartOfMythicPlus);
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfEncounter);
break;
case EncounterType::MythicPlusRun:
- RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfMythicPlusRun);
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfRaidEncounterAndStartOfMythicPlus);
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::EndOfRaidEncounterAndStartOfMythicPlus);
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::ChallengeModeStart);
+ break;
+ case EncounterType::Battleground:
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::StartOfRaidEncounterAndStartOfMythicPlus);
break;
default:
break;
@@ -558,12 +563,12 @@ void Unit::AtStartOfEncounter(EncounterType type)
void Unit::AtEndOfEncounter(EncounterType type)
{
- RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::EndOfEncounter);
-
switch (type)
{
case EncounterType::DungeonEncounter:
- RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::EndOfDungeonEncounter);
+ if (GetMap()->IsRaid())
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::EndOfRaidEncounterAndStartOfMythicPlus);
+ RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::EndOfEncounter);
break;
default:
break;