Ulduar, Halls of Lightning: Ionar disperses only once.
3.3.2 Blizzlike change --HG-- branch : trunk
This commit is contained in:
@@ -77,24 +77,28 @@ struct boss_ionarAI : public ScriptedAI
|
|||||||
SummonList lSparkList;
|
SummonList lSparkList;
|
||||||
|
|
||||||
bool bIsSplitPhase;
|
bool bIsSplitPhase;
|
||||||
|
bool bHasDispersed;
|
||||||
|
|
||||||
uint32 uiSplitTimer;
|
uint32 uiSplitTimer;
|
||||||
|
|
||||||
uint32 uiStaticOverloadTimer;
|
uint32 uiStaticOverloadTimer;
|
||||||
uint32 uiBallLightningTimer;
|
uint32 uiBallLightningTimer;
|
||||||
|
|
||||||
uint32 uiHealthAmountModifier;
|
uint32 uiDisperseHealth;
|
||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
{
|
{
|
||||||
lSparkList.DespawnAll();
|
lSparkList.DespawnAll();
|
||||||
|
|
||||||
bIsSplitPhase = true;
|
bIsSplitPhase = true;
|
||||||
|
bHasDispersed = false;
|
||||||
|
|
||||||
uiSplitTimer = 25*IN_MILISECONDS;
|
uiSplitTimer = 25*IN_MILISECONDS;
|
||||||
|
|
||||||
uiStaticOverloadTimer = urand(5*IN_MILISECONDS, 6*IN_MILISECONDS);
|
uiStaticOverloadTimer = urand(5*IN_MILISECONDS, 6*IN_MILISECONDS);
|
||||||
uiBallLightningTimer = urand(10*IN_MILISECONDS, 11*IN_MILISECONDS);
|
uiBallLightningTimer = urand(10*IN_MILISECONDS, 11*IN_MILISECONDS);
|
||||||
|
|
||||||
uiHealthAmountModifier = 1;
|
uiDisperseHealth = 45 + urand(0,10);
|
||||||
|
|
||||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_DISABLE_MOVE);
|
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_DISABLE_MOVE);
|
||||||
|
|
||||||
@@ -243,9 +247,9 @@ struct boss_ionarAI : public ScriptedAI
|
|||||||
uiBallLightningTimer -= uiDiff;
|
uiBallLightningTimer -= uiDiff;
|
||||||
|
|
||||||
// Health check
|
// Health check
|
||||||
if (HealthBelowPct(100-(20*uiHealthAmountModifier)))
|
if (!bHasDispersed && HealthBelowPct(uiDisperseHealth))
|
||||||
{
|
{
|
||||||
++uiHealthAmountModifier;
|
bHasDispersed = true;
|
||||||
|
|
||||||
DoScriptText(RAND(SAY_SPLIT_1,SAY_SPLIT_2), m_creature);
|
DoScriptText(RAND(SAY_SPLIT_1,SAY_SPLIT_2), m_creature);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user