mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-19 11:45:42 +00:00
fix(spell): paladin and dk aggro spell, warrior
This commit is contained in:
@@ -34,7 +34,14 @@ FuryWarriorStrategy::FuryWarriorStrategy(PlayerbotAI* botAI) : GenericWarriorStr
|
||||
|
||||
NextAction** FuryWarriorStrategy::getDefaultActions()
|
||||
{
|
||||
return NextAction::array(0, new NextAction("melee", ACTION_NORMAL), nullptr);
|
||||
return NextAction::array(0,
|
||||
new NextAction("bloodthirst", ACTION_NORMAL + 5),
|
||||
new NextAction("whirlwind", ACTION_NORMAL + 4),
|
||||
new NextAction("sunder armor", ACTION_NORMAL + 3),
|
||||
new NextAction("execute", ACTION_NORMAL + 2),
|
||||
new NextAction("overpower", ACTION_NORMAL + 1),
|
||||
new NextAction("melee", ACTION_NORMAL),
|
||||
NULL);
|
||||
}
|
||||
|
||||
void FuryWarriorStrategy::InitTriggers(std::vector<TriggerNode*> &triggers)
|
||||
@@ -53,10 +60,16 @@ void FuryWarriorStrategy::InitTriggers(std::vector<TriggerNode*> &triggers)
|
||||
triggers.push_back(new TriggerNode("intercept on snare target", NextAction::array(0, new NextAction("intercept on snare target", ACTION_HIGH), nullptr)));
|
||||
triggers.push_back(new TriggerNode("bloodthirst", NextAction::array(0, new NextAction("bloodthirst", ACTION_HIGH + 2), nullptr)));
|
||||
triggers.push_back(new TriggerNode("instant slam", NextAction::array(0, new NextAction("slam", ACTION_HIGH + 1), nullptr)));
|
||||
triggers.push_back(new TriggerNode("medium rage available", NextAction::array(0, new NextAction("heroic strike", ACTION_HIGH + 10), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("medium rage available", NextAction::array(0, new NextAction("heroic strike", ACTION_HIGH + 10), nullptr)));
|
||||
triggers.push_back(new TriggerNode("berserker rage", NextAction::array(0, new NextAction("berserker rage", ACTION_HIGH + 2), nullptr)));
|
||||
triggers.push_back(new TriggerNode("bloodrage", NextAction::array(0, new NextAction("bloodrage", ACTION_HIGH + 2), nullptr)));
|
||||
triggers.push_back(new TriggerNode("death wish", NextAction::array(0, new NextAction("death wish", ACTION_HIGH + 2), nullptr)));
|
||||
triggers.push_back(new TriggerNode("rampage", NextAction::array(0, new NextAction("rampage", ACTION_INTERRUPT + 1), nullptr)));
|
||||
triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("intimidating shout", ACTION_EMERGENCY), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("intimidating shout", ACTION_EMERGENCY), nullptr)));
|
||||
// triggers.push_back(new TriggerNode(
|
||||
// "slam",
|
||||
// NextAction::array(0, new NextAction("slam", ACTION_HIGH + 2), NULL)));
|
||||
triggers.push_back(new TriggerNode(
|
||||
"high rage available",
|
||||
NextAction::array(0, new NextAction("heroic strike", ACTION_HIGH + 1), NULL)));
|
||||
}
|
||||
|
||||
@@ -41,7 +41,11 @@ TankWarriorStrategy::TankWarriorStrategy(PlayerbotAI* botAI) : GenericWarriorStr
|
||||
|
||||
NextAction** TankWarriorStrategy::getDefaultActions()
|
||||
{
|
||||
return NextAction::array(0, new NextAction("melee", ACTION_NORMAL), nullptr);
|
||||
return NextAction::array(0,
|
||||
new NextAction("devastate", ACTION_NORMAL + 2),
|
||||
new NextAction("revenge", ACTION_NORMAL + 1),
|
||||
new NextAction("melee", ACTION_NORMAL),
|
||||
NULL);
|
||||
}
|
||||
|
||||
void TankWarriorStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
|
||||
@@ -7,5 +7,6 @@
|
||||
|
||||
bool CastSunderArmorAction::isUseful()
|
||||
{
|
||||
return CastSpellAction::isUseful();
|
||||
Aura *aura = botAI->GetAura("sunder armor", GetTarget(), false, true);
|
||||
return !aura || aura->GetStackAmount() < 5 || aura->GetDuration() <= 3000;
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@ class WarriorTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
||||
creators["intercept can cast"] = &WarriorTriggerFactoryInternal::intercept_can_cast;
|
||||
creators["intercept and far enemy"] = &WarriorTriggerFactoryInternal::intercept_and_far_enemy;
|
||||
creators["intercept and rage"] = &WarriorTriggerFactoryInternal::intercept_and_rage;
|
||||
// creators["slam"] = &WarriorTriggerFactoryInternal::slam;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -142,6 +143,7 @@ class WarriorTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
||||
static Trigger* overpower(PlayerbotAI* botAI) { return new OverpowerAvailableTrigger(botAI); }
|
||||
static Trigger* revenge(PlayerbotAI* botAI) { return new RevengeAvailableTrigger(botAI); }
|
||||
static Trigger* sunder_armor(PlayerbotAI* botAI) { return new SunderArmorDebuffTrigger(botAI); }
|
||||
// static Trigger* slam(PlayerbotAI* ai) { return new SlamTrigger(ai); }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -52,4 +52,10 @@ class RendDebuffTrigger : public DebuffTrigger
|
||||
public:
|
||||
RendDebuffTrigger(PlayerbotAI* botAI) : DebuffTrigger(botAI, "rend", 1, true) { }
|
||||
};
|
||||
|
||||
// class SlamTrigger : public HasAuraTrigger
|
||||
// {
|
||||
// public:
|
||||
// SlamTrigger(PlayerbotAI* ai) : HasAuraTrigger(ai, "slam!") {}
|
||||
// };
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user