void DamageTaken(Unit* pDoneBy, uint32 &damage)
    {
        if (damage < m_creature->GetHealth())
            return;

        //damage will kill, this is pretty much the same as 1%HP left
        if (bEvent)
        {
            damage = 0;

            if (Player* pPlayer = m_creature->GetMap()->GetPlayer(m_uiPlayerGUID))
            {
                DoScriptText(SAY_GIVEUP, m_creature, pPlayer);
                pPlayer->GroupEventHappens(QUEST_WHAT_BOOK, m_creature);
            }

            SetRuffies(m_uiCreepjackGUID,false,true);
            SetRuffies(m_uiMaloneGUID,false,true);
            EnterEvadeMode();
        }
    }
Esempio n. 2
0
    void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage) override
    {
        if (uiDamage < m_creature->GetHealth())
            return;

        // damage will kill, this is pretty much the same as 1%HP left
        if (bEvent)
        {
            uiDamage = 0;

            if (Player* pPlayer = m_creature->GetMap()->GetPlayer(m_playerGuid))
            {
                DoScriptText(SAY_GIVEUP, m_creature, pPlayer);
                pPlayer->GroupEventHappens(QUEST_WHAT_BOOK, m_creature);
            }

            SetRuffies(m_creepjackGuid, false, true);
            SetRuffies(m_maloneGuid, false, true);
            EnterEvadeMode();
        }
    }
    uint32 NextStep(uint32 uiStep)
    {
        Player* pPlayer = m_creature->GetMap()->GetPlayer(m_uiPlayerGUID);

        if (!pPlayer)
        {
            SetRuffies(m_uiCreepjackGUID,false,true);
            SetRuffies(m_uiMaloneGUID,false,true);
            EnterEvadeMode();
            return 0;
        }

        switch(uiStep)
        {
            case 1:
                DoScriptText(SAY_START, m_creature, pPlayer);
                SetRuffies(m_uiCreepjackGUID,false,false);
                SetRuffies(m_uiMaloneGUID,false,false);
                return 3000;
            case 2: DoScriptText(SAY_COUNT, m_creature, pPlayer); return 5000;
            case 3: DoScriptText(SAY_COUNT_1, m_creature, pPlayer); return 3000;
            case 4: DoScriptText(SAY_COUNT_2, m_creature, pPlayer); return 3000;
            case 5: DoScriptText(SAY_ATTACK, m_creature, pPlayer); return 3000;
            case 6:
                if (!m_creature->isInCombat() && pPlayer->isAlive())
                    AttackStart(pPlayer);

                SetRuffies(m_uiCreepjackGUID,true,false);
                SetRuffies(m_uiMaloneGUID,true,false);
                bActiveAttack = true;
                return 2000;
            default: return 0;
        }
    }
Esempio n. 4
0
    uint32 NextStep(uint32 uiStep)
    {
        Unit* pUnit = Unit::GetUnit(*m_creature, m_uiPlayerGUID);

        if (!pUnit || pUnit->GetTypeId() != TYPEID_PLAYER)
        {
            SetRuffies(m_uiCreepjackGUID,false,true);
            SetRuffies(m_uiMaloneGUID,false,true);
            EnterEvadeMode();
            return 0;
        }

        switch(uiStep)
        {
            case 1:
                DoScriptText(SAY_START, m_creature, pUnit);
                SetRuffies(m_uiCreepjackGUID,false,false);
                SetRuffies(m_uiMaloneGUID,false,false);
                return 3000;
            case 2: DoScriptText(SAY_COUNT, m_creature, pUnit); return 5000;
            case 3: DoScriptText(SAY_COUNT_1, m_creature, pUnit); return 3000;
            case 4: DoScriptText(SAY_COUNT_2, m_creature, pUnit); return 3000;
            case 5: DoScriptText(SAY_ATTACK, m_creature, pUnit); return 3000;
            case 6:
                if (!m_creature->isInCombat() && pUnit->isAlive())
                    AttackStart(pUnit);

                SetRuffies(m_uiCreepjackGUID,true,false);
                SetRuffies(m_uiMaloneGUID,true,false);
                bActiveAttack = true;
                return 2000;
            default: return 0;
        }
    }