Exemplo n.º 1
0
    void JustDidDialogueStep(int32 iEntry) override
    {
        switch (iEntry)
        {
        case PHASE_DISCS:
            // ToDo: start some movement over the platform
            m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
            m_uiPhase = PHASE_DISCS;
            DoSpawnAdds();
            break;
        case SPELL_DESTROY_PLATFORM_BOOM:
            if (m_pInstance)
            {
                if (Creature* pTrigger = m_pInstance->GetSingleCreatureFromStorage(NPC_LARGE_TRIGGER))
                    pTrigger->CastSpell(pTrigger, SPELL_DESTROY_PLATFORM_BOOM, false);
            }
            break;
        case SPELL_SUMMON_RED_DRAGON:
            if (m_pInstance)
            {
                // Destroy the platform
                if (GameObject* pPlatform = m_pInstance->GetSingleGameObjectFromStorage(GO_PLATFORM))
                    pPlatform->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK_11);
            }

            DoCastSpellIfCan(m_creature, SPELL_SUMMON_RED_DRAGON);
            break;
        case SAY_INTRO_PHASE_3:
            m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
            m_uiPhase = PHASE_DRAGONS;
            break;
        }
    }