Exemplo n.º 1
0
    explicit HalazziAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        auto saberLash = addAISpell(HALAZZI_SABER_LASH, 0.5f, TARGET_DESTINATION, 0, 0);
        saberLash->addEmote("Me gonna carve ya now!", CHAT_MSG_MONSTER_YELL, 12023);
        saberLash->addEmote("You gonna leave in pieces!", CHAT_MSG_MONSTER_YELL, 12024);
        saberLash->setAvailableForScriptPhase({ 1, 3 });

        auto flameShock = addAISpell(HALAZZI_FLAME_SHOCK, 12.0f, TARGET_ATTACKING, 0, 0);
        flameShock->setAvailableForScriptPhase({ 2, 3 });

        auto earthShock = addAISpell(HALAZZI_EARTH_SHOCK, 12.0f, TARGET_ATTACKING, 0, 0);
        earthShock->setAvailableForScriptPhase({ 2, 3 });

        auto enrage = addAISpell(HALAZZI_ENRAGE, 100.0f, TARGET_SELF, 0, 60);
        enrage->setAvailableForScriptPhase({ 3 });

        // Transfigure: 4k aoe damage
        Transfigure = addAISpell(44054, 0.0f, TARGET_SELF, 0, 0);
        Transfigure->addEmote("I fight wit' untamed spirit...", CHAT_MSG_MONSTER_YELL, 12021);

        addEmoteForEvent(Event_OnCombatStart, 8863);
        addEmoteForEvent(Event_OnTargetDied, 8864);
        addEmoteForEvent(Event_OnTargetDied, 8865);
        addEmoteForEvent(Event_OnDied, 8866);
        mLynx = NULL;

        mTotemTimer = 0;
        CurrentHealth = 0;
        MaxHealth = 0;
        SplitCount = 0;
    }
Exemplo n.º 2
0
    explicit GrandWarlockAlythessAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        auto pyrogenetics = addAISpell(GRAND_WARLOCK_ALYTHESS_PYROGENICS, 100.0f, TARGET_SELF, 0, 10);
        pyrogenetics->setMinMaxDistance(0.0f, 50.0f);

        auto flameTouched = addAISpell(GRAND_WARLOCK_ALYTHESS_FLAME_TOUCHED, 10.0f, TARGET_RANDOM_SINGLE, 0, 30);
        flameTouched->setMinMaxDistance(0.0f, 50.0f);

        auto conflagration = addAISpell(GRAND_WARLOCK_ALYTHESS_CONFLAGRATION, 15.0f, TARGET_RANDOM_SINGLE, 4, 25);
        conflagration->addEmote("Fire to the aid of shadow!", CHAT_MSG_MONSTER_YELL, 12489);
        conflagration->setMinMaxDistance(0.0f, 50.0f);

        auto blaze = addAISpell(GRAND_WARLOCK_ALYTHESS_BLAZE, 30.0f, TARGET_RANDOM_SINGLE, 3, 0);
        blaze->setMinMaxDistance(0.0f, 50.0f);

        auto flameFear = addAISpell(GRAND_WARLOCK_ALYTHESS_FLAME_SEAR, 20.0f, TARGET_RANDOM_SINGLE);
        flameFear->setMinMaxDistance(0.0f, 50.0f);

        mLocaleEnrageSpell = addAISpell(GRAND_WARLOCK_ALYTHESS_ENRAGE, 0.0f, TARGET_SELF);
        mLocaleEnrageSpell->addEmote("Your luck has run its course!", CHAT_MSG_MONSTER_YELL, 12493);
        mLocaleEnrageSpell->setMinMaxDistance(0.0f, 50.0f);

        // Emotes
        addEmoteForEvent(Event_OnTargetDied, 8849);
        addEmoteForEvent(Event_OnDied, 8850); // Wasn't able to find sound for this text

        mLocaleEnrageTimerId = 0;
    }
Exemplo n.º 3
0
    explicit NalorakkAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        auto brutalSwipe = addAISpell(NALORAKK_BRUTAL_SWIPE, 2.0f, TARGET_ATTACKING, 0, 35);
        brutalSwipe->setAvailableForScriptPhase({ 1 });

        auto mangle = addAISpell(NALORAKK_MANGLE, 12.0f, TARGET_ATTACKING, 0, 20);
        mangle->setAvailableForScriptPhase({ 1 });

        auto surge = addAISpell(NALORAKK_SURGE, 8.0f, TARGET_RANDOM_SINGLE, 0, 20, false, true);
        surge->setAvailableForScriptPhase({ 1 });
        surge->addEmote("I bring da pain!", CHAT_MSG_MONSTER_YELL, 12071);

        auto slash = addAISpell(NALORAKK_LACERATING_SLASH, 12.0f, TARGET_ATTACKING, 0, 20);
        slash->setAvailableForScriptPhase({ 2 });

        auto flesh = addAISpell(NALORAKK_REND_FLESH, 12.0f, TARGET_ATTACKING, 0, 12);
        flesh->setAvailableForScriptPhase({ 2 });

        auto roar = addAISpell(NALORAKK_DEAFENING_ROAR, 11.0f, TARGET_RANDOM_SINGLE, 0, 12);
        roar->setAvailableForScriptPhase({ 2 });

        mLocaleEnrageSpell = addAISpell(NALORAKK_BERSERK, 0.0f, TARGET_SELF, 0, 600);
        surge->addEmote("You had your chance, now it be too late!", CHAT_MSG_MONSTER_YELL, 12074);


        addEmoteForEvent(Event_OnCombatStart, 8855);
        addEmoteForEvent(Event_OnTargetDied, 8856);
        addEmoteForEvent(Event_OnTargetDied, 8857);
        addEmoteForEvent(Event_OnDied, 8858);

        // Bear Form
        Morph = addAISpell(42377, 0.0f, TARGET_SELF, 0, 0);
        Morph->addEmote("You call on da beast, you gonna get more dan you bargain for!", CHAT_MSG_MONSTER_YELL, 12072);

        MorphTimer = 0;
        mLocaleEnrageTimerId = 0;
    }
