mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-02-07 20:51:09 +00:00
163 lines
7.9 KiB
C++
163 lines
7.9 KiB
C++
#include "RaidKarazhanStrategy.h"
|
|
#include "RaidKarazhanMultipliers.h"
|
|
|
|
void RaidKarazhanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
|
{
|
|
// Trash
|
|
triggers.push_back(new TriggerNode("mana warp is about to explode",
|
|
{ NextAction("mana warp stun creature before warp breach", ACTION_EMERGENCY + 6) }
|
|
));
|
|
|
|
// Attumen the Huntsman
|
|
triggers.push_back(new TriggerNode("attumen the huntsman need target priority",
|
|
{ NextAction("attumen the huntsman mark target", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("attumen the huntsman attumen spawned",
|
|
{ NextAction("attumen the huntsman split bosses", ACTION_RAID + 2) }
|
|
));
|
|
triggers.push_back(new TriggerNode("attumen the huntsman attumen is mounted",
|
|
{ NextAction("attumen the huntsman stack behind", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("attumen the huntsman boss wipes aggro when mounting",
|
|
{ NextAction("attumen the huntsman manage dps timer", ACTION_RAID + 2) }
|
|
));
|
|
|
|
// Moroes
|
|
triggers.push_back(new TriggerNode("moroes boss engaged by main tank",
|
|
{ NextAction("moroes main tank attack boss", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("moroes need target priority",
|
|
{ NextAction("moroes mark target", ACTION_RAID + 1) }
|
|
));
|
|
|
|
// Maiden of Virtue
|
|
triggers.push_back(new TriggerNode("maiden of virtue healers are stunned by repentance",
|
|
{ NextAction("maiden of virtue move boss to healer", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("maiden of virtue holy wrath deals chain damage",
|
|
{ NextAction("maiden of virtue position ranged", ACTION_RAID + 1) }
|
|
));
|
|
|
|
// The Big Bad Wolf
|
|
triggers.push_back(new TriggerNode("big bad wolf boss is chasing little red riding hood",
|
|
{ NextAction("big bad wolf run away from boss", ACTION_EMERGENCY + 6) }
|
|
));
|
|
triggers.push_back(new TriggerNode("big bad wolf boss engaged by tank",
|
|
{ NextAction("big bad wolf position boss", ACTION_RAID + 1) }
|
|
));
|
|
|
|
// Romulo and Julianne
|
|
triggers.push_back(new TriggerNode("romulo and julianne both bosses revived",
|
|
{ NextAction("romulo and julianne mark target", ACTION_RAID + 1) }
|
|
));
|
|
|
|
// The Wizard of Oz
|
|
triggers.push_back(new TriggerNode("wizard of oz need target priority",
|
|
{ NextAction("wizard of oz mark target", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("wizard of oz strawman is vulnerable to fire",
|
|
{ NextAction("wizard of oz scorch strawman", ACTION_RAID + 2) }
|
|
));
|
|
|
|
// The Curator
|
|
triggers.push_back(new TriggerNode("the curator astral flare spawned",
|
|
{ NextAction("the curator mark astral flare", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("the curator boss engaged by tanks",
|
|
{ NextAction("the curator position boss", ACTION_RAID + 2) }
|
|
));
|
|
triggers.push_back(new TriggerNode("the curator astral flares cast arcing sear",
|
|
{ NextAction("the curator spread ranged", ACTION_RAID + 2) }
|
|
));
|
|
|
|
// Terestian Illhoof
|
|
triggers.push_back(new TriggerNode("terestian illhoof need target priority",
|
|
{ NextAction("terestian illhoof mark target", ACTION_RAID + 1) }
|
|
));
|
|
|
|
// Shade of Aran
|
|
triggers.push_back(new TriggerNode("shade of aran arcane explosion is casting",
|
|
{ NextAction("shade of aran run away from arcane explosion", ACTION_EMERGENCY + 6) }
|
|
));
|
|
triggers.push_back(new TriggerNode("shade of aran flame wreath is active",
|
|
{ NextAction("shade of aran stop moving during flame wreath", ACTION_EMERGENCY + 7) }
|
|
));
|
|
triggers.push_back(new TriggerNode("shade of aran conjured elementals summoned",
|
|
{ NextAction("shade of aran mark conjured elemental", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("shade of aran boss uses counterspell and blizzard",
|
|
{ NextAction("shade of aran ranged maintain distance", ACTION_RAID + 2) }
|
|
));
|
|
|
|
// Netherspite
|
|
triggers.push_back(new TriggerNode("netherspite red beam is active",
|
|
{ NextAction("netherspite block red beam", ACTION_EMERGENCY + 8) }
|
|
));
|
|
triggers.push_back(new TriggerNode("netherspite blue beam is active",
|
|
{ NextAction("netherspite block blue beam", ACTION_EMERGENCY + 8) }
|
|
));
|
|
triggers.push_back(new TriggerNode("netherspite green beam is active",
|
|
{ NextAction("netherspite block green beam", ACTION_EMERGENCY + 8) }
|
|
));
|
|
triggers.push_back(new TriggerNode("netherspite bot is not beam blocker",
|
|
{ NextAction("netherspite avoid beam and void zone", ACTION_EMERGENCY + 7) }
|
|
));
|
|
triggers.push_back(new TriggerNode("netherspite boss is banished",
|
|
{ NextAction("netherspite banish phase avoid void zone", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("netherspite need to manage timers and trackers",
|
|
{ NextAction("netherspite manage timers and trackers", ACTION_EMERGENCY + 10) }
|
|
));
|
|
|
|
// Prince Malchezaar
|
|
triggers.push_back(new TriggerNode("prince malchezaar bot is enfeebled",
|
|
{ NextAction("prince malchezaar enfeebled avoid hazard", ACTION_EMERGENCY + 6) }
|
|
));
|
|
triggers.push_back(new TriggerNode("prince malchezaar infernals are spawned",
|
|
{ NextAction("prince malchezaar non tank avoid infernal", ACTION_EMERGENCY + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("prince malchezaar boss engaged by main tank",
|
|
{ NextAction("prince malchezaar main tank movement", ACTION_EMERGENCY + 6) }
|
|
));
|
|
|
|
// Nightbane
|
|
triggers.push_back(new TriggerNode("nightbane boss engaged by main tank",
|
|
{ NextAction("nightbane ground phase position boss", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("nightbane ranged bots are in charred earth",
|
|
{ NextAction("nightbane ground phase rotate ranged positions", ACTION_EMERGENCY + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("nightbane main tank is susceptible to fear",
|
|
{ NextAction("nightbane cast fear ward on main tank", ACTION_RAID + 2) }
|
|
));
|
|
triggers.push_back(new TriggerNode("nightbane pets ignore collision to chase flying boss",
|
|
{ NextAction("nightbane control pet aggression", ACTION_RAID + 2) }
|
|
));
|
|
triggers.push_back(new TriggerNode("nightbane boss is flying",
|
|
{ NextAction("nightbane flight phase movement", ACTION_RAID + 1) }
|
|
));
|
|
triggers.push_back(new TriggerNode("nightbane need to manage timers and trackers",
|
|
{ NextAction("nightbane manage timers and trackers", ACTION_EMERGENCY + 10) }
|
|
));
|
|
}
|
|
|
|
void RaidKarazhanStrategy::InitMultipliers(std::vector<Multiplier*>& multipliers)
|
|
{
|
|
multipliers.push_back(new AttumenTheHuntsmanDisableTankAssistMultiplier(botAI));
|
|
multipliers.push_back(new AttumenTheHuntsmanStayStackedMultiplier(botAI));
|
|
multipliers.push_back(new AttumenTheHuntsmanWaitForDpsMultiplier(botAI));
|
|
multipliers.push_back(new TheCuratorDisableTankAssistMultiplier(botAI));
|
|
multipliers.push_back(new TheCuratorDelayBloodlustAndHeroismMultiplier(botAI));
|
|
multipliers.push_back(new ShadeOfAranArcaneExplosionDisableChargeMultiplier(botAI));
|
|
multipliers.push_back(new ShadeOfAranFlameWreathDisableMovementMultiplier(botAI));
|
|
multipliers.push_back(new NetherspiteKeepBlockingBeamMultiplier(botAI));
|
|
multipliers.push_back(new NetherspiteWaitForDpsMultiplier(botAI));
|
|
multipliers.push_back(new PrinceMalchezaarDisableAvoidAoeMultiplier(botAI));
|
|
multipliers.push_back(new PrinceMalchezaarEnfeebleKeepDistanceMultiplier(botAI));
|
|
multipliers.push_back(new PrinceMalchezaarDelayBloodlustAndHeroismMultiplier(botAI));
|
|
multipliers.push_back(new NightbaneDisablePetsMultiplier(botAI));
|
|
multipliers.push_back(new NightbaneWaitForDpsMultiplier(botAI));
|
|
multipliers.push_back(new NightbaneDisableAvoidAoeMultiplier(botAI));
|
|
multipliers.push_back(new NightbaneDisableMovementMultiplier(botAI));
|
|
}
|