void SummonedCreatureJustDied(Creature* pSummoned) override { switch (pSummoned->GetEntry()) { case NPC_GUARDIAN: case NPC_SOLDIER_FROZEN: case NPC_SOUL_WEAVER: m_lAddsSet.erase(pSummoned->GetObjectGuid()); break; case NPC_UNSTOPPABLE_ABOM: m_lAddsSet.erase(pSummoned->GetObjectGuid()); ++m_uiKilledAbomination; if (m_uiKilledAbomination >= ACHIEV_REQ_KILLED_ABOMINATIONS) m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_GET_ENOUGH, true); break; } }
void MoveInLineOfSight(Unit* pWho) override { ScriptedAI::MoveInLineOfSight(pWho); if (pWho->GetEntry() == NPC_BURNING_SPIRIT && pWho->isAlive() && m_sSpiritsGuidsSet.find(pWho->GetObjectGuid()) != m_sSpiritsGuidsSet.end() && pWho->IsWithinDistInMap(m_creature, 2 * CONTACT_DISTANCE)) { pWho->CastSpell(m_creature, SPELL_BURNING_SPIRIT, TRIGGERED_OLD_TRIGGERED); m_sSpiritsGuidsSet.erase(pWho->GetObjectGuid()); } }