void EnterCombat(Unit * /*who*/) { _EnterCombat(); TeleportHeiganCheaters(); DoScriptText(SAY_AGGRO, me); EnterPhase(PHASE_FIGHT); }
void EnterCombat(Unit* /*pWho*/) { _EnterCombat(); TeleportHeiganCheaters(); DoScriptText(SAY_AGGRO, me); EnterPhase(PHASE_FIGHT); safetyDance = true; }
void UpdateAI(const uint32 diff) { if (!UpdateVictim() || !CheckInRoom()) return; _DoAggroPulse(diff); events.Update(diff); while (uint32 eventId = events.ExecuteEvent()) { switch(eventId) { case EVENT_DISRUPT: DoCastAOE(SPELL_SPELL_DISRUPTION); events.ScheduleEvent(EVENT_DISRUPT, urand(5000, 10000)); break; case EVENT_FEVER: DoCastAOE(SPELL_DECREPIT_FEVER); events.ScheduleEvent(EVENT_FEVER, urand(20000, 25000)); break; case EVENT_PHASE: // TODO : Add missing texts for both phase switches EnterPhase(phase == PHASE_FIGHT ? PHASE_DANCE : PHASE_FIGHT); break; case EVENT_ERUPT: instance->SetData(DATA_HEIGAN_ERUPT, eruptSection); TeleportHeiganCheaters(); if (eruptSection == 0) eruptDirection = true; else if (eruptSection == 3) eruptDirection = false; eruptDirection ? ++eruptSection : --eruptSection; events.ScheduleEvent(EVENT_ERUPT, phase == PHASE_FIGHT ? 10000 : 4000); break; } } DoMeleeAttackIfReady(); }