void Reset()
        {
            AxesCleanup();
            ClearWeapons();
            InfernalCleanup();
            positions.clear();

            for (uint8 i = 0; i < 5; ++i)
                enfeeble_targets[i] = 0;

            for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
                positions.push_back(&InfernalPoints[i]);

            EnfeebleTimer = 30000;
            EnfeebleResetTimer = 38000;
            ShadowNovaTimer = 35500;
            SWPainTimer = 20000;
            AmplifyDamageTimer = 5000;
            Cleave_Timer = 8000;
            InfernalTimer = 45000;
            InfernalCleanupTimer = 47000;
            AxesTargetSwitchTimer = urand(7500, 20000);
            SunderArmorTimer = urand(5000, 10000);
            phase = 1;

            if (pInstance)
                pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_NETHER_DOOR), true);
        }
    void Reset()
    {
        AxesCleanup();
        ClearWeapons();
        InfernalCleanup();
        positions.clear();

        for(int i =0; i < 5; ++i)
        {
            enfeeble_targets[i] = 0;
            enfeeble_health[i] = 0;
        }

        for(int i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
            positions.push_back(&InfernalPoints[i]);

        EnfeebleTimer = 30000;
        EnfeebleResetTimer = 38000;
        ShadowNovaTimer = 35500;
        SWPainTimer = 20000;
        AmplifyDamageTimer = 5000;
        Cleave_Timer = 8000;
        InfernalTimer = 45000;
        InfernalCleanupTimer = 47000;
        AxesTargetSwitchTimer = urand(7500, 20000);
        SunderArmorTimer = urand(5000, 10000);
        phase = 1;
    }
    void Reset()
    {
        AxesCleanup();
        ClearWeapons();
        InfernalCleanup();
        m_positions.clear();

        for (uint8 i = 0; i < 5; ++i)
        {
            m_aEnfeebleTargetGuid[i].Clear();
            m_auiEnfeebleHealth[i] = 0;
        }

        for(int i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
            m_positions.push_back(&InfernalPoints[i]);

        m_uiEnfeebleTimer = 30000;
        m_uiEnfeebleResetTimer = 38000;
        m_uiShadowNovaTimer = 35500;
        m_uiSWPainTimer = 20000;
        m_uiAmplifyDamageTimer = 5000;
        m_uiCleave_Timer = 8000;
        InfernalTimer = 45000;
        m_uiInfernalCleanupTimer = 47000;
        m_uiAxesTargetSwitchTimer = urand(7500, 20000);
        SunderArmorTimer = urand(5000, 10000);
        m_uiPhase = 1;
    }
    void JustDied(Unit *victim)
    {
        DoScriptText(SAY_DEATH, m_creature);

        AxesCleanup();
        ClearWeapons();
        InfernalCleanup();
        positions.clear();

        for(int i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
            positions.push_back(&InfernalPoints[i]);
    }
        void JustDied(Unit* /*killer*/) override
        {
            Talk(SAY_DEATH);

            AxesCleanup();
            ClearWeapons();
            InfernalCleanup();
            positions.clear();

            for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
                positions.push_back(&InfernalPoints[i]);

            instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true);
        }
        void Reset() override
        {
            AxesCleanup();
            ClearWeapons();
            InfernalCleanup();
            positions.clear();

            Initialize();

            for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
                positions.push_back(&InfernalPoints[i]);

            instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true);
        }
        void JustDied(Unit* /*victim*/)
        {
            DoScriptText(SAY_DEATH, me);

            AxesCleanup();
            ClearWeapons();
            InfernalCleanup();
            positions.clear();

            for (uint8 i = 0; i < TOTAL_INFERNAL_POINTS; ++i)
                positions.push_back(&InfernalPoints[i]);

            if (pInstance)
                pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_NETHER_DOOR), true);
        }