mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 09:17:36 +01:00
*Cleanup (Brutallus' Intro should start properly now)
--HG-- branch : trunk
This commit is contained in:
@@ -265,18 +265,21 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
|
||||
|
||||
if (Gouge_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_GOUGE);
|
||||
DoCastVictim(SPELL_GOUGE);
|
||||
Gouge_Timer = 40000;
|
||||
} else Gouge_Timer -= diff;
|
||||
|
||||
if (Blind_Timer <= diff)
|
||||
{
|
||||
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, m_creature->GetMeleeReach()*5, true);
|
||||
if (pTarget && m_creature->IsWithinMeleeRange(pTarget))
|
||||
{
|
||||
DoCast(pTarget, SPELL_BLIND);
|
||||
Blind_Timer = 40000;
|
||||
} else Blind_Timer = 1000 + diff; // if target is out of melee range, wait a bit.
|
||||
std::list<Unit*> pTargets;
|
||||
SelectTargetList(pTargets, 5, SELECT_TARGET_RANDOM, m_creature->GetMeleeReach()*5, true);
|
||||
for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
|
||||
if(!m_creature->IsWithinMeleeRange(*i))
|
||||
{
|
||||
DoCast(pTarget, SPELL_BLIND);
|
||||
break;
|
||||
}
|
||||
Blind_Timer = 40000;
|
||||
} else Blind_Timer -= diff;
|
||||
}
|
||||
|
||||
|
||||
@@ -104,6 +104,7 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
|
||||
|
||||
m_creature->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
|
||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->SetReactState(REACT_DEFENSIVE); //enables MoveInLineOfSight
|
||||
Madrigosa = Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_MADRIGOSA));
|
||||
//Creature* boss = Unit::GetCreature((*m_creature),AzgalorGUID);
|
||||
if (!Madrigosa) error_log("Madrigosa was not found");
|
||||
@@ -217,7 +218,7 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
|
||||
++IntroPhase;
|
||||
break;
|
||||
case 7:
|
||||
m_creature->DealDamage(Madrigosa, Madrigosa->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, true);
|
||||
m_creature->Kill(Madrigosa);
|
||||
DoScriptText(YELL_MADR_DEATH, Madrigosa);
|
||||
m_creature->SetHealth(m_creature->GetMaxHealth());
|
||||
m_creature->AttackStop();
|
||||
@@ -291,15 +292,15 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
|
||||
|
||||
if (BurnTimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
if(!pTarget->HasAura(SPELL_BURN))
|
||||
std::list<Unit*> pTargets;
|
||||
SelectTargetList(pTargets, 10, SELECT_TARGET_RANDOM, 100, true);
|
||||
for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
|
||||
if(!(*i)->HasAura(SPELL_BURN))
|
||||
{
|
||||
pTarget->CastSpell(pTarget, SPELL_BURN, true);
|
||||
BurnTimer = urand(60000,180000);
|
||||
} else
|
||||
BurnTimer = 1000 + diff; // if target has SPELL_BURN, wait a bit.
|
||||
else
|
||||
BurnTimer = urand(60000,180000); // no targets!?
|
||||
DoCast(*i, SPELL_BURN, true);
|
||||
break;
|
||||
}
|
||||
BurnTimer = urand(60000,180000);
|
||||
} else BurnTimer -= diff;
|
||||
|
||||
if (BerserkTimer < diff && !Enraged)
|
||||
|
||||
@@ -40,7 +40,7 @@ enum Quotes
|
||||
SAY_GOOD_NEAR_DEATH2 = -1580008,
|
||||
SAY_GOOD_PLRWIN = -1580009,
|
||||
|
||||
//Shattrowar
|
||||
//Sathrovarr
|
||||
SAY_SATH_AGGRO = -1580010,
|
||||
SAY_SATH_DEATH = -1580011,
|
||||
SAY_SATH_SPELL1 = -1580012,
|
||||
@@ -105,7 +105,7 @@ enum SWPActions
|
||||
|
||||
#define MAX_PLAYERS_IN_SPECTRAL_REALM 0 //over this, teleport object won't work, 0 disables check
|
||||
|
||||
uint32 WildMagic[]= { 44978, 45001, 45002, 45004, 45006, 45010 };
|
||||
uint32 WildMagic[] = { 44978, 45001, 45002, 45004, 45006, 45010 };
|
||||
|
||||
struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI
|
||||
{
|
||||
@@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI
|
||||
FrostBreathTimer = 15000;
|
||||
WildMagicTimer = 10000;
|
||||
TailLashTimer = 25000;
|
||||
SpectralBlastTimer = 20000+(rand()%5000);
|
||||
SpectralBlastTimer = urand(20000,25000);
|
||||
CheckTimer = 1000;
|
||||
ResetTimer = 30000;
|
||||
|
||||
|
||||
@@ -581,7 +581,7 @@ inline bool CreatureAI::_EnterEvadeMode()
|
||||
|
||||
inline void UnitAI::DoCast(Unit* victim, uint32 spellId, bool triggered)
|
||||
{
|
||||
if(!victim || me->hasUnitState(UNIT_STAT_CASTING) && !triggered)
|
||||
if(!victim || (me->hasUnitState(UNIT_STAT_CASTING) && !triggered))
|
||||
return;
|
||||
|
||||
me->CastSpell(victim, spellId, triggered);
|
||||
|
||||
Reference in New Issue
Block a user