Merge [SD2]
r1186 Remove one hack (SPELL_EFFECT_CHARGE2 implemented in Mangos) - skip r1187 After one boss of tomb of seven event dead (BRD), open door for progression of instance. Remove manual summon and use spell instead. r1188 Move most handling of GO's in BT to instance script. - skip r1189 Fix possible crash, m_pInstance must always be checked before use. - we don't have that problem r1190 Remove old commented code no longer valid and apply code style r1191 Update MaNGOS-8095-ScriptDev2.patch, correcting whitespace, tabs and linefeed - skip --HG-- branch : trunk
This commit is contained in:
@@ -17,16 +17,19 @@
|
|||||||
/* ScriptData
|
/* ScriptData
|
||||||
SDName: Boss_Tomb_Of_Seven
|
SDName: Boss_Tomb_Of_Seven
|
||||||
SD%Complete: 50
|
SD%Complete: 50
|
||||||
SDComment: Learning Smelt Dark Iron if tribute quest rewarded. Missing event and re-spawn GO Spectral Chalice
|
SDComment: Learning Smelt Dark Iron if tribute quest rewarded. Missing event.
|
||||||
SDCategory: Blackrock Depths
|
SDCategory: Blackrock Depths
|
||||||
EndScriptData */
|
EndScriptData */
|
||||||
|
|
||||||
#include "precompiled.h"
|
#include "precompiled.h"
|
||||||
#include "def_blackrock_depths.h"
|
#include "def_blackrock_depths.h"
|
||||||
|
|
||||||
#define SPELL_SUNDERARMOR 24317
|
enum
|
||||||
#define SPELL_SHIELDBLOCK 12169
|
{
|
||||||
#define SPELL_STRIKE 15580
|
SPELL_SUNDERARMOR = 24317,
|
||||||
|
SPELL_SHIELDBLOCK = 12169,
|
||||||
|
SPELL_STRIKE = 15580
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_angerrelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_angerrelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -102,9 +105,12 @@ CreatureAI* GetAI_boss_angerrel(Creature *_Creature)
|
|||||||
return new boss_angerrelAI (_Creature);
|
return new boss_angerrelAI (_Creature);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPELL_SINISTERSTRIKE 15581
|
enum
|
||||||
#define SPELL_BACKSTAB 15582
|
{
|
||||||
#define SPELL_GOUGE 13579
|
SPELL_SINISTERSTRIKE = 15581,
|
||||||
|
SPELL_BACKSTAB = 15582,
|
||||||
|
SPELL_GOUGE = 13579
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_doperelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_doperelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -180,9 +186,12 @@ CreatureAI* GetAI_boss_doperel(Creature *_Creature)
|
|||||||
return new boss_doperelAI (_Creature);
|
return new boss_doperelAI (_Creature);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPELL_SHADOWBOLT 17483 //Not sure if right ID
|
enum
|
||||||
#define SPELL_MANABURN 10876
|
{
|
||||||
#define SPELL_SHADOWSHIELD 22417
|
SPELL_SHADOWBOLT = 17483, //Not sure if right ID
|
||||||
|
SPELL_MANABURN = 10876,
|
||||||
|
SPELL_SHADOWSHIELD = 22417
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_haterelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_haterelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -271,10 +280,13 @@ CreatureAI* GetAI_boss_haterel(Creature *_Creature)
|
|||||||
return new boss_haterelAI (_Creature);
|
return new boss_haterelAI (_Creature);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPELL_MINDBLAST 15587
|
enum
|
||||||
#define SPELL_HEAL 15586
|
{
|
||||||
#define SPELL_PRAYEROFHEALING 15585
|
SPELL_MINDBLAST = 15587,
|
||||||
#define SPELL_SHIELD 10901
|
SPELL_HEAL = 15586,
|
||||||
|
SPELL_PRAYEROFHEALING = 15585,
|
||||||
|
SPELL_SHIELD = 10901
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_vilerelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_vilerelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -359,11 +371,14 @@ CreatureAI* GetAI_boss_vilerel(Creature *_Creature)
|
|||||||
return new boss_vilerelAI (_Creature);
|
return new boss_vilerelAI (_Creature);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPELL_FROSTBOLT 16799
|
enum
|
||||||
#define SPELL_FROSTARMOR 15784 //This is actually a buff he gives himself
|
{
|
||||||
#define SPELL_BLIZZARD 19099
|
SPELL_FROSTBOLT = 16799,
|
||||||
#define SPELL_FROSTNOVA 15063
|
SPELL_FROSTARMOR = 15784, //This is actually a buff he gives himself
|
||||||
#define SPELL_FROSTWARD 15004
|
SPELL_BLIZZARD = 19099,
|
||||||
|
SPELL_FROSTNOVA = 15063,
|
||||||
|
SPELL_FROSTWARD = 15004
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_seethrelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_seethrelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -461,9 +476,12 @@ CreatureAI* GetAI_boss_seethrel(Creature *_Creature)
|
|||||||
return new boss_seethrelAI (_Creature);
|
return new boss_seethrelAI (_Creature);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPELL_HAMSTRING 9080
|
enum
|
||||||
#define SPELL_CLEAVE 15579
|
{
|
||||||
#define SPELL_MORTALSTRIKE 15708
|
SPELL_HAMSTRING = 9080,
|
||||||
|
SPELL_CLEAVE = 15579,
|
||||||
|
SPELL_MORTALSTRIKE = 15708
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_gloomrelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_gloomrelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -585,10 +603,14 @@ bool GossipSelect_boss_gloomrel(Player *player, Creature *_Creature, uint32 send
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SPELL_SHADOWBOLTVOLLEY 17228
|
enum
|
||||||
#define SPELL_IMMOLATE 15505
|
{
|
||||||
#define SPELL_CURSEOFWEAKNESS 17227
|
SPELL_SHADOWBOLTVOLLEY = 17228,
|
||||||
#define SPELL_DEMONARMOR 11735
|
SPELL_IMMOLATE = 15505,
|
||||||
|
SPELL_CURSEOFWEAKNESS = 17227,
|
||||||
|
SPELL_DEMONARMOR = 11735,
|
||||||
|
SPELL_SUMMON_VOIDWALKERS = 15092
|
||||||
|
};
|
||||||
|
|
||||||
struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
||||||
{
|
{
|
||||||
@@ -614,6 +636,10 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
|||||||
Voidwalkers = false;
|
Voidwalkers = false;
|
||||||
|
|
||||||
m_creature->setFaction(FACTION_FRIEND);
|
m_creature->setFaction(FACTION_FRIEND);
|
||||||
|
|
||||||
|
// was set before event start, so set again
|
||||||
|
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2);
|
||||||
|
|
||||||
if(pInstance)
|
if(pInstance)
|
||||||
if(pInstance->GetData(DATA_GHOSTKILL) >= 7)
|
if(pInstance->GetData(DATA_GHOSTKILL) >= 7)
|
||||||
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||||
@@ -644,27 +670,6 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
|||||||
pInstance->SetData(DATA_GHOSTKILL, 1);
|
pInstance->SetData(DATA_GHOSTKILL, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SummonVoidwalkers(Unit* victim)
|
|
||||||
{
|
|
||||||
Rand = rand()%5;
|
|
||||||
switch (rand()%2)
|
|
||||||
{
|
|
||||||
case 0: RandX = 0 - Rand; break;
|
|
||||||
case 1: RandX = 0 + Rand; break;
|
|
||||||
}
|
|
||||||
Rand = 0;
|
|
||||||
Rand = rand()%5;
|
|
||||||
switch (rand()%2)
|
|
||||||
{
|
|
||||||
case 0: RandY = 0 - Rand; break;
|
|
||||||
case 1: RandY = 0 + Rand; break;
|
|
||||||
}
|
|
||||||
Rand = 0;
|
|
||||||
Summoned = DoSpawnCreature(16119, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
|
|
||||||
if(Summoned)
|
|
||||||
(Summoned->AI())->AttackStart(victim);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if (!UpdateVictim() )
|
if (!UpdateVictim() )
|
||||||
@@ -703,9 +708,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
|
|||||||
//Summon Voidwalkers
|
//Summon Voidwalkers
|
||||||
if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51 )
|
if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51 )
|
||||||
{
|
{
|
||||||
SummonVoidwalkers(m_creature->getVictim());
|
m_creature->CastSpell(m_creature->getVictim(), SPELL_SUMMON_VOIDWALKERS, true);
|
||||||
SummonVoidwalkers(m_creature->getVictim());
|
|
||||||
SummonVoidwalkers(m_creature->getVictim());
|
|
||||||
Voidwalkers = true;
|
Voidwalkers = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -118,9 +118,6 @@ enum
|
|||||||
POINT_ID_LAND = 200
|
POINT_ID_LAND = 200
|
||||||
};
|
};
|
||||||
|
|
||||||
//POS_SARTHARION_X = 3246.57,
|
|
||||||
//POS_SARTHARION_Y = 551.263,
|
|
||||||
|
|
||||||
struct Waypoint
|
struct Waypoint
|
||||||
{
|
{
|
||||||
float m_fX, m_fY, m_fZ;
|
float m_fX, m_fY, m_fZ;
|
||||||
@@ -207,41 +204,26 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
|||||||
m_bHasCalledShadron = false;
|
m_bHasCalledShadron = false;
|
||||||
m_bHasCalledVesperon = false;
|
m_bHasCalledVesperon = false;
|
||||||
|
|
||||||
if (m_pInstance)
|
|
||||||
{
|
|
||||||
if (!m_creature->isAlive())
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
|
|
||||||
|
|
||||||
//do dragons actually respawn like this? Commented for now, until confirmed.
|
|
||||||
|
|
||||||
/*if (Unit* Temp1 = Unit::GetUnit((*m_creature),m_pInstance->GetData64(DATA_TENEBRON)))
|
|
||||||
if (Temp1->isDead())
|
|
||||||
((Creature*)Temp1)->Respawn();
|
|
||||||
|
|
||||||
if (Unit* Temp2 = Unit::GetUnit((*m_creature),m_pInstance->GetData64(DATA_SHADRON)))
|
|
||||||
if (Temp2->isDead())
|
|
||||||
((Creature*)Temp2)->Respawn();
|
|
||||||
|
|
||||||
if (Unit* Temp3 = Unit::GetUnit((*m_creature),m_pInstance->GetData64(DATA_VESPERON)))
|
|
||||||
if (Temp3->isDead())
|
|
||||||
((Creature*)Temp3)->Respawn();*/
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_creature->HasAura(SPELL_TWILIGHT_REVENGE))
|
if (m_creature->HasAura(SPELL_TWILIGHT_REVENGE))
|
||||||
m_creature->RemoveAurasDueToSpell(SPELL_TWILIGHT_REVENGE);
|
m_creature->RemoveAurasDueToSpell(SPELL_TWILIGHT_REVENGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void JustReachedHome()
|
||||||
|
{
|
||||||
|
if (m_pInstance)
|
||||||
|
m_pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
|
||||||
|
}
|
||||||
|
|
||||||
void Aggro(Unit* pWho)
|
void Aggro(Unit* pWho)
|
||||||
{
|
{
|
||||||
DoScriptText(SAY_SARTHARION_AGGRO,m_creature);
|
DoScriptText(SAY_SARTHARION_AGGRO,m_creature);
|
||||||
DoZoneInCombat();
|
DoZoneInCombat();
|
||||||
|
|
||||||
if (m_pInstance)
|
if (m_pInstance)
|
||||||
|
{
|
||||||
m_pInstance->SetData(TYPE_SARTHARION_EVENT, IN_PROGRESS);
|
m_pInstance->SetData(TYPE_SARTHARION_EVENT, IN_PROGRESS);
|
||||||
|
FetchDragons();
|
||||||
FetchDragons();
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* pKiller)
|
void JustDied(Unit* pKiller)
|
||||||
@@ -355,13 +337,6 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
|||||||
if (!UpdateVictim())
|
if (!UpdateVictim())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//reset if out of his platform, must find better/faster way to do this
|
|
||||||
//if (m_creature->GetDistance2d(POS_SARTHARION_X, POS_SARTHARION_Y) > 55)
|
|
||||||
//{
|
|
||||||
//EnterEvadeMode();
|
|
||||||
//return;
|
|
||||||
//}
|
|
||||||
|
|
||||||
if (!m_bIsBerserk && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) <= 10)
|
if (!m_bIsBerserk && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) <= 10)
|
||||||
{
|
{
|
||||||
DoScriptText(SAY_SARTHARION_BERSERK,m_creature);
|
DoScriptText(SAY_SARTHARION_BERSERK,m_creature);
|
||||||
@@ -376,7 +351,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
DoCast(m_creature, SPELL_WILL_OF_SARTHARION);
|
DoCast(m_creature, SPELL_WILL_OF_SARTHARION);
|
||||||
m_uiEnrageTimer = 0;
|
m_uiEnrageTimer = 0;
|
||||||
}else m_uiEnrageTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiEnrageTimer -= uiDiff;
|
||||||
}
|
}
|
||||||
|
|
||||||
// flame tsunami
|
// flame tsunami
|
||||||
@@ -384,7 +361,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
SendFlameTsunami();
|
SendFlameTsunami();
|
||||||
m_uiFlameTsunamiTimer = 30000;
|
m_uiFlameTsunamiTimer = 30000;
|
||||||
}else m_uiFlameTsunamiTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiFlameTsunamiTimer -= uiDiff;
|
||||||
|
|
||||||
// flame breath
|
// flame breath
|
||||||
if (m_uiFlameBreathTimer < uiDiff)
|
if (m_uiFlameBreathTimer < uiDiff)
|
||||||
@@ -392,21 +371,27 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
|||||||
DoScriptText(SAY_SARTHARION_BREATH, m_creature);
|
DoScriptText(SAY_SARTHARION_BREATH, m_creature);
|
||||||
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH);
|
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH);
|
||||||
m_uiFlameBreathTimer = 25000 + rand()%10000;
|
m_uiFlameBreathTimer = 25000 + rand()%10000;
|
||||||
}else m_uiFlameBreathTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiFlameBreathTimer -= uiDiff;
|
||||||
|
|
||||||
// Tail Sweep
|
// Tail Sweep
|
||||||
if (m_uiTailSweepTimer < uiDiff)
|
if (m_uiTailSweepTimer < uiDiff)
|
||||||
{
|
{
|
||||||
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_TAIL_LASH_H : SPELL_TAIL_LASH);
|
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_TAIL_LASH_H : SPELL_TAIL_LASH);
|
||||||
m_uiTailSweepTimer = 15000 + rand()%5000;
|
m_uiTailSweepTimer = 15000 + rand()%5000;
|
||||||
}else m_uiTailSweepTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiTailSweepTimer -= uiDiff;
|
||||||
|
|
||||||
// Cleave
|
// Cleave
|
||||||
if (m_uiCleaveTimer < uiDiff)
|
if (m_uiCleaveTimer < uiDiff)
|
||||||
{
|
{
|
||||||
DoCast(m_creature->getVictim(), SPELL_CLEAVE);
|
DoCast(m_creature->getVictim(), SPELL_CLEAVE);
|
||||||
m_uiCleaveTimer = 7000 + rand()%3000;
|
m_uiCleaveTimer = 7000 + rand()%3000;
|
||||||
}else m_uiCleaveTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiCleaveTimer -= uiDiff;
|
||||||
|
|
||||||
// Lavas Strike
|
// Lavas Strike
|
||||||
if (m_uiLavaStrikeTimer < uiDiff)
|
if (m_uiLavaStrikeTimer < uiDiff)
|
||||||
@@ -423,28 +408,36 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_uiLavaStrikeTimer = 5000 + rand()%15000;
|
m_uiLavaStrikeTimer = 5000 + rand()%15000;
|
||||||
}else m_uiLavaStrikeTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiLavaStrikeTimer -= uiDiff;
|
||||||
|
|
||||||
// call tenebron
|
// call tenebron
|
||||||
if (!m_bHasCalledTenebron && m_uiTenebronTimer < uiDiff)
|
if (!m_bHasCalledTenebron && m_uiTenebronTimer < uiDiff)
|
||||||
{
|
{
|
||||||
CallDragon(DATA_TENEBRON);
|
CallDragon(DATA_TENEBRON);
|
||||||
m_bHasCalledTenebron = true;
|
m_bHasCalledTenebron = true;
|
||||||
}else m_uiTenebronTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiTenebronTimer -= uiDiff;
|
||||||
|
|
||||||
// call shadron
|
// call shadron
|
||||||
if (!m_bHasCalledShadron && m_uiShadronTimer < uiDiff)
|
if (!m_bHasCalledShadron && m_uiShadronTimer < uiDiff)
|
||||||
{
|
{
|
||||||
CallDragon(DATA_SHADRON);
|
CallDragon(DATA_SHADRON);
|
||||||
m_bHasCalledShadron = true;
|
m_bHasCalledShadron = true;
|
||||||
}else m_uiShadronTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadronTimer -= uiDiff;
|
||||||
|
|
||||||
// call vesperon
|
// call vesperon
|
||||||
if (!m_bHasCalledVesperon && m_uiVesperonTimer < uiDiff)
|
if (!m_bHasCalledVesperon && m_uiVesperonTimer < uiDiff)
|
||||||
{
|
{
|
||||||
CallDragon(DATA_VESPERON);
|
CallDragon(DATA_VESPERON);
|
||||||
m_bHasCalledVesperon = true;
|
m_bHasCalledVesperon = true;
|
||||||
}else m_uiVesperonTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiVesperonTimer -= uiDiff;
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
|
|
||||||
@@ -682,7 +675,9 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
|
|||||||
|
|
||||||
debug_log("dummy_dragonAI: %s moving to point %u", m_creature->GetName(), m_uiWaypointId);
|
debug_log("dummy_dragonAI: %s moving to point %u", m_creature->GetName(), m_uiWaypointId);
|
||||||
m_uiMoveNextTimer = 0;
|
m_uiMoveNextTimer = 0;
|
||||||
} else m_uiMoveNextTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiMoveNextTimer -= uiDiff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -738,7 +733,9 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
|
|||||||
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
|
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
|
||||||
|
|
||||||
m_uiShadowFissureTimer = 15000 + rand()%5000;
|
m_uiShadowFissureTimer = 15000 + rand()%5000;
|
||||||
}else m_uiShadowFissureTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadowFissureTimer -= uiDiff;
|
||||||
|
|
||||||
// shadow breath
|
// shadow breath
|
||||||
if (m_uiShadowBreathTimer < uiDiff)
|
if (m_uiShadowBreathTimer < uiDiff)
|
||||||
@@ -746,7 +743,9 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
|
|||||||
DoScriptText(SAY_TENEBRON_BREATH, m_creature);
|
DoScriptText(SAY_TENEBRON_BREATH, m_creature);
|
||||||
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
|
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
|
||||||
m_uiShadowBreathTimer = 20000 + rand()%5000;
|
m_uiShadowBreathTimer = 20000 + rand()%5000;
|
||||||
}else m_uiShadowBreathTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadowBreathTimer -= uiDiff;
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
@@ -814,7 +813,9 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
|
|||||||
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
|
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
|
||||||
|
|
||||||
m_uiShadowFissureTimer = 15000 + rand()%5000;
|
m_uiShadowFissureTimer = 15000 + rand()%5000;
|
||||||
}else m_uiShadowFissureTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadowFissureTimer -= uiDiff;
|
||||||
|
|
||||||
// shadow breath
|
// shadow breath
|
||||||
if (m_uiShadowBreathTimer < uiDiff)
|
if (m_uiShadowBreathTimer < uiDiff)
|
||||||
@@ -822,7 +823,9 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
|
|||||||
DoScriptText(SAY_SHADRON_BREATH, m_creature);
|
DoScriptText(SAY_SHADRON_BREATH, m_creature);
|
||||||
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
|
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
|
||||||
m_uiShadowBreathTimer = 20000 + rand()%5000;
|
m_uiShadowBreathTimer = 20000 + rand()%5000;
|
||||||
}else m_uiShadowBreathTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadowBreathTimer -= uiDiff;
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
@@ -884,7 +887,9 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
|
|||||||
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
|
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
|
||||||
|
|
||||||
m_uiShadowFissureTimer = 15000 + rand()%5000;
|
m_uiShadowFissureTimer = 15000 + rand()%5000;
|
||||||
}else m_uiShadowFissureTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadowFissureTimer -= uiDiff;
|
||||||
|
|
||||||
// shadow breath
|
// shadow breath
|
||||||
if (m_uiShadowBreathTimer < uiDiff)
|
if (m_uiShadowBreathTimer < uiDiff)
|
||||||
@@ -892,7 +897,9 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
|
|||||||
DoScriptText(SAY_VESPERON_BREATH, m_creature);
|
DoScriptText(SAY_VESPERON_BREATH, m_creature);
|
||||||
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
|
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
|
||||||
m_uiShadowBreathTimer = 20000 + rand()%5000;
|
m_uiShadowBreathTimer = 20000 + rand()%5000;
|
||||||
}else m_uiShadowBreathTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiShadowBreathTimer -= uiDiff;
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
@@ -1061,7 +1068,9 @@ struct TRINITY_DLL_DECL mob_twilight_whelpAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
DoCast(m_creature->getVictim(), SPELL_FADE_ARMOR);
|
DoCast(m_creature->getVictim(), SPELL_FADE_ARMOR);
|
||||||
m_uiFadeArmorTimer = 5000 + rand()%5000;
|
m_uiFadeArmorTimer = 5000 + rand()%5000;
|
||||||
}else m_uiFadeArmorTimer -= uiDiff;
|
}
|
||||||
|
else
|
||||||
|
m_uiFadeArmorTimer -= uiDiff;
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user