// Widow's Embrace prevents frenzy and poison bolt, if it removes frenzy, next frenzy is sceduled in 60s // It is likely that this _should_ be handled with some dummy aura(s) - but couldn't find any void SpellHit(Unit* /*pCaster*/, const SpellEntry* pSpellEntry) override { // Check if we hit with Widow's Embrave if (pSpellEntry->Id == SPELL_WIDOWS_EMBRACE || pSpellEntry->Id == SPELL_WIDOWS_EMBRACE_H) { bool bIsFrenzyRemove = false; // If we remove the Frenzy, the Enrage Timer is reseted to 60s if (m_creature->HasAura(m_bIsRegularMode ? SPELL_ENRAGE : SPELL_ENRAGE_H)) { m_uiEnrageTimer = 60000; m_creature->RemoveAurasDueToSpell(m_bIsRegularMode ? SPELL_ENRAGE : SPELL_ENRAGE_H); bIsFrenzyRemove = true; } // Achievement 'Momma said Knock you out': If we removed OR delayed the frenzy, the criteria is failed if ((bIsFrenzyRemove || m_uiEnrageTimer < 30000) && m_pInstance) m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_KNOCK_YOU_OUT, false); // In any case we prevent Frenzy and Poison Bolt Volley for Widow's Embrace Duration (30s) // We do this be setting the timers to at least bigger than 30s m_uiEnrageTimer = std::max(m_uiEnrageTimer, (uint32)30000); m_uiPoisonBoltVolleyTimer = std::max(m_uiPoisonBoltVolleyTimer, urand(33000, 38000)); } }
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 SummonedCreatureJustDied(Creature* pSummoned) override { if (pSummoned->GetEntry() == NPC_SPORE && m_pInstance) m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_SPORE_LOSER, false); }