Exemplo n.º 1
0
    void Aggro(Unit* /*pWho*/) override
    {
        DoCastSpellIfCan(m_creature, SPELL_SUPREME, CAST_TRIGGERED);
        DoScriptText(SAY_AGGRO, m_creature);
        DoSpawnNextCrystal();

        for (uint8 i = 0; i < countof(aSandVortexSpawnPos); ++i)
            m_creature->SummonCreature(NPC_SAND_VORTEX, aSandVortexSpawnPos[i][0], aSandVortexSpawnPos[i][1], aSandVortexSpawnPos[i][2], aSandVortexSpawnPos[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0);
    }
Exemplo n.º 2
0
    void Aggro(Unit* /*pWho*/) override
    {
        DoCastSpellIfCan(m_creature, SPELL_SUPREME, CAST_TRIGGERED);
        DoScriptText(SAY_AGGRO, m_creature);
        DoSpawnNextCrystal();

        for (uint8 i = 0; i < countof(aSandVortexSpawnPos); ++i)
            m_creature->SummonCreature(NPC_SAND_VORTEX, aSandVortexSpawnPos[i][0], aSandVortexSpawnPos[i][1], aSandVortexSpawnPos[i][2], aSandVortexSpawnPos[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0);

        if (m_pInstance)
            m_pInstance->instance->SetWeather(ZONE_ID_RUINS_AQ, WEATHER_TYPE_STORM, 1.0f, true);
    }
Exemplo n.º 3
0
    void SpellHit(Unit* pCaster, const SpellEntry* pSpell) override
    {
        if (pCaster->GetTypeId() == TYPEID_UNIT && pCaster->GetEntry() == NPC_OSSIRIAN_TRIGGER)
        {
            // Check for proper spell id
            bool bIsWeaknessSpell = false;
            for (uint8 i = 0; i < countof(aWeaknessSpell); ++i)
            {
                if (pSpell->Id == aWeaknessSpell[i])
                {
                    bIsWeaknessSpell = true;
                    break;
                }
            }
            if (!bIsWeaknessSpell)
                return;

            m_creature->RemoveAurasDueToSpell(SPELL_SUPREME);
            m_uiSupremeTimer = 45000;

            ((Creature*)pCaster)->ForcedDespawn();
            DoSpawnNextCrystal();
        }
    }
Exemplo n.º 4
0
 void Aggro(Unit* pWho)
 {
     DoCastSpellIfCan(m_creature, SPELL_SUPREME, CAST_TRIGGERED);
     DoScriptText(SAY_AGGRO, m_creature);
     DoSpawnNextCrystal();
 }