*Some fix of sapphiron script.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-05-03 11:28:14 -05:00
parent 84f2aa1e28
commit 193b0634df
2 changed files with 15 additions and 22 deletions

View File

@@ -28,8 +28,8 @@ EndScriptData */
#define SPELL_ICEBOLT 28522
#define SPELL_FROST_BREATH 29318
#define SPELL_FROST_AURA 28531
#define SPELL_LIFE_DRAIN 28542
#define SPELL_FROST_AURA HEROIC(28531,55799)
#define SPELL_LIFE_DRAIN HEROIC(28542,55665)
//#define SPELL_CHILL 28560
#define SPELL_BLIZZARD 28547
#define SPELL_BESERK 26662
@@ -66,7 +66,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
Fly_Timer = 45000;
Icebolt_Timer = 4000;
land_Timer = 0;
Beserk_Timer = 0;
Beserk_Timer = 15*60000;
phase = 1;
Icebolt_Count = 0;
IsInFly = false;
@@ -76,6 +76,8 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
void EnterCombat(Unit *who)
{
DoZoneInCombat();
me->CastSpell(me, SPELL_FROST_AURA, true);
}
void UpdateAI(const uint32 diff)
@@ -85,19 +87,9 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
if(phase == 1)
{
if(FrostAura_Timer < diff)
{
DoCast(m_creature->getVictim(),SPELL_FROST_AURA);
FrostAura_Timer = 5000;
}else FrostAura_Timer -= diff;
if(LifeDrain_Timer < diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_LIFE_DRAIN);
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
DoCast(target,SPELL_LIFE_DRAIN);
DoCastAOE(SPELL_LIFE_DRAIN);
LifeDrain_Timer = 24000;
}else LifeDrain_Timer -= diff;
@@ -178,15 +170,12 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
}else land_Timer -= diff;
}
if ((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() <= 10)
if (Beserk_Timer < diff)
{
if (Beserk_Timer < diff)
{
DoScriptText(EMOTE_ENRAGE, m_creature);
DoCast(m_creature,SPELL_BESERK);
Beserk_Timer = 300000;
}else Beserk_Timer -= diff;
}
DoScriptText(EMOTE_ENRAGE, m_creature);
DoCast(m_creature,SPELL_BESERK);
Beserk_Timer = 300000;
}else Beserk_Timer -= diff;
if (phase!=2)
DoMeleeAttackIfReady();