aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp13
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp8
2 files changed, 15 insertions, 6 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index 27150b2a5cb..93d4e044b00 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -309,6 +309,7 @@ class boss_valithria_dreamwalker : public CreatureScript
_under25PercentTalkDone = false;
_over75PercentTalkDone = false;
_justDied = false;
+ _done = false;
}
void AttackStart(Unit* /*target*/)
@@ -331,9 +332,11 @@ class boss_valithria_dreamwalker : public CreatureScript
void HealReceived(Unit* /*healer*/, uint32& heal)
{
// encounter complete
- if (me->HealthAbovePctHealed(100, heal))
+ if (me->HealthAbovePctHealed(100, heal) && !_done)
{
+ _done = true;
Talk(SAY_VALITHRIA_SUCCESS);
+ _instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
me->RemoveAurasDueToSpell(SPELL_CORRUPTION_VALITHRIA);
DoCast(me, SPELL_ACHIEVEMENT_CHECK);
DoCast(me, SPELL_DREAMWALKERS_RAGE);
@@ -462,6 +465,7 @@ class boss_valithria_dreamwalker : public CreatureScript
bool _under25PercentTalkDone;
bool _over75PercentTalkDone;
bool _justDied;
+ bool _done;
};
CreatureAI* GetAI(Creature* creature) const
@@ -498,10 +502,15 @@ class npc_green_dragon_combat_trigger : public CreatureScript
void AttackStart(Unit* target)
{
- if (target->GetEntry() != NPC_VALITHRIA_DREAMWALKER)
+ if (target->GetTypeId() == TYPEID_PLAYER)
BossAI::AttackStart(target);
}
+ bool CanAIAttack(Unit const* target) const
+ {
+ return target->GetTypeId() == TYPEID_PLAYER;
+ }
+
void JustReachedHome()
{
BossAI::JustReachedHome();
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 2d60fafbf23..190162c7d30 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -676,8 +676,8 @@ class instance_icecrown_citadel : public InstanceMapScript
--HeroicAttempts;
DoUpdateWorldState(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
if (!HeroicAttempts)
- if (Creature* sindra = instance->GetCreature(SindragosaGUID))
- sindra->DespawnOrUnsummon();
+ if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
+ theLichKing->DespawnOrUnsummon();
}
}
break;
@@ -962,8 +962,8 @@ class instance_icecrown_citadel : public InstanceMapScript
return false;
// no break
case DATA_SINDRAGOSA:
- //if (GetBossState(DATA_VALITHRIA_DREAMWALKER) != DONE)
- // return false;
+ if (GetBossState(DATA_VALITHRIA_DREAMWALKER) != DONE)
+ return false;
break;
default:
break;