aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp
index 70f2fc41f6c..0c8cca36103 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_stone/boss_sjonnir.cpp
@@ -45,6 +45,11 @@ enum Creatures
CREATURE_FORGED_IRON_DWARF = 27982
};
+enum Misc
+{
+ DATA_TIME_BEFORE_OOZE = 150000 //2min 30 secs
+};
+
struct Locations
{
float x, y, z;
@@ -56,6 +61,8 @@ static Locations PipeLocations[] =
{1297.7, 595.6, 199.9} //right
};
+static Locations CenterPoint = {295.21, 667.157, 189.691};
+
struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI
{
boss_sjonnirAI(Creature *c) : ScriptedAI(c)
@@ -71,6 +78,7 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI
uint32 uiLightningRingTimer;
uint32 uiSummonTimer;
uint32 uiFrenzyTimer;
+ uint32 uiEncounterTimer;
ScriptedInstance* pInstance;
@@ -78,6 +86,7 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI
{
bIsFrenzy = false;
+ uiEncounterTimer = 0;
uiChainLightningTimer = 3000 + rand()%5000;
uiLightningShieldTimer = 20000 + rand()%5000;
uiStaticChargeTimer = 20000 + rand()%5000;
@@ -93,6 +102,8 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI
{
DoScriptText(SAY_AGGRO, m_creature);
+ uiEncounterTimer = 0;
+
if (pInstance)
pInstance->SetData(DATA_SJONNIR_EVENT, IN_PROGRESS);
}
@@ -136,7 +147,8 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI
if (uiSummonTimer < diff)
{
uint32 uiSummonPipe = rand()%2;
- m_creature->SummonCreature(RAND(CREATURE_FORGED_IRON_DWARF,CREATURE_FORGED_IRON_TROGG,CREATURE_MALFORMED_OOZE),
+ m_creature->SummonCreature(uiEncounterTimer > DATA_TIME_BEFORE_OOZE ? CREATURE_MALFORMED_OOZE :
+ RAND(CREATURE_FORGED_IRON_DWARF,CREATURE_FORGED_IRON_TROGG),
PipeLocations[uiSummonPipe].x, PipeLocations[uiSummonPipe].y, PipeLocations[uiSummonPipe].z, 0.0f,
TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000);
uiSummonTimer = 20000;
@@ -151,17 +163,20 @@ struct TRINITY_DLL_DECL boss_sjonnirAI : public ScriptedAI
}
else uiFrenzyTimer -= diff;
}
+
+ uiEncounterTimer +=diff;
DoMeleeAttackIfReady();
}
void JustSummoned(Creature* summon)
{
+ summon->GetMotionMaster()->MovePoint(0, CenterPoint.x, CenterPoint.y, CenterPoint.z);
Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
- while (pTarget && pTarget->GetTypeId() != TYPEID_PLAYER)
+ /*while (pTarget && pTarget->GetTypeId() != TYPEID_PLAYER)
pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
if (pTarget)
- summon->AI()->AttackStart(pTarget);
+ summon->AI()->AttackStart(pTarget);*/
}
void JustDied(Unit* killer)