All pastes #968309 Raw Edit

NuRRi

public text v1 · immutable
·published 2008-04-02 23:13 UTC
rendered paste body

        //Affliction_Timer
        if (Affliction_Timer < diff)
        {
                std::list<HostilReference*>::iterator i = m_creature->getThreatManager().getThreatList().begin();
                switch (rand()%5)
                {
                case 0:
                    for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++)
                        {
                            Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
                            if(pUnit)
                            {
                                m_creature->CastSpell(pUnit, SPELL_BROODAF_BLUE, true);
                            }
                        }
                    break;

                case 1:
                    for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++)
                        {
                            Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
                            if(pUnit)
                            {
                                m_creature->CastSpell(pUnit, SPELL_BROODAF_BLACK, true);
                            }
                        }
                    break;

                case 2:
                    for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++)
                        {
                            Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
                            if(pUnit)
                            {
                                m_creature->CastSpell(pUnit, SPELL_BROODAF_RED, true);
                            }
                        }
                    break;

                case 3:
                    for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++)
                        {
                            Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
                            if(pUnit)
                            {
                                m_creature->CastSpell(pUnit, SPELL_BROODAF_BRONZE, true);
                            }
                        }
                    break;

                case 4:
                    for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++)
                        {
                            Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
                            if(pUnit)
                            {
                                m_creature->CastSpell(pUnit, SPELL_BROODAF_GREEN, true);
                            }
                        }
                    break;
                }

            //8-16 seconds until we should cast this agian
            Affliction_Timer = 8000 + (rand() % 8000);
        }else Affliction_Timer -= diff;
        
        if (Check_Timer <diff)
        {
            //Checking if a gamer has all 5 Affliction auras. If yes player will die
            std::list<HostilReference*>::iterator i = m_creature->getThreatManager().getThreatList().begin();
            for (i = m_creature->getThreatManager().getThreatList().begin(); i!= m_creature->getThreatManager().getThreatList().end();i++)
            {
                Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
                if(pUnit 
                    && pUnit->HasAura(SPELL_BROODAF_BLUE,0) 
                    && pUnit->HasAura(SPELL_BROODAF_BLACK,0) 
                    && pUnit->HasAura(SPELL_BROODAF_RED,0) 
                    && pUnit->HasAura(SPELL_BROODAF_BRONZE,0) 
                    && pUnit->HasAura(SPELL_BROODAF_GREEN,0))
                {
                    //Chromatic mutation is causing issues
                    //Assuming it is caused by a lack of core support for Charm
                    //So instead we instant kill our target
                    //DoCast(target,SPELL_CHROMATIC_MUT_1);
                    pUnit->DealDamage(pUnit, pUnit->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_NORMAL, NULL, true);
                }
        
            }
            Check_Timer = 1000;
        }else Check_Timer -= diff;