aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-12-09 17:11:10 +0200
committerGitHub <noreply@github.com>2021-12-09 17:11:10 +0200
commita021d12f85d50c55788a34e881e45f1a34bd606d (patch)
tree31b9773356855a03b118198e249e60567b46bde0 /src
parent36ee9714157e3af4e2b6b3bb9a753e28360ccd58 (diff)
Scripts/HoS: Update Maiden of Grief (#27360)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp40
1 files changed, 23 insertions, 17 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
index c651439bb15..88c7280eb23 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
@@ -19,8 +19,11 @@
#include "halls_of_stone.h"
#include "InstanceScript.h"
#include "ScriptedCreature.h"
+#include "Spell.h"
+#include "SpellInfo.h"
+#include "SpellMgr.h"
-enum Yells
+enum Texts
{
SAY_AGGRO = 0,
SAY_SLAY = 1,
@@ -57,12 +60,6 @@ struct boss_maiden_of_grief : public BossAI
{
_Reset();
- if (IsHeroic())
- events.ScheduleEvent(EVENT_PARTING_SORROW, 25s, 30s);
- events.ScheduleEvent(EVENT_STORM_OF_GRIEF, 10s);
- events.ScheduleEvent(EVENT_SHOCK_OF_SORROW, 20s, 25s);
- events.ScheduleEvent(EVENT_PILLAR_OF_WOE, 5s, 15s);
-
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_GOOD_GRIEF_START_EVENT);
}
@@ -71,13 +68,24 @@ struct boss_maiden_of_grief : public BossAI
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
+ if (IsHeroic())
+ events.ScheduleEvent(EVENT_PARTING_SORROW, 25s, 30s);
+ events.ScheduleEvent(EVENT_STORM_OF_GRIEF, 5s, 10s);
+ events.ScheduleEvent(EVENT_SHOCK_OF_SORROW, 15s, 25s);
+ events.ScheduleEvent(EVENT_PILLAR_OF_WOE, 5s, 15s);
+
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_GOOD_GRIEF_START_EVENT);
}
- void KilledUnit(Unit* who) override
+ void KilledUnit(Unit* /*who*/) override
+ {
+ Talk(SAY_SLAY);
+ }
+
+ void OnSpellCastFinished(SpellInfo const* spell, SpellFinishReason reason) override
{
- if (who->GetTypeId() == TYPEID_PLAYER)
- Talk(SAY_SLAY);
+ if (reason == SPELL_FINISHED_SUCCESSFUL_CAST && spell->Id == sSpellMgr->GetSpellIdForDifficulty(SPELL_SHOCK_OF_SORROW, me))
+ Talk(SAY_STUN);
}
void JustDied(Unit* /*killer*/) override
@@ -103,24 +111,22 @@ struct boss_maiden_of_grief : public BossAI
case EVENT_PARTING_SORROW:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true))
DoCast(target, SPELL_PARTING_SORROW);
- events.ScheduleEvent(EVENT_PARTING_SORROW, 30s, 40s);
+ events.Repeat(30s, 40s);
break;
case EVENT_STORM_OF_GRIEF:
- DoCastVictim(SPELL_STORM_OF_GRIEF, true);
- events.ScheduleEvent(EVENT_STORM_OF_GRIEF, 15s, 20s);
+ DoCastVictim(SPELL_STORM_OF_GRIEF);
+ events.Repeat(15s, 20s);
break;
case EVENT_SHOCK_OF_SORROW:
- ResetThreatList();
- Talk(SAY_STUN);
DoCastAOE(SPELL_SHOCK_OF_SORROW);
- events.ScheduleEvent(EVENT_SHOCK_OF_SORROW, 20s, 30s);
+ events.Repeat(20s, 35s);
break;
case EVENT_PILLAR_OF_WOE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 0.0f, true))
DoCast(target, SPELL_PILLAR_OF_WOE);
else
DoCastVictim(SPELL_PILLAR_OF_WOE);
- events.ScheduleEvent(EVENT_PILLAR_OF_WOE, 5s, 25s);
+ events.Repeat(5s, 25s);
break;
default:
break;