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; }
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; }
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; }
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. }
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; }
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! }
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; }