aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp37
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp6
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp25
-rw-r--r--src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp8
4 files changed, 57 insertions, 19 deletions
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp
index 039c7acee95..d5d2624c932 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp
@@ -12,12 +12,14 @@ update creature_template set scriptname = '' where entry = '';
#include "precompiled.h"
#include "def_gundrak.h"
-#define SPELL_ECK_BERSERK 55816 //Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%.
-#define SPELL_ECK_BITE 55813 //Eck bites down hard, inflicting 150% of his normal damage to an enemy.
-#define SPELL_ECK_SPIT 55814 //Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec.
-#define SPELL_ECK_SPRING_1 55815 //Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back.
-#define SPELL_ECK_SPRING_2 55837 //Eck leaps at a distant target.
-
+enum Spells
+{
+ SPELL_ECK_BERSERK = 55816, //Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%.
+ SPELL_ECK_BITE = 55813, //Eck bites down hard, inflicting 150% of his normal damage to an enemy.
+ SPELL_ECK_SPIT = 55814, //Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec.
+ SPELL_ECK_SPRING_1 = 55815, //Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back.
+ SPELL_ECK_SPRING_2 = 55837 //Eck leaps at a distant target.
+};
struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI
{
boss_eckAI(Creature *c) : ScriptedAI(c)
@@ -64,11 +66,13 @@ struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI
DoCast(m_creature->getVictim(),SPELL_ECK_BITE);
uiBiteTimer = 8000 + rand()%4000;
} else uiBiteTimer -= diff;
+
if (uiSpitTimer < diff)
{
DoCast(m_creature->getVictim(),SPELL_ECK_SPIT);
uiSpitTimer = 6000 + rand()%8000;
} else uiSpitTimer -= diff;
+
if (uiSpringTimer < diff)
{
Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,1);
@@ -78,12 +82,25 @@ struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI
uiSpringTimer = 5000 + rand()%10000;
}
} else uiSpringTimer -= diff;
+
//Berserk on timer or 20% of health
- if (!bBerserk && (uiBerserkTimer < diff || m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 20))
+ if (!bBerserk)
{
- DoCast(m_creature,SPELL_ECK_BERSERK);
- bBerserk = true;
- }else uiBerserkTimer -= diff;
+ if (uiBerserkTimer < diff)
+ {
+ DoCast(m_creature,SPELL_ECK_BERSERK);
+ bBerserk = true;
+ }
+ else
+ {
+ uiBerserkTimer -= diff;
+ if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 20)
+ {
+ DoCast(m_creature,SPELL_ECK_BERSERK);
+ bBerserk = true;
+ }
+ }
+ }
DoMeleeAttackIfReady();
}
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp
index dcf7bde6e41..6e7c44f7193 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp
@@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
Phase = false;
if (pInstance)
- pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, NOT_STARTED);
+ pInstance->SetData(DATA_MOORABI_EVENT, NOT_STARTED);
}
void EnterCombat(Unit *who)
@@ -68,7 +68,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
m_creature->CastSpell(m_creature,SPELL_MOJO_FRENZY,true);
if (pInstance)
- pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, IN_PROGRESS);
+ pInstance->SetData(DATA_MOORABI_EVENT, IN_PROGRESS);
}
void UpdateAI(const uint32 diff)
@@ -158,7 +158,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI
}
if (pInstance)
- pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, DONE);
+ pInstance->SetData(DATA_MOORABI_EVENT, DONE);
}
void KilledUnit(Unit *victim)
{
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp
index 05d95c46136..3c3e6b92643 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp
@@ -50,6 +50,21 @@ enum ConstrictorSpells
H_SPELL_VENOMOUS_BITE = 58996
};
+// Spawning locations
+struct Locations
+{
+ float x, y, z, orientation;
+};
+
+static Locations SpawnLoc[]=
+{
+ {1783.81, 646.637, 133.948, 3.71755},
+ {1775.03, 606.586, 134.165, 1.43117},
+ {1717.39, 630.041, 129.282, 5.96903},
+ {1765.66, 646.542, 134.02, 5.11381},
+ {1716.76, 635.159, 129.282, 0.191986}
+};
+
struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI
{
boss_slad_ranAI(Creature *c) : ScriptedAI(c)
@@ -116,10 +131,10 @@ struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI
{
if (uiPhase == 1)
for (uint8 i = 0;i < (HeroicMode ? 5 : 3); ++i)
- m_creature->SummonCreature(CREATURE_SNAKE, rand()%5, rand()%5, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
+ m_creature->SummonCreature(CREATURE_SNAKE, SpawnLoc[i].x, SpawnLoc[i].y, SpawnLoc[i].z, SpawnLoc[i].orientation, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
if (uiPhase == 2)
for (uint8 i = 0;i < (HeroicMode ? 5 : 3); ++i)
- m_creature->SummonCreature(CREATURE_CONSTRICTORS, rand()%5, rand()%5, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
+ m_creature->SummonCreature(CREATURE_CONSTRICTORS, SpawnLoc[i].x, SpawnLoc[i].y, SpawnLoc[i].z, SpawnLoc[i].orientation, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000);
uiSpawnTimer = 5000;
} else uiSpawnTimer -= diff;
}
@@ -150,6 +165,12 @@ struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI
{
DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature);
}
+
+ void JustSummoned(Creature* summoned)
+ {
+ summoned->GetMotionMaster()->MovePoint(0,m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ());
+
+ }
};
struct TRINITY_DLL_DECL mob_slad_ran_constrictorAI : public ScriptedAI
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp b/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp
index 157b4c87991..1c37cce6b37 100644
--- a/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp
+++ b/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp
@@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance
case 29305: uiMoorabi = pCreature->GetGUID(); break;
case 29306: uiGalDarah = pCreature->GetGUID(); break;
case 29307: uiDrakkariColossus = pCreature->GetGUID(); break;
- case 29332: uiEckTheFerocious = pCreature->GetGUID(); break;
+ case 29932: uiEckTheFerocious = pCreature->GetGUID(); break;
}
}
@@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance
pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
break;
case 192520:
- uiDrakkariColossus = pGo->GetGUID();
+ uiDrakkariColossusAltar = pGo->GetGUID();
if (m_auiEncounter[2] == DONE)
pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1);
break;
@@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance
uiMoorabiStatue = pGo->GetGUID();
break;
case 192567:
- uiDrakkariColossus = pGo->GetGUID();
+ uiDrakkariColossusStatue = pGo->GetGUID();
break;
case 192632:
uiEckTheFerociousDoor = pGo->GetGUID();
@@ -136,7 +136,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance
uiBridge = pGo->GetGUID();
break;
case 192633:
- uiBridge = pGo->GetGUID();
+ uiCollision = pGo->GetGUID();
break;
}
}