aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp36
-rw-r--r--src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp7
-rw-r--r--src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp32
4 files changed, 52 insertions, 25 deletions
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp
index 9d05fd44a6c..b3e4bed1f90 100644
--- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp
+++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp
@@ -29,21 +29,26 @@ Script Data End */
enum eSpells
{
- SPELL_BELLOWING_ROAR = 44863, // fears the group, can be resisted/dispelled
- SPELL_GRIEVOUS_BITE = 48920,
- SPELL_MANGLING_SLASH = 48873, //casted on the current tank, adds debuf
- SPELL_FEARSOME_ROAR = 48849,
- H_SPELL_FEARSOME_ROAR = 48849, //Not stacking, debuff
- SPELL_PIERCING_SLASH = 48878, //debuff -->Armor reduced by 75%
- SPELL_RAPTOR_CALL = 59416, //dummy
-
- SPELL_GUT_RIP = 49710,
- SPELL_REND = 13738
+ SPELL_BELLOWING_ROAR = 44863, // fears the group, can be resisted/dispelled
+ SPELL_GRIEVOUS_BITE = 48920,
+ SPELL_MANGLING_SLASH = 48873, //casted on the current tank, adds debuf
+ SPELL_FEARSOME_ROAR = 48849,
+ H_SPELL_FEARSOME_ROAR = 48849, //Not stacking, debuff
+ SPELL_PIERCING_SLASH = 48878, //debuff -->Armor reduced by 75%
+ SPELL_RAPTOR_CALL = 59416, //dummy
+ SPELL_GUT_RIP = 49710,
+ SPELL_REND = 13738
};
enum eArchivements
{
- ACHIEV_BETTER_OFF_DRED = 2039
+ ACHIEV_BETTER_OFF_DRED = 2039
+};
+
+enum Creatures
+{
+ NPC_RAPTOR_1 = 26641,
+ NPC_RAPTOR_2 = 26628
};
struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI
@@ -75,7 +80,7 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI
ManglingSlashTimer = 18500;
FearsomeRoarTimer = urand(10000,20000);
PiercingSlashTimer = 17000;
- RaptorCallTimer = 12000;
+ RaptorCallTimer = urand(20000,25000);
}
void EnterCombat(Unit* who)
@@ -127,12 +132,9 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI
float x,y,z;
m_creature->GetClosePoint(x,y,z,m_creature->GetObjectSize()/3,10.0f);
- m_creature->SummonCreature(26628,x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000);
-
- m_creature->GetClosePoint(x,y,z,m_creature->GetObjectSize()/3,10.0f);
- m_creature->SummonCreature(26641,x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000);
+ m_creature->SummonCreature(RAND(NPC_RAPTOR_1,NPC_RAPTOR_2),x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000);
- RaptorCallTimer = 20000;
+ RaptorCallTimer = urand(20000,25000);
} else RaptorCallTimer -=diff;
DoMeleeAttackIfReady();
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp
index 9b4c6155cc8..bafc5de6ee0 100644
--- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp
+++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp
@@ -78,7 +78,7 @@ struct Location
static Location AddSpawnPoint = { -379.20, -816.76, 59.70};
static Location CrystalHandlerSpawnPoint = { -326.626343, -709.956604, 27.813314 };
-static Location AddDestinyPoint = { -382.169, -711.369, 27.375};
+static Location AddDestinyPoint = { -379.314545, -772.577637, 28.58837 };
struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI
{
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp
index df2e25299a6..3c8fc03b323 100644
--- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp
+++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp
@@ -50,6 +50,7 @@ enum Spells
H_SPELL_POISON_CLOUD = 59969,
SPELL_RETURN_FLESH = 53463 //Channeled spell ending phase two and returning to phase 1. This ability will stun the party for 6 seconds.
};
+/* not needed
enum PlayerSkills
{
//Players' skills during Phase2
@@ -58,7 +59,7 @@ enum PlayerSkills
SPELL_PLAYER_PHASE2_BONE_ARMOR = 49609,
SPELL_PLAYER_PHASE2_TOUCH_OF_LIFE = 49617
};
-
+*/
//not in db
enum Yells
{
@@ -73,7 +74,7 @@ enum Yells
};
enum Models
{
- MODEL_FLESH = 27696,
+ MODEL_FLESH = 27073,
MODEL_SKELETON = 27511
};
enum CombatPhase
@@ -215,7 +216,7 @@ struct TRINITY_DLL_DECL boss_tharon_jaAI : public ScriptedAI
if (uiPhaseTimer < diff)
{
DoScriptText(RAND(SAY_SKELETON_1,SAY_SKELETON_2), m_creature);
- m_creature->SetDisplayId(m_creature->GetNativeDisplayId());
+ m_creature->DeMorph();
Phase = SKELETAL;
uiPhaseTimer = 20000;
uiCurseOfLifeTimer = 1000;
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp
index 5f67fc9976f..ec211ecde86 100644
--- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp
+++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp
@@ -55,12 +55,15 @@ enum Achievements
};
enum Creatures
{
- NPC_DRAKKARI_INVADERS = 22222
+ NPC_DRAKKARI_INVADER_1 = 27753,
+ NPC_DRAKKARI_INVADER_2 = 27709
};
+Position SpawnPoint = { -260.493011, -622.968018, 26.605301, 3.036870 };
+
struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
{
- boss_trollgoreAI(Creature *c) : ScriptedAI(c)
+ boss_trollgoreAI(Creature *c) : ScriptedAI(c), lSummons(me)
{
pInstance = c->GetInstanceData();
}
@@ -70,9 +73,12 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
uint32 uiCrushTimer;
uint32 uiInfectedWoundTimer;
uint32 uiExplodeCorpseTimer;
+ uint32 uiSpawnTimer;
bool bAchiev;
+ SummonList lSummons;
+
ScriptedInstance* pInstance;
void Reset()
@@ -82,9 +88,12 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
uiCrushTimer = urand(1000,5000);
uiInfectedWoundTimer = urand(6000,10000);
uiExplodeCorpseTimer = 3000;
+ uiSpawnTimer = urand(30000,40000);
bAchiev = HeroicMode;
+ lSummons.DespawnAll();
+
if (m_creature->HasAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME)))
m_creature->RemoveAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME));
@@ -99,14 +108,20 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
if (pInstance)
pInstance->SetData(DATA_TROLLGORE_EVENT, IN_PROGRESS);
}
- void AttackStart(Unit* who) {}
- void MoveInLineOfSight(Unit* who) {}
+
void UpdateAI(const uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
return;
+ if (uiSpawnTimer < diff)
+ {
+ for (uint8 i = 0; i < urand(2,HEROIC(3,5)); ++i)
+ DoSpawnCreature(RAND(NPC_DRAKKARI_INVADER_1,NPC_DRAKKARI_INVADER_2), SpawnPoint.GetPositionX(), SpawnPoint.GetPositionY(), SpawnPoint.GetPositionZ(), SpawnPoint.GetOrientation(), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000);
+ uiSpawnTimer = urand(30000,40000);
+ } else uiSpawnTimer -= diff;
+
if (uiConsumeTimer < diff)
{
DoScriptText(SAY_CONSUME, m_creature);
@@ -149,10 +164,13 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
DoMeleeAttackIfReady();
}
+
void JustDied(Unit* killer)
{
DoScriptText(SAY_DEATH, m_creature);
+ lSummons.DespawnAll();
+
if (pInstance)
{
if (bAchiev)
@@ -160,12 +178,18 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI
pInstance->SetData(DATA_TROLLGORE_EVENT, DONE);
}
}
+
void KilledUnit(Unit *victim)
{
if (victim == m_creature)
return;
DoScriptText(SAY_KILL, m_creature);
}
+
+ void JustSummoned(Creature* summon)
+ {
+ summon->AI()->AttackStart(m_creature);
+ }
};
CreatureAI* GetAI_boss_trollgore(Creature* pCreature)