mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
*Halls of Stone: Sjonnir The Ironshaper, blizzlike add spawning, by Tartalo
--HG-- branch : trunk
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user