diff --git a/src/AiFactory.cpp b/src/AiFactory.cpp index d0502d13..1781a272 100644 --- a/src/AiFactory.cpp +++ b/src/AiFactory.cpp @@ -460,8 +460,14 @@ void AiFactory::AddDefaultNonCombatStrategies(Player* player, PlayerbotAI* const nonCombatEngine->addStrategies("dps assist", "cure", nullptr); break; case CLASS_PALADIN: - if (tab == 1) - nonCombatEngine->addStrategies("bthreat", "tank assist", "bstats", "barmor", nullptr); + if (tab == 1) { + nonCombatEngine->addStrategies("bthreat", "tank assist", "barmor", nullptr); + if (player->GetLevel() >= 20) { + nonCombatEngine->addStrategy("bstats"); + } else { + nonCombatEngine->addStrategy("bdps"); + } + } else if (tab == 0) nonCombatEngine->addStrategies("dps assist", "bmana", "bcast", nullptr); else diff --git a/src/strategy/paladin/DpsPaladinStrategy.cpp b/src/strategy/paladin/DpsPaladinStrategy.cpp index ba40dffd..dd609e50 100644 --- a/src/strategy/paladin/DpsPaladinStrategy.cpp +++ b/src/strategy/paladin/DpsPaladinStrategy.cpp @@ -61,7 +61,7 @@ class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory& triggers) void PaladinBoostStrategy::InitTriggers(std::vector& triggers) { triggers.push_back(new TriggerNode("avenging wrath", NextAction::array(0, new NextAction("avenging wrath", ACTION_HIGH + 2), nullptr))); - triggers.push_back(new TriggerNode("divine favor", NextAction::array(0, new NextAction("divine favor", ACTION_HIGH + 1), nullptr))); + // triggers.push_back(new TriggerNode("divine favor", NextAction::array(0, new NextAction("divine favor", ACTION_HIGH + 1), nullptr))); } void PaladinCcStrategy::InitTriggers(std::vector& triggers) diff --git a/src/strategy/shaman/CasterShamanStrategy.cpp b/src/strategy/shaman/CasterShamanStrategy.cpp index 9dcf9e8e..aa1fef0a 100644 --- a/src/strategy/shaman/CasterShamanStrategy.cpp +++ b/src/strategy/shaman/CasterShamanStrategy.cpp @@ -40,7 +40,6 @@ NextAction** CasterShamanStrategy::getDefaultActions() { return NextAction::array(0, new NextAction("lava burst", ACTION_DEFAULT + 0.2f), - new NextAction("thunderstorm", ACTION_DEFAULT + 0.1f), new NextAction("lightning bolt", ACTION_DEFAULT), NULL); } @@ -57,9 +56,11 @@ void CasterShamanStrategy::InitTriggers(std::vector& triggers) triggers.push_back(new TriggerNode( "no fire totem", NextAction::array(0, - // new NextAction("fire elemental totem", 16.0f), new NextAction("totem of wrath", 15.0f), NULL))); + triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("thunderstorm", ACTION_HIGH + 1), nullptr))); + triggers.push_back(new TriggerNode("medium mana", NextAction::array(0, new NextAction("thunderstorm", ACTION_HIGH + 1), nullptr))); + triggers.push_back(new TriggerNode("enemy too close for spell", NextAction::array(0, new NextAction("flee", ACTION_MOVE + 9), nullptr))); } diff --git a/src/strategy/warrior/TankWarriorStrategy.cpp b/src/strategy/warrior/TankWarriorStrategy.cpp index 6f19d85b..c13c6149 100644 --- a/src/strategy/warrior/TankWarriorStrategy.cpp +++ b/src/strategy/warrior/TankWarriorStrategy.cpp @@ -13,7 +13,7 @@ class TankWarriorStrategyActionNodeFactory : public NamedObjectFactory& triggers) triggers.push_back(new TriggerNode("shield block", NextAction::array(0, new NextAction("shield block", ACTION_INTERRUPT + 1), nullptr))); triggers.push_back(new TriggerNode("revenge", NextAction::array(0, new NextAction("revenge", ACTION_HIGH + 2), nullptr))); triggers.push_back(new TriggerNode("disarm", NextAction::array(0, new NextAction("disarm", ACTION_HIGH + 1), nullptr))); - triggers.push_back(new TriggerNode("lose aggro", NextAction::array(0, new NextAction("heroic throw taunt", ACTION_INTERRUPT + 1), nullptr))); + triggers.push_back(new TriggerNode("lose aggro", NextAction::array(0, new NextAction("taunt", ACTION_INTERRUPT + 1), nullptr))); triggers.push_back(new TriggerNode("taunt on snare target", NextAction::array(0, new NextAction("heroic throw on snare target", ACTION_INTERRUPT), nullptr))); triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("shield wall", ACTION_MEDIUM_HEAL), nullptr))); triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("last stand", ACTION_EMERGENCY + 3), nullptr)));