예제 #1
0
 explicit SkeletonAddAI(Creature* pCreature) : CreatureAIScript(pCreature)
 {
     if (_isHeroic())
         addAISpell(DECREPIFY_HC, 8.0f, TARGET_ATTACKING, 0, 40);
     else
         addAISpell(DECREPIFY, 8.0f, TARGET_ATTACKING, 0, 40);
 }
예제 #2
0
    explicit PrinceKelesethAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        if (_isHeroic())
            addAISpell(KELESETH_SHADOW_BOLT_HC, 100.0f, TARGET_ATTACKING, 2, 2);
        else
            addAISpell(KELESETH_SHADOW_BOLT, 100.0f, TARGET_ATTACKING, 2, 2);

        addEmoteForEvent(Event_OnCombatStart, 500);      // Your blood is mine!
        addEmoteForEvent(Event_OnTargetDied, 504);      // I join... the night.
    }
예제 #3
0
    explicit IngvarUndeadAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        addAISpell(INGVAR_DARK_SMASH, 12.0f, TARGET_SELF, 3, 16);

        if (_isHeroic())
        {
            addAISpell(INGVAR_DREADFUL_ROAR, 25.0f, TARGET_SELF, 2, 10);
            addAISpell(INGVAR_WOE_STRIKE, 18.0f, TARGET_ATTACKING, 0, 16);
        }

        addEmoteForEvent(Event_OnDied, 6986);
    }
예제 #4
0
 explicit DalronnTheControllerGhostAI(Creature* pCreature) : CreatureAIScript(pCreature)
 {
     if (_isHeroic())
     {
         addAISpell(SHADOW_BOLT_HC, 85.0f, TARGET_RANDOM_SINGLE, 2, 3);
         addAISpell(DEBILITATE, 25.0f, TARGET_RANDOM_SINGLE, 0, 12);
     }
     else
     {
         addAISpell(SHADOW_BOLT, 35.0f, TARGET_RANDOM_SINGLE, 2, 8);
         addAISpell(DEBILITATE, 25.0f, TARGET_RANDOM_SINGLE, 0, 12);
     }
 }
예제 #5
0
    explicit DalronnTheControllerAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        if (_isHeroic())
        {
            addAISpell(SHADOW_BOLT_HC, 85.0f, TARGET_RANDOM_SINGLE, 2, 3);
            addAISpell(DEBILITATE, 25.0f, TARGET_RANDOM_SINGLE, 0, 12);
        }
        else
        {
            addAISpell(SHADOW_BOLT, 35.0f, TARGET_RANDOM_SINGLE, 2, 8);
            addAISpell(DEBILITATE, 25.0f, TARGET_RANDOM_SINGLE, 0, 12);
        }

        mSummonTimer = 0;
        pSkarvald = nullptr;
        pSkarvaldGhost = nullptr;
    }
예제 #6
0
    explicit IngvarThePlundererAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        addAISpell(INGVAR_CLEAVE, 24.0f, TARGET_ATTACKING, 0, 6);

        if (_isHeroic())
        {
            addAISpell(INGVAR_ENRAGE_HC, 45.0f, TARGET_SELF, 0, 4);
            addAISpell(INGVAR_SMASH_HC, 25.0f, TARGET_SELF, 3, 18);
            addAISpell(INGVAR_ROAR_HC, 25.0f, TARGET_SELF, 2, 10);
        }
        else
        {
            addAISpell(INGVAR_ENRAGE, 45.0f, TARGET_SELF, 0, 4);
            addAISpell(INGVAR_SMASH, 25.0f, TARGET_SELF, 3, 18);
            addAISpell(INGVAR_ROAR, 25.0f, TARGET_SELF, 2, 10);
        }

        SetAIUpdateFreq(1000);

        addEmoteForEvent(Event_OnCombatStart, 4468);     // I'll paint my face with your blood!
        addEmoteForEvent(Event_OnTargetDied, 4469);     // Mjul orm agn gjor!
        addEmoteForEvent(Event_OnDied, 4470);     // My life for the... death god!
    }
