aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-05-22 16:35:43 +0200
committerShauren <shauren.trinity@gmail.com>2024-05-22 16:35:43 +0200
commite4e6eccdf592cd0760c780d485c439f121e06d4c (patch)
treeb56c7dd15f8964400944861e4b80a5177db34ea5 /src/server/game/Entities/Unit
parent5f5871708ff0d9080936cdf1e30b5b3481813b6a (diff)
Core/Auras: Corrected implementation of dungeon encounter related interrupt flags
Diffstat (limited to 'src/server/game/Entities/Unit')
-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 95d78ba4dbb..4cdac457f5b 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;