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