コード例 #1
0
    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();
    }
コード例 #2
0
    void JustDied(Unit* /*pKiller*/) override
    {
        DoScriptText(SAY_DEATH, m_creature);

        if (m_pInstance)
            m_pInstance->SetData(TYPE_BRONJAHM, DONE);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
    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();
    }
コード例 #5
0
 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;
     }
 }
コード例 #6
0
 void Aggro(Unit* /*pWho*/) override
 {
     DoScriptText(aTexts[0][m_uiFace], m_creature);
     if (m_pInstance)
         m_pInstance->SetData(TYPE_DEVOURER_OF_SOULS, IN_PROGRESS);
 }
コード例 #7
0
 void JustReachedHome() override
 {
     if (m_pInstance)
         m_pInstance->SetData(TYPE_BRONJAHM, FAIL);
 }