aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp10
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp6
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp24
-rw-r--r--src/server/scripts/Northrend/howling_fjord.cpp33
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp14
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*/)