void UpdateAI(const uint32 diff) { if (AggroTimer) { if (AggroTimer <= diff) { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 0; } else AggroTimer -= diff; } if (!UpdateVictim()) return; if (WaterBoltTimer <= diff) { DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), SPELL_WATERBOLT); WaterBoltTimer = TitoDied ? 1500 : 5000; } else WaterBoltTimer -= diff; if (FearTimer <= diff) { DoCast(me->getVictim(), SPELL_SCREAM); FearTimer = 30000; } else FearTimer -= diff; if (!SummonedTito) { if (SummonTitoTimer <= diff) SummonTito(); else SummonTitoTimer -= diff; } DoMeleeAttackIfReady(); }
void UpdateAI(const uint32 diff) { if (AggroTimer) { if (AggroTimer <= diff) { m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 0; }else AggroTimer -= diff; } if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; if (WaterBoltTimer < diff) { if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0)) DoCastSpellIfCan(pTarget, SPELL_WATERBOLT); WaterBoltTimer = TitoDied ? 1500 : 5000; }else WaterBoltTimer -= diff; if (FearTimer < diff) { DoCastSpellIfCan(m_creature->getVictim(), SPELL_SCREAM); FearTimer = 30000; }else FearTimer -= diff; if (!SummonedTito) { if (SummonTitoTimer < diff) SummonTito(); else SummonTitoTimer -= diff; } DoMeleeAttackIfReady(); }