예제 #7
0
        OmorTheUnscarredAI(Creature* pCreature) : CreatureAIScript(pCreature)
        {
            pShield = addAISpell(OMOR_DEMONIC_SHIELD, 30.0f, TARGET_SELF, 0, 25);
            pShield->setMinMaxPercentHp(0, 20);

            auto pSummon = addAISpell(OMOR_SUMMON_FIENDISH_HOUND, 8.0f, TARGET_SELF, 1, 20);
            pSummon->addEmote("Achor-she-ki! Feast my pet! Eat your fill!", CHAT_MSG_MONSTER_YELL, 10277);

            pWhip = addAISpell(OMOR_SHADOW_WHIP, 10.0f, TARGET_RANDOM_SINGLE, 0, 30);
            pWhip->setMinMaxDistance(10.0f, 60.0f);

            if (!_isHeroic())
            {
                auto shadowBolt = addAISpell(OMOR_SHADOW_BOLT, 8.0f, TARGET_RANDOM_SINGLE, 3, 15, false, true);
                shadowBolt->setMinMaxDistance(10.0f, 60.0f);

                auto pAura = addAISpell(OMOR_TREACHEROUS_AURA, 8.0f, TARGET_RANDOM_SINGLE, 2, 35, false, true);
                pAura->setMinMaxDistance(0.0f, 60.0f);
                pAura->addEmote("A-Kreesh!", CHAT_MSG_MONSTER_YELL, 10278);
            }
            else
            {
                auto shadowBolt = addAISpell(OMOR_SHADOW_BOLT2, 8.0f, TARGET_RANDOM_SINGLE, 3, 15, false, true);
                shadowBolt->setMinMaxDistance(10.0f, 60.0f);

                auto pAura = addAISpell(OMOR_BANE_OF_TREACHERY, 8.0f, TARGET_RANDOM_SINGLE, 2, 35, false, true);
                pAura->setMinMaxDistance(0.0f, 60.0f);
                pAura->addEmote("A-Kreesh!", CHAT_MSG_MONSTER_YELL, 10278);
            }

            addEmoteForEvent(Event_OnCombatStart, 4856);     // I will not be defeated!
            addEmoteForEvent(Event_OnCombatStart, 4855);     // You dare stand against ME?
            addEmoteForEvent(Event_OnCombatStart, 4857);     // Your insolence will be your death!
            addEmoteForEvent(Event_OnTargetDied, 4860);      // Die, weakling!
            addEmoteForEvent(Event_OnDied, 4861);            // It is... not over.
        }
예제 #8
0
    WatchkeeperGargolmarAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        auto surge = addAISpell(WATCHKEEPER_SURGE, 20.0f, TARGET_RANDOM_SINGLE, 0, 15);
        surge->addEmote("Back off, pup!", CHAT_MSG_MONSTER_YELL, 10330);
        surge->setMinMaxDistance(5.0f, 40.0f);;

        addAISpell(WATCHKEEPER_OVERPOWER, 10.0f, TARGET_ATTACKING, 0, 5);
        mRetaliation = addAISpell(WATCHKEEPER_RETALIATION, 0.0f, TARGET_SELF);

        if (_isHeroic())
            addAISpell(WATCHKEEPER_MORTAL_WOUND_H, 15.0f, TARGET_ATTACKING, 0, 12);
        else
            addAISpell(WATCHKEEPER_MORTAL_WOUND, 15.0f, TARGET_ATTACKING, 0, 12);

        mCalledForHelp = 0;
        _retaliation = false;

        addEmoteForEvent(Event_OnCombatStart, 4873);    // What have we here?
        addEmoteForEvent(Event_OnCombatStart, 4874);    // This may hurt a little....
        addEmoteForEvent(Event_OnCombatStart, 4875);    // I'm going to enjoy this...
        addEmoteForEvent(Event_OnTargetDied, 4876);     // Say farewell!
        addEmoteForEvent(Event_OnTargetDied, 4877);     // Much too easy.
        addEmoteForEvent(Event_OnDied, 4878);           // Hahah.. <cough> ..argh!
    }