diff options
Diffstat (limited to 'src/server/scripts/Northrend')
5 files changed, 35 insertions, 52 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index a27a121a852..5309cfdd747 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -415,13 +415,9 @@ public: void JustDied(Unit* /*pKiller*/) { if (me->isSummon()) - { - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) - { - if (pSummoner && pSummoner->isAlive()) - CAST_CRE(pSummoner)->AI()->SetData(1, 0); - } - } + if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (summoner->isAlive()) + summoner->GetAI()->SetData(1, 0); } }; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 1d5e3192c61..b63b34cc0be 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -511,7 +511,7 @@ public: bool liveSide; bool gateClose; - bool isOnSameSide(const Unit *pWho) + bool isOnSameSide(const Unit *pWho) const { return (liveSide == IN_LIVE_SIDE(pWho)); } @@ -530,10 +530,8 @@ public: void JustDied(Unit * /*killer*/) { if (me->isSummon()) - { - if (Unit *owner = CAST_SUM(me)->GetSummoner()) + if (Unit* owner = me->ToTempSummon()->GetSummoner()) CombatAI::JustDied(owner); - } } void EnterEvadeMode() diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp index a675bcc6f03..19c746924bb 100644 --- a/src/server/scripts/Northrend/borean_tundra.cpp +++ b/src/server/scripts/Northrend/borean_tundra.cpp @@ -1299,7 +1299,7 @@ public: return; if (me->isSummon()) - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) + if (Unit* pSummoner = me->ToTempSummon()->GetSummoner()) CAST_AI(npc_thassarian::npc_thassarianAI, CAST_CRE(pSummoner)->AI())->bArthasInPosition = true; } }; @@ -1331,7 +1331,7 @@ public: me->AddUnitState(UNIT_STAT_STUNNED); me->CastSpell(me, SPELL_STUN, true); if (me->isSummon()) - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) + if (Unit* pSummoner = me->ToTempSummon()->GetSummoner()) CAST_AI(npc_thassarian::npc_thassarianAI, CAST_CRE(pSummoner)->AI())->bArlosInPosition = true; } }; @@ -1388,7 +1388,7 @@ public: return; if (me->isSummon()) - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) + if (Unit* pSummoner = me->ToTempSummon()->GetSummoner()) CAST_AI(npc_thassarian::npc_thassarianAI, CAST_CRE(pSummoner)->AI())->bTalbotInPosition = true; } @@ -1493,21 +1493,21 @@ public: if (!bDone) { if (Creature* pTalbot = me->FindNearestCreature(NPC_PRINCE_VALANAR, 50.0f, true)) - CAST_AI(npc_counselor_talbot::npc_counselor_talbotAI, pTalbot->AI())->bCheck = true; + CAST_AI(npc_counselor_talbot::npc_counselor_talbotAI, pTalbot->GetAI())->bCheck = true; me->AddUnitState(UNIT_STAT_STUNNED); me->CastSpell(me, SPELL_STUN, true); if (me->isSummon()) - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) - CAST_AI(npc_thassarian::npc_thassarianAI, CAST_CRE(pSummoner)->AI())->bLeryssaInPosition = true; + if (Unit* pSummoner = me->ToTempSummon()->GetSummoner()) + CAST_AI(npc_thassarian::npc_thassarianAI, pSummoner->GetAI())->bLeryssaInPosition = true; bDone = true; } else { me->SetStandState(UNIT_STAND_STATE_SIT); if (me->isSummon()) - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) + if (Unit* pSummoner = me->ToTempSummon()->GetSummoner()) pSummoner->SetStandState(UNIT_STAND_STATE_SIT); uiPhaseTimer = 1500; Phase = 1; @@ -1524,7 +1524,7 @@ public: { case 1: if (me->isSummon()) - if (Unit* pThassarian = CAST_SUM(me)->GetSummoner()) + if (Unit* pThassarian = me->ToTempSummon()(me)->GetSummoner()) DoScriptText(SAY_THASSARIAN_4, pThassarian); uiPhaseTimer = 5000; ++Phase; @@ -1536,7 +1536,7 @@ public: break; case 3: if (me->isSummon()) - if (Unit* pThassarian = CAST_SUM(me)->GetSummoner()) + if (Unit* pThassarian = me->ToTempSummon()->GetSummoner()) DoScriptText(SAY_THASSARIAN_5, pThassarian); uiPhaseTimer = 5000; ++Phase; @@ -1548,7 +1548,7 @@ public: break; case 5: if (me->isSummon()) - if (Unit* pThassarian = CAST_SUM(me)->GetSummoner()) + if (Unit* pThassarian = me->ToTempSummon()->GetSummoner()) DoScriptText(SAY_THASSARIAN_6, pThassarian); uiPhaseTimer = 5000; ++Phase; @@ -1561,10 +1561,10 @@ public: break; case 7: if (me->isSummon()) - if (Unit* pThassarian = CAST_SUM(me)->GetSummoner()) + if (Unit* pThassarian = me->ToTempSummon()->GetSummoner()) { DoScriptText(SAY_THASSARIAN_7, pThassarian); - CAST_AI(npc_thassarian::npc_thassarianAI, CAST_CRE(pThassarian)->AI())->uiPhase = 16; + CAST_AI(npc_thassarian::npc_thassarianAI, pThassarian->GetAI())->uiPhase = 16; } uiPhaseTimer = 5000; Phase = 0; diff --git a/src/server/scripts/Northrend/howling_fjord.cpp b/src/server/scripts/Northrend/howling_fjord.cpp index 3810d445b61..4b9349e0784 100644 --- a/src/server/scripts/Northrend/howling_fjord.cpp +++ b/src/server/scripts/Northrend/howling_fjord.cpp @@ -173,41 +173,26 @@ public: void Reset() { - InitScriptData(); - } - - void InitScriptData() - { - Player* pPlayer = NULL; + uint64 summonerGUID = 0; + Player* player = NULL; if (me->isSummon()) - if (Unit* summoner = CAST_SUM(me)->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummoner()) if (summoner->GetTypeId() == TYPEID_PLAYER) - pPlayer = CAST_PLR(summoner); + summonerGUID = summoner->GetGUID(); - if (!pPlayer) + if (!summonerGUID) return; me->SetUnitMovementFlags(MOVEMENTFLAG_WALKING); - Start(false, false, pPlayer->GetGUID()); + Start(false, false, summonerGUID); } - void WaypointReached(uint32 i) + void WaypointReached(uint32 waypointId) { - Player* pPlayer = NULL; - if (me->isSummon()) - if (Unit* summoner = CAST_SUM(me)->GetSummoner()) - if (summoner->GetTypeId() == TYPEID_PLAYER) - pPlayer = CAST_PLR(summoner); - - if (!pPlayer) + if (waypointId != 26) return; - switch(i) - { - case 26: - me->DespawnOrUnsummon(); - break; - } + me->DespawnOrUnsummon(); } }; diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp index f03236f86a4..aa4d10ae980 100644 --- a/src/server/scripts/Northrend/sholazar_basin.cpp +++ b/src/server/scripts/Northrend/sholazar_basin.cpp @@ -299,15 +299,19 @@ public: { npc_bushwhackerAI(Creature* pCreature) : ScriptedAI(pCreature) { - MoveToSummoner(); } - void MoveToSummoner() + void InitializeAI() { + if (me->isDead()) + return; + if (me->isSummon()) - if (Unit* pSummoner = CAST_SUM(me)->GetSummoner()) - if (pSummoner) - me->GetMotionMaster()->MovePoint(0, pSummoner->GetPositionX(), pSummoner->GetPositionY(), pSummoner->GetPositionZ()); + if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (summoner) + me->GetMotionMaster()->MovePoint(0, summoner->GetPositionX(), summoner->GetPositionY(), summoner->GetPositionZ()); + + Reset(); } void UpdateAI(const uint32 /*uiDiff*/) |
