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); }
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); }
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(); } }
void Aggro(Unit* pWho) { DoCastSpellIfCan(m_creature, SPELL_SUPREME, CAST_TRIGGERED); DoScriptText(SAY_AGGRO, m_creature); DoSpawnNextCrystal(); }