aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2024_04_28_00_world.sql7
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp3
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp73
-rw-r--r--src/server/game/Entities/Creature/Creature.h12
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp1
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp1
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp1
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp1
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp5
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp3
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp1
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp3
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp3
21 files changed, 54 insertions, 72 deletions
diff --git a/sql/updates/world/master/2024_04_28_00_world.sql b/sql/updates/world/master/2024_04_28_00_world.sql
new file mode 100644
index 00000000000..44d981a5908
--- /dev/null
+++ b/sql/updates/world/master/2024_04_28_00_world.sql
@@ -0,0 +1,7 @@
+UPDATE `creature_template_difficulty` SET `StaticFlags2`= `StaticFlags2` | 0x2 WHERE `Entry` IN (3977, 10162, 10184, 11380, 11382, 11502, 11583, 11981, 11982, 11983, 11988, 12017, 12018, 12056, 12057, 12098, 12118, 12259, 12264, 12435, 12804, 13020, 14020, 14352, 14507, 14509, 14510, 14515, 14517, 14601, 14834, 15082, 15083, 15084, 15085, 15114, 15263, 15275, 15276, 15277, 15299, 15339, 15340, 15341, 15348, 15369, 15370, 15385, 15386, 15388, 15389, 15390, 15391, 15392, 15509, 15510, 15511, 15516, 15517, 15543, 15544, 15550, 15589, 15608, 15687, 15688, 15689, 15690, 15691, 15727, 15928, 15929, 15930, 15931, 15932, 15936, 15952, 15953, 15954, 15956, 15989, 15990, 16011, 16028, 16042, 16060, 16061, 16062, 16063, 16064, 16065, 16097, 16101, 16102, 16103, 16104, 16151, 16152, 16179, 16180, 16181, 16457, 16524, 16775, 16776, 16777, 16778, 17225, 17256, 17257, 17307, 17521, 17533, 17534, 17535, 17536, 17537, 17543, 17546, 17547, 17548, 17602, 17767, 17808, 17842, 17888, 17968, 18040, 18041, 18168, 18254, 18472, 18473, 18780, 18805, 18829, 18831, 18832, 18834, 18835, 18836, 18847, 19044, 19389, 19514, 19516, 19622, 20051, 20060, 20062, 20063, 20064, 20905, 20906, 20908, 20909, 20910, 20911, 21174, 21212, 21213, 21214, 21215, 21216, 21217, 21219, 21253, 21268, 21269, 21270, 21271, 21272, 21273, 21274, 21350, 21785, 21845, 21875, 21932, 21958, 21964, 21965, 21966, 22009, 22036, 22055, 22056, 22140, 22361, 22409, 22841, 22856, 22871, 22887, 22898, 22917, 22947, 22948, 22949, 22950, 22951, 22952, 23035, 23054, 23126, 23195, 23394, 23418, 23419, 23420, 23576, 23812, 23863, 24143, 24850, 24882, 24892, 25038, 25165, 25166, 25315, 25319, 25740, 25741, 25840, 25960, 26631, 26632, 26650, 27656, 27696, 27767, 27769, 27770, 27773, 27774, 27775, 27776, 27777, 27778, 27779, 27780, 27781, 27782, 28546, 28859, 28860, 29311, 30449, 30451, 30452, 30549, 31125, 32845, 32857, 32865, 32867, 32871, 32906, 32913, 32914, 32915, 32927, 32930, 32933, 32934, 33113, 33118, 33139, 33186, 33264, 33271, 33280, 33288, 33293, 33329, 33432, 33515, 33524, 33651, 33663, 33667, 33670, 33768, 33862, 33993, 34014, 34034, 34035, 34055, 34297, 34441, 34444, 34445, 34447, 34448, 34449, 34450, 34451, 34453, 34454, 34455, 34456, 34458, 34459, 34460, 34461, 34463, 34465, 34466, 34467, 34468, 34469, 34470, 34471, 34472, 34473, 34474, 34475, 34496, 34497, 34515, 34564, 34567, 34568, 34780, 34796, 34797, 34799, 34815, 34826, 34921, 35013, 35144, 35145, 36497, 36502, 36549, 36597, 36612, 36626, 36627, 36658, 36678, 36791, 36853, 36855, 36897, 36899, 37022, 37126, 37530, 37535, 37562, 37672, 37697, 37813, 37868, 37886, 37890, 37907, 37934, 37949, 37955, 37970, 37972, 37973, 38004, 38009, 38010, 38135, 38136, 38216, 38248, 38285, 38308, 38309, 38367, 38386, 38433, 38569, 38572, 38667, 38752, 38883, 39165, 39231, 39378, 39425, 39428, 39587, 39665, 39679, 39698, 39700, 39705, 39731, 39732, 39746, 39747, 39751, 39800, 39814, 39863, 39899, 40142, 40586, 40765, 40825, 40960, 41270, 41376, 41378, 41379, 41442, 41570, 42166, 42178, 42179, 42180, 42333, 42347, 42897, 43214, 43296, 43324, 43612, 43614, 43622, 43686, 43687, 43688, 43689, 43707, 43719, 43735, 43873, 43875, 43878, 43888, 43922, 44023, 44031, 44600, 44819, 44864, 44881, 45213, 45858, 45870, 45871, 45872, 45992, 45993, 46753, 46965, 47120, 48233, 48571, 49930, 49938, 50264, 51398, 51410, 51412, 51413, 51414, 51415, 51437, 51438, 51449, 51452, 51599, 51932, 52148, 52150, 52363, 52409, 52498, 52530, 52558, 52571, 52675, 53494, 53682, 53683, 53691, 53694, 53695, 53772, 53785, 53825, 53833, 53879, 53920, 54192, 54199, 54258, 54404, 54432, 55265, 55294, 55308, 55312, 55689, 55869, 56173, 56427, 56439, 56448, 56541, 56589, 56636, 56637, 56710, 56717, 56719, 56732, 56747, 56877, 56884, 56906, 57694, 57773, 57962, 58632, 58633, 58722, 58739, 58826, 59051, 59080, 59150, 59153, 59184, 59220, 59223, 59303, 59479, 59613, 59789, 59915, 60009, 60016, 60018, 60019, 60020, 60040, 60043, 60047, 60051, 60089, 60143, 60399, 60400, 60410, 60583, 60585, 60586, 60648, 60701, 60708, 60709, 60710, 60788, 60847, 60999, 61174, 61243, 61344, 61398, 61421, 61423, 61427, 61429, 61442, 61444, 61445, 61478, 61485, 61567, 61634, 61707, 62164, 62205, 62397, 62402, 62405, 62408, 62442, 62511, 62533, 62543, 62637, 62711, 62837, 62848, 62980, 62983, 63025, 63026, 63191, 63297, 63311, 63312, 63313, 63316, 63318, 63435, 63539, 63859, 63872, 64280, 64281, 64286, 64560, 64564, 64565, 64894, 65173, 65174, 65201, 65329, 65498, 65499, 65500, 66091, 66746, 66920, 67374, 67385, 67390, 67426, 67559, 67567, 67705, 67827, 67853, 67977, 68036, 68066, 68067, 68068, 68069, 68078, 68079, 68080, 68081, 68122, 68123, 68124, 68125, 68151, 68159, 68160, 68161, 68162, 68177, 68208, 68397, 68476, 68904, 68905, 69012, 69013, 69014, 69017, 69078, 69095, 69131, 69132, 69134, 69232, 69427, 69465, 69473, 69650, 69653, 69699, 69700, 69701, 69712, 69756, 69781, 69964, 70135, 70212, 70229, 70235, 70238, 70247, 70248, 70249, 70250, 70251, 70252, 70271, 70455, 70468, 70469, 70474, 70475, 70590, 70592, 70640, 70683, 70762, 70763, 70893, 70959, 70963, 71030, 71123, 71133, 71152, 71153, 71154, 71155, 71156, 71157, 71158, 71160, 71161, 71212, 71213, 71214, 71215, 71216, 71217, 71218, 71219, 71220, 71276, 71327, 71328, 71329, 71330, 71454, 71466, 71475, 71479, 71480, 71504, 71515, 71529, 71543, 71592, 71734, 71858, 71859, 71865, 71889, 71967, 72001, 72002, 72003, 72051, 72065, 72224, 72249, 72276, 72349, 72436, 72550, 72616, 72619, 72620, 72726, 72748, 72749, 72750, 73081, 73103, 73224, 73334, 73462, 73524, 73620, 73663, 73958);
+-- Manually added flag for currently scripted post MoP raid bosses
+UPDATE `creature_template_difficulty` SET `StaticFlags2`= `StaticFlags2` | 0x2 WHERE `Entry` = 122450; -- Garothi Worldbreaker
+UPDATE `creature_template_difficulty` SET `StaticFlags2`= `StaticFlags2` | 0x2 WHERE `Entry` = 114323; -- Guarm
+UPDATE `creature_template_difficulty` SET `StaticFlags2`= `StaticFlags2` | 0x2 WHERE `Entry` = 201261; -- Kazzara the Hellforged
+UPDATE `creature_template_difficulty` SET `StaticFlags2`= `StaticFlags2` | 0x2 WHERE `Entry` = 175732; -- Sylvanas Windrunner
+UPDATE `creature_template_difficulty` SET `StaticFlags2`= `StaticFlags2` | 0x2 WHERE `Entry` = 181954; -- Anduin Wrynn
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index 6469cf09fc6..98a8904a564 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -543,7 +543,6 @@ void BossAI::_Reset()
if (!me->IsAlive())
return;
- me->SetCombatPulseDelay(0);
me->ResetLootMode();
events.Reset();
summons.DespawnAll();
@@ -579,9 +578,7 @@ void BossAI::_JustEngagedWith(Unit* who)
instance->SetBossState(_bossId, IN_PROGRESS);
}
- me->SetCombatPulseDelay(5);
me->setActive(true);
- DoZoneInCombat();
ScheduleTasks();
}
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index dca771227d2..935af2e4a6d 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -306,7 +306,7 @@ bool ForcedDespawnDelayEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
Creature::Creature(bool isWorldObject) : Unit(isWorldObject), MapObject(), m_PlayerDamageReq(0), m_dontClearTapListOnEvade(false), _pickpocketLootRestore(0),
m_corpseRemoveTime(0), m_respawnTime(0), m_respawnDelay(300), m_corpseDelay(60), m_ignoreCorpseDecayRatio(false), m_wanderDistance(0.0f),
- m_boundaryCheckTime(2500), m_combatPulseTime(0), m_combatPulseDelay(0), m_reactState(REACT_AGGRESSIVE),
+ m_boundaryCheckTime(2500), m_reactState(REACT_AGGRESSIVE),
m_defaultMovementType(IDLE_MOTION_TYPE), m_spawnId(UI64LIT(0)), m_equipmentId(0), m_originalEquipmentId(0),
m_AlreadyCallAssistance(false), m_AlreadySearchedAssistance(false), m_cannotReachTarget(false), m_cannotReachTimer(0),
m_meleeDamageSchoolMask(SPELL_SCHOOL_MASK_NORMAL), m_originalEntry(0), m_homePosition(), m_transportHomePosition(),
@@ -839,34 +839,6 @@ void Creature::Update(uint32 diff)
m_boundaryCheckTime -= diff;
}
- // if periodic combat pulse is enabled and we are both in combat and in a dungeon, do this now
- if (m_combatPulseDelay > 0 && IsEngaged() && GetMap()->IsDungeon())
- {
- if (diff > m_combatPulseTime)
- m_combatPulseTime = 0;
- else
- m_combatPulseTime -= diff;
-
- if (m_combatPulseTime == 0)
- {
- Map::PlayerList const& players = GetMap()->GetPlayers();
- if (!players.isEmpty())
- for (Map::PlayerList::const_iterator it = players.begin(); it != players.end(); ++it)
- {
- if (Player* player = it->GetSource())
- {
- if (player->IsGameMaster())
- continue;
-
- if (player->IsAlive() && IsHostileTo(player))
- EngageWithTarget(player);
- }
- }
-
- m_combatPulseTime = m_combatPulseDelay * IN_MILLISECONDS;
- }
- }
-
Unit::AIUpdateTick(diff);
DoMeleeAttackIfReady();
@@ -927,6 +899,14 @@ void Creature::Update(uint32 diff)
}
}
+void Creature::Heartbeat()
+{
+ Unit::Heartbeat();
+
+ // Creatures with CREATURE_STATIC_FLAG_2_FORCE_PARTY_MEMBERS_INTO_COMBAT periodically force party members into combat
+ ForcePartyMembersIntoCombat();
+}
+
void Creature::Regenerate(Powers power)
{
uint32 curValue = GetPower(power);
@@ -3527,6 +3507,9 @@ void Creature::AtEngage(Unit* target)
ai->JustEngagedWith(target);
if (CreatureGroup* formation = GetFormation())
formation->MemberEngagingTarget(this, target);
+
+ // Creatures with CREATURE_STATIC_FLAG_2_FORCE_PARTY_MEMBERS_INTO_COMBAT periodically force party members into combat
+ ForcePartyMembersIntoCombat();
}
void Creature::AtDisengage()
@@ -3545,6 +3528,38 @@ void Creature::AtDisengage()
}
}
+void Creature::ForcePartyMembersIntoCombat()
+{
+ if (!_staticFlags.HasFlag(CREATURE_STATIC_FLAG_2_FORCE_PARTY_MEMBERS_INTO_COMBAT) || !IsEngaged())
+ return;
+
+ Trinity::Containers::FlatSet<Group const*> partiesToForceIntoCombat;
+ for (auto const& [_, combatReference] : GetCombatManager().GetPvECombatRefs())
+ {
+ if (combatReference->IsSuppressedFor(this))
+ continue;
+
+ Player* player = Object::ToPlayer(combatReference->GetOther(this));
+ if (!player || player->IsGameMaster())
+ continue;
+
+ if (Group const* group = player->GetGroup())
+ partiesToForceIntoCombat.insert(group);
+ }
+
+ for (Group const* partyToForceIntoCombat : partiesToForceIntoCombat)
+ {
+ for (GroupReference const* ref = partyToForceIntoCombat->GetFirstMember(); ref != nullptr; ref = ref->next())
+ {
+ Player* player = ref->GetSource();
+ if (!player || !player->IsInWorld() || player->GetMap() != GetMap() || player->IsGameMaster())
+ continue;
+
+ EngageWithTarget(player);
+ }
+ }
+}
+
bool Creature::IsEscorted() const
{
if (CreatureAI const* ai = AI())
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 959ca55a925..de10174db70 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -98,6 +98,8 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
ObjectGuid::LowType GetSpawnId() const { return m_spawnId; }
void Update(uint32 time) override; // overwrited Unit::Update
+ void Heartbeat() override;
+
void GetRespawnPosition(float &x, float &y, float &z, float* ori = nullptr, float* dist = nullptr) const;
bool IsSpawnedOnTransport() const { return m_creatureData && m_creatureData->mapId != GetMapId(); }
@@ -331,13 +333,6 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
void SetWanderDistance(float dist) { m_wanderDistance = dist; }
void DoImmediateBoundaryCheck() { m_boundaryCheckTime = 0; }
- uint32 GetCombatPulseDelay() const { return m_combatPulseDelay; }
- void SetCombatPulseDelay(uint32 delay) // (secs) interval at which the creature pulses the entire zone into combat (only works in dungeons)
- {
- m_combatPulseDelay = delay;
- if (m_combatPulseTime == 0 || m_combatPulseTime > delay)
- m_combatPulseTime = delay;
- }
void SendZoneUnderAttackMessage(Player* attacker);
@@ -430,6 +425,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
bool IsThreatFeedbackDisabled() const { return _staticFlags.HasFlag(CREATURE_STATIC_FLAG_3_NO_THREAT_FEEDBACK); }
void SetNoThreatFeedback(bool noThreatFeedback) { _staticFlags.ApplyFlag(CREATURE_STATIC_FLAG_3_NO_THREAT_FEEDBACK, noThreatFeedback); }
+ void ForcePartyMembersIntoCombat();
void OverrideSparringHealthPct(float healthPct) { _sparringHealthPct = healthPct; }
void OverrideSparringHealthPct(std::vector<float> const& healthPct);
@@ -482,8 +478,6 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
bool m_ignoreCorpseDecayRatio;
float m_wanderDistance;
uint32 m_boundaryCheckTime; // (msecs) remaining time for next evade boundary check
- uint32 m_combatPulseTime; // (msecs) remaining time for next zone-in-combat pulse
- uint32 m_combatPulseDelay; // (secs) how often the creature puts the entire zone in combat (only works in dungeons)
ReactStates m_reactState; // for AI, not charmInfo
void RegenerateHealth();
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 23719d2a0f7..5f74d0dcf44 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -383,7 +383,6 @@ struct boss_headless_horseman : public ScriptedAI
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetCombatPulseDelay(5);
me->setActive(true);
_events.ScheduleEvent(EVENT_HORSEMAN_CLEAVE, 13s, 0, PHASE_1);
_events.ScheduleEvent(EVENT_RANDOM_LAUGH, 30s, 60s);
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
index 11b2e61efea..40c19e8cfce 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
@@ -337,7 +337,6 @@ struct npc_gatewatcher_petAI : public ScriptedAI
}
_JustEngagedWith();
ScriptedAI::JustEngagedWith(who);
- me->SetCombatPulseDelay(5);
}
void SetData(uint32 data, uint32 value) override
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index b4198fc8fa0..6981c20453e 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -632,7 +632,6 @@ struct boss_faction_championsAI : public BossAI
void JustEngagedWith(Unit* /*who*/) override
{
DoCast(me, SPELL_ANTI_AOE, true);
- me->SetCombatPulseDelay(5);
me->setActive(true);
DoZoneInCombat();
if (Creature* pChampionController = instance->GetCreature(DATA_FACTION_CRUSADERS))
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 5512f5b4460..c6a4c1a9395 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -114,7 +114,6 @@ struct boss_jaraxxus : public BossAI
void Reset() override
{
- me->SetCombatPulseDelay(0);
me->ResetLootMode();
events.Reset();
summons.DespawnAll();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index b61a3633ef7..4ebdd7270ac 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -215,7 +215,6 @@ struct boss_northrend_beastsAI : public BossAI
events.SetPhase(PHASE_EVENT);
summons.DespawnAll();
me->SetReactState(REACT_PASSIVE);
- me->SetCombatPulseDelay(0);
HandleInitialMovement();
}
@@ -248,7 +247,6 @@ struct boss_northrend_beastsAI : public BossAI
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetCombatPulseDelay(5);
me->setActive(true);
ScheduleTasks();
HandleInstanceProgress();
@@ -356,10 +354,7 @@ struct boss_gormok : public boss_northrend_beastsAI
me->SetReactState(REACT_AGGRESSIVE);
// Npc that should keep raid in combat while boss change
if (Creature* combatStalker = me->SummonCreature(NPC_BEASTS_COMBAT_STALKER, CombatStalkerPosition))
- {
DoZoneInCombat(combatStalker);
- combatStalker->SetCombatPulseDelay(5);
- }
DoZoneInCombat();
events.SetPhase(PHASE_COMBAT);
DoCastSelf(SPELL_TANKING_GORMOK, true);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 0a6ca5742d2..98607db6f34 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -276,7 +276,6 @@ struct boss_twin_baseAI : public BossAI
Talk(SAY_AGGRO);
DoCast(me, SurgeSpellId);
- me->SetCombatPulseDelay(5);
me->setActive(true);
events.ScheduleEvent(EVENT_TWIN_SPIKE, 20s);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 17ae3a3dd64..de35763ca12 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -271,7 +271,6 @@ struct boss_blood_council_controller : public BossAI
return;
}
- me->SetCombatPulseDelay(5);
me->setActive(true);
DoZoneInCombat();
instance->SetBossState(DATA_BLOOD_PRINCE_COUNCIL, IN_PROGRESS);
@@ -442,7 +441,6 @@ struct BloodPrincesBossAI : public BossAI
{
events.Reset();
summons.DespawnAll();
- me->SetCombatPulseDelay(0);
me->SetImmuneToPC(false);
_isEmpowered = false;
@@ -452,7 +450,6 @@ struct BloodPrincesBossAI : public BossAI
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetCombatPulseDelay(5);
me->setActive(true);
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_PRINCES_CONTROL)))
DoZoneInCombat(controller);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 9bbdc9149ac..b6948a05f50 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -289,7 +289,6 @@ struct boss_lady_deathwhisper : public BossAI
}
_phase = PHASE_ONE;
- me->SetCombatPulseDelay(5);
me->setActive(true);
DoZoneInCombat();
scheduler.CancelGroup(GROUP_INTRO);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index 25dc005fd52..ed10054edeb 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -272,7 +272,6 @@ struct boss_professor_putricide : public BossAI
Talk(SAY_AGGRO);
DoCast(me, SPELL_OOZE_TANK_PROTECTION, true);
DoZoneInCombat(me);
- me->SetCombatPulseDelay(5);
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, IN_PROGRESS);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index e57abfc67b8..df500406a23 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -280,7 +280,6 @@ struct boss_sindragosa : public BossAI
DoCastSelf(SPELL_PERMAEATING_CHILL);
Talk(SAY_AGGRO);
instance->SetBossState(DATA_SINDRAGOSA, IN_PROGRESS);
- me->SetCombatPulseDelay(5);
me->setActive(true);
me->SetFarVisible(true);
DoZoneInCombat();
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 92b885d6d55..a64996f59d0 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -552,7 +552,6 @@ struct boss_the_lich_king : public BossAI
}
me->setActive(true);
- me->SetCombatPulseDelay(5);
DoZoneInCombat();
events.SetPhase(PHASE_ONE);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
index 2905d24ea24..d30b51119b0 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
@@ -177,7 +177,6 @@ struct boss_four_horsemen_baseAI : public BossAI
case ACTION_BEGIN_FIGHTING:
if (_ourMovementFinished)
break;
- me->SetCombatPulseDelay(5);
BeginFighting();
_ourMovementFinished = true;
break;
@@ -305,7 +304,6 @@ struct boss_four_horsemen_baseAI : public BossAI
_ourMovementFinished = false;
me->SetReactState(REACT_AGGRESSIVE);
SetCombatMovement(false);
- me->SetCombatPulseDelay(0);
me->ResetLootMode();
events.Reset();
summons.DespawnAll();
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
index 4aa91542934..6a2289b5642 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
@@ -329,10 +329,7 @@ struct boss_gothik : public BossAI
{
summons.Summon(summon);
if (me->IsInCombat())
- {
summon->AI()->DoAction(_gateIsOpen ? ACTION_GATE_OPENED : ACTION_ACQUIRE_TARGET);
- summon->SetCombatPulseDelay(5);
- }
else
summon->DespawnOrUnsummon();
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 33207c6048d..a36f99be4a2 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -748,7 +748,6 @@ struct npc_kelthuzad_guardian : public ScriptedAI
me->SetVisible(false);
me->SetHomePosition(me->GetPosition());
DoZoneInCombat();
- me->SetCombatPulseDelay(5);
_visibilityTimer = 2 * IN_MILLISECONDS;
_bloodTapTimer = 25 * IN_MILLISECONDS;
break;
@@ -781,7 +780,6 @@ struct npc_kelthuzad_guardian : public ScriptedAI
void Reset() override
{
- me->SetCombatPulseDelay(0);
ScriptedAI::Reset();
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
index 9d0b962d40a..0cddcf5ad5e 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp
@@ -317,14 +317,12 @@ struct PalehoofMinionsBossAI : public BossAI
void Reset() override
{
- me->SetCombatPulseDelay(0);
events.Reset();
DoCastSelf(SPELL_FREEZE, true);
}
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetCombatPulseDelay(5);
me->setActive(true);
ScheduleTasks();
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
index d4e04e9b8c5..309b538fce4 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
@@ -248,14 +248,12 @@ struct IllidariCouncilBossAI : public BossAI
void Reset() override
{
- me->SetCombatPulseDelay(0);
events.Reset();
DoCastSelf(SPELL_BALANCE_OF_POWER, true);
}
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetCombatPulseDelay(5);
me->setActive(true);
if (Creature* illidari = instance->GetCreature(DATA_ILLIDARI_COUNCIL))
DoZoneInCombat(illidari);
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index 049ecbb80bb..5af82e20198 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -332,7 +332,6 @@ struct boss_essence_of_suffering : public BossAI
void JustEngagedWith(Unit* /*who*/) override
{
- me->SetCombatPulseDelay(5);
me->setActive(true);
events.ScheduleEvent(EVENT_SOUL_DRAIN, 20s);
@@ -401,7 +400,6 @@ struct boss_essence_of_desire : public BossAI
events.ScheduleEvent(EVENT_RUNE_SHIELD, 16s);
events.ScheduleEvent(EVENT_DEADEN, 31s);
- me->SetCombatPulseDelay(5);
me->setActive(true);
Talk(DESI_SAY_FREED);
}
@@ -507,7 +505,6 @@ struct boss_essence_of_anger : public BossAI
events.ScheduleEvent(EVENT_SPITE, 20s);
events.ScheduleEvent(EVENT_FREED_2, Seconds(1), Minutes(3));
- me->SetCombatPulseDelay(5);
me->setActive(true);
}