*Cleanup (Brutallus' Intro should start properly now)

--HG--
branch : trunk
This commit is contained in:
maximius
2009-10-29 00:01:29 -07:00
parent b9fd59683c
commit 63d703c53c
4 changed files with 24 additions and 20 deletions

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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;

View File

@@ -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);