void JustReachedHome() override { if (m_pInstance) { m_pInstance->SetData(NPC_DEVOURER_OF_SOULS, FAIL); // If we previously failed, set such that possible to try again m_pInstance->SetData(TYPE_ACHIEV_PHANTOM_BLAST, IN_PROGRESS); } for (GuidList::const_iterator itr = m_lWellGuids.begin(); itr != m_lWellGuids.end(); ++itr) { if (Creature* pWell = m_creature->GetMap()->GetCreature(*itr)) pWell->ForcedDespawn(); } m_lWellGuids.clear(); }
void JustDied(Unit* /*pKiller*/) override { DoScriptText(SAY_DEATH, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_BRONJAHM, DONE); }
void Aggro(Unit* /*pWho*/) override { DoScriptText(urand(0, 1) ? SAY_AGGRO_1 : SAY_AGGRO_2, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_BRONJAHM, IN_PROGRESS); // Remove OOC visual soulstorm effect (added in creature_template_addon m_creature->RemoveAurasDueToSpell(SPELL_SOULSTORM_VISUAL_OOC); }
void JustDied(Unit* /*pKiller*/) override { DoScriptText(aTexts[3][m_uiFace], m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_DEVOURER_OF_SOULS, DONE); for (GuidList::const_iterator itr = m_lWellGuids.begin(); itr != m_lWellGuids.end(); ++itr) { if (Creature* pWell = m_creature->GetMap()->GetCreature(*itr)) pWell->ForcedDespawn(); } m_lWellGuids.clear(); }
void SpellHitTarget(Unit* /*pTarget*/, SpellEntry const* pSpellEntry) override { switch (pSpellEntry->Id) { // If we hit a target with phantom blast, the achievement_criteria is failed case SPELL_PHANTOM_BLAST: case SPELL_PHANTOM_BLAST_H: if (m_pInstance) m_pInstance->SetData(TYPE_ACHIEV_PHANTOM_BLAST, FAIL); break; // Might be placed somewhere else better, important is to note that this text is said after the 3s cast time case SPELL_WAILING_SOULS: DoScriptText(aTexts[5][m_uiFace], m_creature); break; } }
void Aggro(Unit* /*pWho*/) override { DoScriptText(aTexts[0][m_uiFace], m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_DEVOURER_OF_SOULS, IN_PROGRESS); }
void JustReachedHome() override { if (m_pInstance) m_pInstance->SetData(TYPE_BRONJAHM, FAIL); }