Exemplo n.º 4
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.
        }
Exemplo n.º 5
0
    explicit FelmystAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        //Phase 1 spells
        auto cleave = addAISpell(FELMYST_CLEAVE, 6.0f, TARGET_ATTACKING, 0, 10);
            cleave->setAvailableForScriptPhase({ 1 });

        auto gasNova = addAISpell(FELMYST_GAS_NOVA, 25.0f, TARGET_SELF, 1, 18);
        gasNova->setAvailableForScriptPhase({ 1 });

        auto encapsulate = addAISpell(FELMYST_ENCAPSULATE, 25.0f, TARGET_RANDOM_SINGLE, 7, 30);
        encapsulate->setMinMaxDistance(0.0f, 30.0f);
        encapsulate->setAvailableForScriptPhase({ 1 });

        auto corrosion = addAISpell(FELMYST_CORROSION, 20.0f, TARGET_ATTACKING, 1, 35);
        corrosion->setMinMaxDistance(0.0f, 30.0f);
        corrosion->setAvailableForScriptPhase({ 1 });
        corrosion->addEmote("Choke on your final breath!", CHAT_MSG_MONSTER_YELL, 12478);

        //Phase 2 spells
        auto demonicVapor = addAISpell(FELMYST_DEMONIC_VAPOR, 10.0f, TARGET_RANDOM_SINGLE, 0, 20);
        demonicVapor->setAvailableForScriptPhase({ 2 });

        //Phase 3 spells
        //Fog of corruption is the actual breath Felmyst does during his second phase, probably we'll have to spawn it like a creature.

        //10min Enrage
        mLocaleEnrageSpell = addAISpell(FELMYST_ENRAGE, 0.0f, TARGET_SELF);
        mLocaleEnrageSpell->addEmote("No more hesitation! Your fates are written!", CHAT_MSG_MONSTER_YELL, 12482);

        //Emotes
        addEmoteForEvent(Event_OnCombatStart, 8842);
        addEmoteForEvent(Event_OnTargetDied, 8843);
        addEmoteForEvent(Event_OnTargetDied, 8844);
        addEmoteForEvent(Event_OnDied, 8845);
        addEmoteForEvent(Event_OnTaunt, 8846);

        mLocaleEnrageTimerId = 0;
    }
Exemplo n.º 6
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!
    }
Exemplo n.º 7
0
    explicit LadySacrolashAI(Creature* pCreature) : CreatureAIScript(pCreature)
    {
        auto darkTouch = addAISpell(LADY_SACROLASH_DARK_TOUCHED, 50.0f, TARGET_RANDOM_SINGLE, 0, 10);
        darkTouch->setMinMaxDistance(0.0f, 50.0f);

        auto shadowBlades = addAISpell(LADY_SACROLASH_SHADOW_BLADES, 25.0f, TARGET_ATTACKING, 2, 5);
        shadowBlades->setMinMaxDistance(0.0f, 50.0f);

        auto shadowNova = addAISpell(LADY_SACROLASH_SHADOW_NOVA, 15.0f, TARGET_RANDOM_SINGLE, 4, 20);
        shadowNova->addEmote("Shadow to the aid of fire!", CHAT_MSG_MONSTER_YELL, 12485);
        shadowNova->setMinMaxDistance(0.0f, 50.0f);

        auto confoundingBlow = addAISpell(LADY_SACROLASH_CONFOUNDING_BLOW, 10.0f, TARGET_RANDOM_SINGLE, 0, 15);
        confoundingBlow->setMinMaxDistance(0.0f, 50.0f);

        mLocaleEnrageSpell = addAISpell(LADY_SACROLASH_ENRAGE, 0.0f, TARGET_SELF);
        mLocaleEnrageSpell->addEmote("Time is a luxury you no longer possess!", CHAT_MSG_MONSTER_YELL, 0); // Wasn't able to find sound for this text

        // Emotes
        addEmoteForEvent(Event_OnTargetDied, 8847);
        addEmoteForEvent(Event_OnDied, 8848);

        mLocaleEnrageTimerId = 0;
    }