diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp | 44 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp | 15 |
2 files changed, 29 insertions, 30 deletions
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index c67253561e..cf6318747d 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -143,10 +143,7 @@ public: SecondPhase = false; EventStarted = false; - me->RemoveAllAuras(); - me->SetControlled(false, UNIT_STATE_ROOT); - me->UpdatePosition(343.02f, -507.325f, 104.567f, M_PI, true); - me->StopMovingOnCurrentPos(); + me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); if (m_pInstance) { @@ -160,29 +157,28 @@ public: Creature* GetGrauf() { return ObjectAccessor::GetCreature(*me, GraufGUID); } - void JustEngagedWith(Unit* /*pWho*/) override + void DoAction(int32 param) override { - if (!EventStarted) + if (param == ACTION_START_EVENT) { - EventStarted = true; - Talk(SAY_AGGRO); - if (m_pInstance) + if (!EventStarted) { - if (IsHeroic()) - m_pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_LODI_DODI); + EventStarted = true; + Talk(SAY_AGGRO); + if (m_pInstance) + { + if (IsHeroic()) + m_pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_LODI_DODI); - m_pInstance->SetData(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS); - } + m_pInstance->SetData(DATA_SKADI_THE_RUTHLESS, IN_PROGRESS); + } - me->SetControlled(true, UNIT_STATE_ROOT); - me->SetInCombatWithZone(); - events.RescheduleEvent(EVENT_SKADI_START, 2s); + me->SetControlled(true, UNIT_STATE_ROOT); + me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + events.RescheduleEvent(EVENT_SKADI_START, 2s); + } } - } - - void DoAction(int32 param) override - { - if (param == ACTION_PHASE2) + else if (param == ACTION_PHASE2) { SecondPhase = true; events.ScheduleEvent(EVENT_SKADI_CRUSH, 8s); @@ -190,7 +186,7 @@ public: events.ScheduleEvent(EVENT_SKADI_WHIRLWIND, 15s); if (me->GetVictim()) - me->GetMotionMaster()->MoveChase(me->GetVictim()); + me->ResumeChasingVictim(); else me->SetInCombatWithZone(); } @@ -415,7 +411,7 @@ public: Map::PlayerList const& pList = me->GetMap()->GetPlayers(); for(Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr) { - if (itr->GetSource()->GetPositionX() < 320.0f || itr->GetSource()->IsGameMaster() || !itr->GetSource()->IsAlive()) + if (itr->GetSource()->GetPositionY() > -490.0f || itr->GetSource()->IsGameMaster() || !itr->GetSource()->IsAlive()) continue; return; @@ -456,7 +452,7 @@ public: SpawnHelpers(0); SpawnHelpers(0); - events.ScheduleEvent(EVENT_GRAUF_MOVE, 15s); + events.ScheduleEvent(EVENT_GRAUF_MOVE, 5s); events.ScheduleEvent(EVENT_GRAUF_SUMMON_HELPERS, 20s); break; } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp index 5a36f5e841..47588a7bf8 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp @@ -20,6 +20,12 @@ #include "ScriptedCreature.h" #include "utgarde_pinnacle.h" +ObjectData const creatureData[] = +{ + { NPC_SKADI_THE_RUTHLESS, DATA_SKADI_THE_RUTHLESS }, + { 0, 0 } +}; + class instance_utgarde_pinnacle : public InstanceMapScript { public: @@ -36,7 +42,6 @@ public: ObjectGuid SvalaSorrowgrave; ObjectGuid GortokPalehoof; - ObjectGuid SkadiRuthless; ObjectGuid KingYmiron; ObjectGuid FrenziedWorgen; ObjectGuid RavenousFurbolg; @@ -59,6 +64,7 @@ public: void Initialize() override { SetHeaders(DataHeader); + LoadObjectData(creatureData, nullptr); SkadiHits = 0; SkadiInRange = 0; @@ -88,9 +94,6 @@ public: case NPC_GORTOK_PALEHOOF: GortokPalehoof = pCreature->GetGUID(); break; - case NPC_SKADI_THE_RUTHLESS: - SkadiRuthless = pCreature->GetGUID(); - break; case NPC_KING_YMIRON: KingYmiron = pCreature->GetGUID(); break; @@ -110,6 +113,8 @@ public: Grauf = pCreature->GetGUID(); break; } + + InstanceScript::OnCreatureCreate(pCreature); } void OnGameObjectCreate(GameObject* pGo) override @@ -238,8 +243,6 @@ public: return SvalaSorrowgrave; case DATA_GORTOK_PALEHOOF: return GortokPalehoof; - case DATA_SKADI_THE_RUTHLESS: - return SkadiRuthless; case DATA_KING_YMIRON: return KingYmiron; case DATA_NPC_FRENZIED_WORGEN: |
