void JustDied(Unit* /*pKiller*/) override { DoScriptText(SAY_DEATH, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_NOVOS, DONE); }
void Aggro(Unit* /*pWho*/) override { DoScriptText(SAY_AGGRO, m_creature); if (m_pInstance) { m_pInstance->SetData(TYPE_TROLLGORE, IN_PROGRESS); m_pInstance->GetTrollgoreOutsideTriggers(m_vTriggers); } }
void MoveInLineOfSight(Unit* pWho) override { // An Add reached the ground, if its z-pos is near the z pos of Novos if (pWho->GetEntry() == NPC_HULKING_CORPSE || pWho->GetEntry() == NPC_FETID_TROLL_CORPSE || pWho->GetEntry() == NPC_RISON_SHADOWCASTER) { // Add reached ground, and the failure has not yet been reported if (pWho->GetPositionZ() < m_creature->GetPositionZ() + 1.5f && m_pInstance && m_pInstance->GetData(TYPE_NOVOS) == IN_PROGRESS) m_pInstance->SetData(TYPE_NOVOS, SPECIAL); return; } ScriptedAI::MoveInLineOfSight(pWho); }
void Aggro(Unit* /*pWho*/) override { DoScriptText(SAY_AGGRO, m_creature); DoCastSpellIfCan(m_creature, m_bIsRegularMode ? SPELL_ARCANE_BLAST : SPELL_ARCANE_BLAST_H, CAST_TRIGGERED); DoCastSpellIfCan(m_creature, SPELL_IMMUNITY, CAST_TRIGGERED); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); DoCastSpellIfCan(m_creature, SPELL_ARCANE_FIELD); if (m_pInstance) m_pInstance->SetData(TYPE_NOVOS, IN_PROGRESS); }
void SpellHit(Unit* /*pTarget*/, const SpellEntry* pSpell) override { if (pSpell->Id == SPELL_CONSUME_BUFF || pSpell->Id == SPELL_CONSUME_BUFF_H) { ++m_uiConsumeStacks; // if the boss has 10 stacks then set the achiev to fail if (m_uiConsumeStacks == MAX_CONSOME_STACKS) { if (m_pInstance) m_pInstance->SetData(TYPE_TROLLGORE, SPECIAL); } } }
void JustReachedHome() override { if (m_pInstance) m_pInstance->SetData(TYPE_NOVOS, FAIL); }
void JustReachedHome() override { if (m_pInstance) m_pInstance->SetData(TYPE_TROLLGORE, FAIL); }