mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
143 lines
5.1 KiB
C++
143 lines
5.1 KiB
C++
#include "RaidNaxxStrategy.h"
|
|
#include "RaidNaxxMultipliers.h"
|
|
|
|
|
|
void RaidNaxxStrategy::InitTriggers(std::vector<TriggerNode*> &triggers)
|
|
{
|
|
// triggers.push_back(new TriggerNode(
|
|
// "often",
|
|
// NextAction::array(0, new NextAction("try to get boss ai", ACTION_RAID), NULL)));
|
|
|
|
// Grobbulus
|
|
triggers.push_back(new TriggerNode(
|
|
"mutating injection",
|
|
NextAction::array(0, new NextAction("grobbulus go behind the boss", ACTION_RAID + 2), NULL)));
|
|
|
|
triggers.push_back(new TriggerNode(
|
|
"mutating injection removed",
|
|
NextAction::array(0, new NextAction("grobbulus move center", ACTION_RAID + 1), NULL)));
|
|
|
|
triggers.push_back(new TriggerNode(
|
|
"grobbulus cloud",
|
|
NextAction::array(0, new NextAction("rotate grobbulus", ACTION_RAID + 1), NULL)));
|
|
|
|
// Heigan the Unclean
|
|
triggers.push_back(new TriggerNode(
|
|
"heigan melee",
|
|
NextAction::array(0, new NextAction("heigan dance melee", ACTION_RAID + 1), NULL)));
|
|
|
|
triggers.push_back(new TriggerNode(
|
|
"heigan ranged",
|
|
NextAction::array(0, new NextAction("heigan dance ranged", ACTION_RAID + 1), NULL)));
|
|
|
|
// Kel'Thuzad
|
|
triggers.push_back(new TriggerNode(
|
|
"kel'thuzad",
|
|
NextAction::array(0,
|
|
new NextAction("kel'thuzad choose target", ACTION_RAID + 1),
|
|
new NextAction("kel'thuzad position", ACTION_RAID + 1),
|
|
NULL)));
|
|
|
|
// Anub'Rekhan
|
|
triggers.push_back(new TriggerNode(
|
|
"anub'rekhan",
|
|
NextAction::array(0,
|
|
// new NextAction("anub'rekhan choose target", ACTION_RAID + 1),
|
|
new NextAction("anub'rekhan position", ACTION_RAID + 1),
|
|
NULL)));
|
|
|
|
// Thaddius
|
|
// triggers.push_back(new TriggerNode(
|
|
// "thaddius phase pet",
|
|
// NextAction::array(0,
|
|
// new NextAction("thaddius attack nearest pet", ACTION_RAID + 1),
|
|
// new NextAction("thaddius melee to place", ACTION_RAID),
|
|
// new NextAction("thaddius ranged to place", ACTION_RAID),
|
|
// NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "thaddius phase pet lose aggro",
|
|
// NextAction::array(0, new NextAction("taunt spell", ACTION_RAID + 2), NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "thaddius phase transition",
|
|
// NextAction::array(0, new NextAction("thaddius move to platform", ACTION_RAID + 1), NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "thaddius phase thaddius",
|
|
// NextAction::array(0, new NextAction("thaddius move polarity", ACTION_RAID + 1), NULL)));
|
|
|
|
// Instructor Razuvious
|
|
triggers.push_back(new TriggerNode(
|
|
"razuvious tank",
|
|
NextAction::array(0, new NextAction("razuvious use obedience crystal", ACTION_RAID + 1), NULL)));
|
|
|
|
triggers.push_back(new TriggerNode(
|
|
"razuvious nontank",
|
|
NextAction::array(0, new NextAction("razuvious target", ACTION_RAID + 1), NULL)));
|
|
|
|
// // four horseman
|
|
// triggers.push_back(new TriggerNode(
|
|
// "horseman attractors",
|
|
// NextAction::array(0, new NextAction("horseman attract alternatively", ACTION_RAID + 1), NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "horseman except attractors",
|
|
// NextAction::array(0, new NextAction("horseman attack in order", ACTION_RAID + 1), NULL)));
|
|
|
|
// // sapphiron
|
|
// triggers.push_back(new TriggerNode(
|
|
// "sapphiron ground main tank",
|
|
// NextAction::array(0, new NextAction("sapphiron ground main tank position", ACTION_RAID + 1), NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "sapphiron ground except main tank",
|
|
// NextAction::array(0, new NextAction("sapphiron ground position", ACTION_RAID + 1), NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "sapphiron flight",
|
|
// NextAction::array(0, new NextAction("sapphiron flight position", ACTION_RAID + 1), NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "sapphiron chill",
|
|
// NextAction::array(0, new NextAction("sapphiron avoid chill", ACTION_RAID + 1), NULL)));
|
|
|
|
|
|
|
|
// // Gluth
|
|
// triggers.push_back(new TriggerNode(
|
|
// "gluth",
|
|
// NextAction::array(0,
|
|
// new NextAction("gluth choose target", ACTION_RAID + 1),
|
|
// new NextAction("gluth position", ACTION_RAID + 1),
|
|
// new NextAction("gluth slowdown", ACTION_RAID),
|
|
// NULL)));
|
|
|
|
// triggers.push_back(new TriggerNode(
|
|
// "gluth main tank mortal wound",
|
|
// NextAction::array(0,
|
|
// new NextAction("taunt spell", ACTION_RAID + 1), NULL)));
|
|
|
|
// // Loatheb
|
|
// triggers.push_back(new TriggerNode(
|
|
// "loatheb",
|
|
// NextAction::array(0,
|
|
// new NextAction("loatheb position", ACTION_RAID + 1),
|
|
// new NextAction("loatheb choose target", ACTION_RAID + 1),
|
|
// NULL)));
|
|
}
|
|
|
|
void RaidNaxxStrategy::InitMultipliers(std::vector<Multiplier*> &multipliers)
|
|
{
|
|
multipliers.push_back(new HeiganDanceMultiplier(botAI));
|
|
// multipliers.push_back(new LoathebGenericMultiplier(ai));
|
|
// multipliers.push_back(new ThaddiusGenericMultiplier(ai));
|
|
// multipliers.push_back(new SapphironGenericMultiplier(ai));
|
|
multipliers.push_back(new InstructorRazuviousGenericMultiplier(botAI));
|
|
multipliers.push_back(new KelthuzadGenericMultiplier(botAI));
|
|
multipliers.push_back(new AnubrekhanGenericMultiplier(botAI));
|
|
// multipliers.push_back(new FourhorsemanGenericMultiplier(ai));
|
|
// multipliers.push_back(new GothikGenericMultiplier(ai));
|
|
// multipliers.push_back(new GluthGenericMultiplier(ai));
|
|
}
|