Beispiel #1
0
    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);
        }
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    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);
            }
        }
    }
Beispiel #6
0
 void JustReachedHome() override
 {
     if (m_pInstance)
         m_pInstance->SetData(TYPE_NOVOS, FAIL);
 }
 void JustReachedHome() override
 {
     if (m_pInstance)
         m_pInstance->SetData(TYPE_TROLLGORE, FAIL);
 }