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; } }