aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp
index 30e835711a4..6050e4c7eae 100644
--- a/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp
+++ b/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp
@@ -119,6 +119,73 @@ CreatureAI* GetAI_npc_aeranas(Creature* pCreature)
}
/*######
+## npc_ancestral_wolf
+######*/
+
+enum
+{
+ EMOTE_WOLF_LIFT_HEAD = -1000496,
+ EMOTE_WOLF_HOWL = -1000497,
+ SAY_WOLF_WELCOME = -1000498,
+
+ SPELL_ANCESTRAL_WOLF_BUFF = 29981,
+
+ NPC_RYGA = 17123
+};
+
+struct TRINITY_DLL_DECL npc_ancestral_wolfAI : public npc_escortAI
+{
+ npc_ancestral_wolfAI(Creature* pCreature) : npc_escortAI(pCreature)
+ {
+ if (pCreature->GetOwner() && pCreature->GetOwner()->GetTypeId() == TYPEID_PLAYER)
+ Start(false, false, pCreature->GetOwner()->GetGUID());
+ else
+ error_log("TRINITY: npc_ancestral_wolf can not obtain owner or owner is not a player.");
+
+ pCreature->SetSpeed(MOVE_WALK, 1.5f);
+ Reset();
+ }
+
+ Unit* pRyga;
+
+ void Reset()
+ {
+ pRyga = NULL;
+ m_creature->CastSpell(m_creature, SPELL_ANCESTRAL_WOLF_BUFF, true);
+ }
+
+ void MoveInLineOfSight(Unit* pWho)
+ {
+ if (!pRyga && pWho->GetTypeId() == TYPEID_UNIT && pWho->GetEntry() == NPC_RYGA && m_creature->IsWithinDistInMap(pWho, 15.0f))
+ pRyga = pWho;
+
+ npc_escortAI::MoveInLineOfSight(pWho);
+ }
+
+ void WaypointReached(uint32 uiPointId)
+ {
+ switch(uiPointId)
+ {
+ case 0:
+ DoScriptText(EMOTE_WOLF_LIFT_HEAD, m_creature);
+ break;
+ case 2:
+ DoScriptText(EMOTE_WOLF_HOWL, m_creature);
+ break;
+ case 50:
+ if (pRyga && pRyga->isAlive() && !pRyga->isInCombat())
+ DoScriptText(SAY_WOLF_WELCOME, pRyga);
+ break;
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_ancestral_wolf(Creature* pCreature)
+{
+ return new npc_ancestral_wolfAI(pCreature);
+}
+
+/*######
## go_haaleshi_altar
######*/