*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
@@ -265,18 +265,21 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
if (Gouge_Timer <= diff) if (Gouge_Timer <= diff)
{ {
DoCast(m_creature->getVictim(), SPELL_GOUGE); DoCastVictim(SPELL_GOUGE);
Gouge_Timer = 40000; Gouge_Timer = 40000;
} else Gouge_Timer -= diff; } else Gouge_Timer -= diff;
if (Blind_Timer <= diff) if (Blind_Timer <= diff)
{ {
Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, m_creature->GetMeleeReach()*5, true); std::list<Unit*> pTargets;
if (pTarget && m_creature->IsWithinMeleeRange(pTarget)) 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); DoCast(pTarget, SPELL_BLIND);
break;
}
Blind_Timer = 40000; Blind_Timer = 40000;
} else Blind_Timer = 1000 + diff; // if target is out of melee range, wait a bit.
} else Blind_Timer -= diff; } 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->CastSpell(m_creature, SPELL_DUAL_WIELD, true);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); 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)); Madrigosa = Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_MADRIGOSA));
//Creature* boss = Unit::GetCreature((*m_creature),AzgalorGUID); //Creature* boss = Unit::GetCreature((*m_creature),AzgalorGUID);
if (!Madrigosa) error_log("Madrigosa was not found"); if (!Madrigosa) error_log("Madrigosa was not found");
@@ -217,7 +218,7 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
++IntroPhase; ++IntroPhase;
break; break;
case 7: 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); DoScriptText(YELL_MADR_DEATH, Madrigosa);
m_creature->SetHealth(m_creature->GetMaxHealth()); m_creature->SetHealth(m_creature->GetMaxHealth());
m_creature->AttackStop(); m_creature->AttackStop();
@@ -291,15 +292,15 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
if (BurnTimer <= diff) if (BurnTimer <= diff)
{ {
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) std::list<Unit*> pTargets;
if(!pTarget->HasAura(SPELL_BURN)) 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); DoCast(*i, SPELL_BURN, true);
break;
}
BurnTimer = urand(60000,180000); BurnTimer = urand(60000,180000);
} else
BurnTimer = 1000 + diff; // if target has SPELL_BURN, wait a bit.
else
BurnTimer = urand(60000,180000); // no targets!?
} else BurnTimer -= diff; } else BurnTimer -= diff;
if (BerserkTimer < diff && !Enraged) if (BerserkTimer < diff && !Enraged)
@@ -40,7 +40,7 @@ enum Quotes
SAY_GOOD_NEAR_DEATH2 = -1580008, SAY_GOOD_NEAR_DEATH2 = -1580008,
SAY_GOOD_PLRWIN = -1580009, SAY_GOOD_PLRWIN = -1580009,
//Shattrowar //Sathrovarr
SAY_SATH_AGGRO = -1580010, SAY_SATH_AGGRO = -1580010,
SAY_SATH_DEATH = -1580011, SAY_SATH_DEATH = -1580011,
SAY_SATH_SPELL1 = -1580012, SAY_SATH_SPELL1 = -1580012,
@@ -165,7 +165,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI
FrostBreathTimer = 15000; FrostBreathTimer = 15000;
WildMagicTimer = 10000; WildMagicTimer = 10000;
TailLashTimer = 25000; TailLashTimer = 25000;
SpectralBlastTimer = 20000+(rand()%5000); SpectralBlastTimer = urand(20000,25000);
CheckTimer = 1000; CheckTimer = 1000;
ResetTimer = 30000; ResetTimer = 30000;
+1 -1
View File
@@ -581,7 +581,7 @@ inline bool CreatureAI::_EnterEvadeMode()
inline void UnitAI::DoCast(Unit* victim, uint32 spellId, bool triggered) 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; return;
me->CastSpell(victim, spellId, triggered); me->CastSpell(victim, spellId, triggered);