aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-06-07 14:17:11 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-01-12 03:19:38 +0100
commite2710bc2327a87fc0d27aa42a100c6460bffdb0a (patch)
treea855c5e49566cceba0b776231c8c77510527f7bc /src
parent95902126a373464f9f631f89ae08293d9ad10f1b (diff)
Scripts/Instances: Fix a bug that would cause the Hodir encounter to never properly begin. Tagging issue #17302.
(cherry picked from commit e5382ee21538e4383a39b4dc0de274e856bb663b)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp11
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp10
2 files changed, 16 insertions, 5 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
index 57ae6cbbcd6..ab634e7be66 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
@@ -32,6 +32,7 @@ enum Say
enum Spells
{
+ // @todo orb uses the wrong spell, this needs sniffs
SPELL_MINDCONTROL = 42013,
SPELL_CHANNEL = 45537,
SPELL_EGG_DESTROY = 19873,
@@ -103,7 +104,7 @@ public:
secondPhase = true;
me->RemoveAllAuras();
- me->SetHealth(me->GetMaxHealth());
+ me->SetFullHealth();
}
void DoAction(int32 action) override
@@ -114,6 +115,7 @@ public:
void DamageTaken(Unit* /*who*/, uint32& damage) override
{
+ // @todo this is wrong - razorgore should still take damage, he should just nuke the whole room and respawn if he dies during P1
if (!secondPhase)
damage = 0;
}
@@ -146,6 +148,7 @@ public:
break;
case EVENT_CONFLAGRATION:
DoCastVictim(SPELL_CONFLAGRATION);
+ // @todo is this even necessary? pretty sure AI ignores targets with disorient by default
if (me->GetVictim() && me->EnsureVictim()->HasAura(SPELL_CONFLAGRATION))
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
me->TauntApply(target);
@@ -175,10 +178,10 @@ public:
{
if (InstanceScript* instance = go->GetInstanceScript())
if (instance->GetData(DATA_EGG_EVENT) != DONE)
- if (Creature* razor = instance->GetCreature(DATA_RAZORGORE_THE_UNTAMED))
+ if (Creature* razorgore = instance->GetCreature(DATA_RAZORGORE_THE_UNTAMED))
{
- razor->Attack(player, true);
- player->CastSpell(razor, SPELL_MINDCONTROL);
+ razorgore->Attack(player, true);
+ player->CastSpell(razorgore, SPELL_MINDCONTROL);
}
return true;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
index 529f80607a2..c8a0a010be6 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
@@ -30,6 +30,8 @@
Destroying of Toasty Fires
*/
+/* @todo Hodir aggro behavior is wonky. He gets set to _PASSIVE, but never to _AGGRESSIVE unless you kill an ice block which doesn't spawn unless you have*/
+
enum HodirYells
{
SAY_AGGRO = 0,
@@ -375,7 +377,7 @@ class boss_hodir : public CreatureScript
Talk(SAY_SLAY);
}
- void DamageTaken(Unit* /*who*/, uint32& damage) override
+ void DamageTaken(Unit* who, uint32& damage) override
{
if (damage >= me->GetHealth())
{
@@ -403,6 +405,12 @@ class boss_hodir : public CreatureScript
_JustDied();
}
+ else if (!me->IsInCombat())
+ {
+ me->SetReactState(REACT_AGGRESSIVE);
+ me->AI()->DoZoneInCombat();
+ me->AI()->AttackStart(who);
+ }
}
void UpdateAI(uint32 diff) override