aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/zuldrak.cpp105
1 files changed, 52 insertions, 53 deletions
diff --git a/src/bindings/scripts/scripts/northrend/zuldrak.cpp b/src/bindings/scripts/scripts/northrend/zuldrak.cpp
index 00129033b56..83f76254b4b 100644
--- a/src/bindings/scripts/scripts/northrend/zuldrak.cpp
+++ b/src/bindings/scripts/scripts/northrend/zuldrak.cpp
@@ -32,60 +32,59 @@ enum eDrakuruShackles
NPC_RAGECLAW = 29686
};
-struct TRINITY_DLL_DECL npc_drakuru_shacklesAI : public ScriptedAI
-{
- npc_drakuru_shacklesAI(Creature* pCreature) : ScriptedAI(pCreature) {}
-
- Unit* Rageclaw;
-
- void Reset()
- {
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- float x, y, z;
- Rageclaw = NULL;
- m_creature->GetClosePoint(x, y, z, m_creature->GetObjectSize()/3,0.1);
- if (Unit* summon = m_creature->SummonCreature(NPC_RAGECLAW,x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000))
- DoActionOnRageclaw(true,summon);
- }
-
- void DoActionOnRageclaw(bool bLocking, Unit* pWho)
- {
- if (!pWho)
- return;
-
- Rageclaw = pWho;
-
- if (bLocking)
- {
- if (pWho)
- {
- m_creature->SetInFront(Rageclaw);
- Rageclaw->SetInFront(m_creature);
+struct TRINITY_DLL_DECL npc_drakuru_shacklesAI : public ScriptedAI
+{
+ npc_drakuru_shacklesAI(Creature* pCreature) : ScriptedAI(pCreature) {}
+
+ Unit* Rageclaw;
+
+ void Reset()
+ {
+ Rageclaw = NULL;
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+
+ float x, y, z;
+ m_creature->GetClosePoint(x, y, z, m_creature->GetObjectSize() / 3, 0.1f);
+
+ if (Unit* summon = m_creature->SummonCreature(NPC_RAGECLAW, x, y, z,
+ 0, TEMPSUMMON_DEAD_DESPAWN, 1000))
+ {
+ Rageclaw = summon;
+ LockRageclaw();
+ }
+ }
+
+ void LockRageclaw()
+ {
+ m_creature->SetInFront(Rageclaw);
+ Rageclaw->SetInFront(m_creature);
+
+ DoCast(Rageclaw, SPELL_LEFT_CHAIN, true);
+ DoCast(Rageclaw, SPELL_RIGHT_CHAIN, true);
+ }
+
+ void UnlockRageclaw(Unit* pWho)
+ {
+ if (!pWho)
+ return;
+
+ DoCast(Rageclaw, SPELL_FREE_RAGECLAW, true);
+
+ m_creature->setDeathState(DEAD);
+ }
+
+ void SpellHit(Unit* pCaster, const SpellEntry* pSpell)
+ {
+ if (pSpell->Id == SPELL_UNLOCK_SHACKLE)
+ {
+ if (Rageclaw)
+ UnlockRageclaw(pCaster);
+ else
+ m_creature->setDeathState(JUST_DIED);
+ }
+ }
+};
- DoCast(Rageclaw, SPELL_LEFT_CHAIN, true);
- DoCast(Rageclaw, SPELL_RIGHT_CHAIN, true);
- }
- }
- else
- {
- DoCast(Rageclaw, SPELL_FREE_RAGECLAW, true);
- if (pWho->GetTypeId() == TYPEID_PLAYER)
- CAST_PLR(pWho)->CastSpell(Rageclaw, SPELL_UNLOCK_SHACKLE, true);
- m_creature->setDeathState(DEAD);
- }
- }
-
- void SpellHit(Unit* pCaster, const SpellEntry* pSpell)
- {
- if (pSpell->Id == SPELL_UNLOCK_SHACKLE)
- {
- if (Rageclaw)
- DoActionOnRageclaw(false, pCaster);
- else
- m_creature->setDeathState(JUST_DIED);
- }
- }
-};
CreatureAI* GetAI_npc_drakuru_shackles(Creature* pCreature)
{