concentration aura

This commit is contained in:
Yunfan Li
2023-08-27 00:04:15 +08:00
parent 8bd0441755
commit a7a1df89a1
5 changed files with 25 additions and 8 deletions

View File

@@ -310,7 +310,7 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
if (tab == 1) if (tab == 1)
engine->addStrategies("tank", "tank assist", "bthreat", "barmor", "cure", nullptr); engine->addStrategies("tank", "tank assist", "bthreat", "barmor", "cure", nullptr);
else if (tab == 0) else if (tab == 0)
engine->addStrategies("heal", "dps assist", "cure", nullptr); engine->addStrategies("heal", "dps assist", "cure", "bcast", nullptr);
else else
engine->addStrategies("dps", "dps assist", "cure", "baoe", nullptr); engine->addStrategies("dps", "dps assist", "cure", "baoe", nullptr);
@@ -463,7 +463,7 @@ void AiFactory::AddDefaultNonCombatStrategies(Player* player, PlayerbotAI* const
if (tab == 1) if (tab == 1)
nonCombatEngine->addStrategies("bthreat", "tank assist", "bstats", "barmor", nullptr); nonCombatEngine->addStrategies("bthreat", "tank assist", "bstats", "barmor", nullptr);
else if (tab == 0) else if (tab == 0)
nonCombatEngine->addStrategies("dps assist", "bmana", nullptr); nonCombatEngine->addStrategies("dps assist", "bmana", "bcast", nullptr);
else else
nonCombatEngine->addStrategies("dps assist", "bdps", "baoe",nullptr); nonCombatEngine->addStrategies("dps assist", "bdps", "baoe",nullptr);

View File

@@ -4,6 +4,7 @@
#include "HealPaladinStrategy.h" #include "HealPaladinStrategy.h"
#include "Playerbots.h" #include "Playerbots.h"
#include "Strategy.h"
class HealPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode> class HealPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
{ {
@@ -31,7 +32,7 @@ void HealPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
GenericPaladinStrategy::InitTriggers(triggers); GenericPaladinStrategy::InitTriggers(triggers);
triggers.push_back(new TriggerNode("concentration aura", NextAction::array(0, new NextAction("concentration aura", 90.0f), nullptr))); // triggers.push_back(new TriggerNode("concentration aura", NextAction::array(0, new NextAction("concentration aura", ACTION_NORMAL), nullptr)));
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of wisdom", ACTION_HIGH), nullptr))); triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of wisdom", ACTION_HIGH), nullptr)));
triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("divine favor", ACTION_HIGH + 1), nullptr))); triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("divine favor", ACTION_HIGH + 1), nullptr)));
// triggers.push_back(new TriggerNode("blessing", NextAction::array(0, new NextAction("blessing of sanctuary", ACTION_HIGH + 9), nullptr))); // triggers.push_back(new TriggerNode("blessing", NextAction::array(0, new NextAction("blessing of sanctuary", ACTION_HIGH + 9), nullptr)));

View File

@@ -43,6 +43,7 @@ class PaladinResistanceStrategyFactoryInternal : public NamedObjectContext<Strat
creators["rfire"] = &PaladinResistanceStrategyFactoryInternal::rfire; creators["rfire"] = &PaladinResistanceStrategyFactoryInternal::rfire;
creators["baoe"] = &PaladinResistanceStrategyFactoryInternal::baoe; creators["baoe"] = &PaladinResistanceStrategyFactoryInternal::baoe;
creators["barmor"] = &PaladinResistanceStrategyFactoryInternal::barmor; creators["barmor"] = &PaladinResistanceStrategyFactoryInternal::barmor;
creators["bcast"] = &PaladinResistanceStrategyFactoryInternal::bcast;
} }
private: private:
@@ -51,6 +52,7 @@ class PaladinResistanceStrategyFactoryInternal : public NamedObjectContext<Strat
static Strategy* rfire(PlayerbotAI* botAI) { return new PaladinFireResistanceStrategy(botAI); } static Strategy* rfire(PlayerbotAI* botAI) { return new PaladinFireResistanceStrategy(botAI); }
static Strategy* baoe(PlayerbotAI* botAI) { return new PaladinBuffAoeStrategy(botAI); } static Strategy* baoe(PlayerbotAI* botAI) { return new PaladinBuffAoeStrategy(botAI); }
static Strategy* barmor(PlayerbotAI* botAI) { return new PaladinBuffArmorStrategy(botAI); } static Strategy* barmor(PlayerbotAI* botAI) { return new PaladinBuffArmorStrategy(botAI); }
static Strategy* bcast(PlayerbotAI* botAI) { return new PaladinBuffCastStrategy(botAI); }
}; };
class PaladinBuffStrategyFactoryInternal : public NamedObjectContext<Strategy> class PaladinBuffStrategyFactoryInternal : public NamedObjectContext<Strategy>

View File

@@ -25,27 +25,32 @@ void PaladinBuffDpsStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void PaladinShadowResistanceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void PaladinShadowResistanceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
triggers.push_back(new TriggerNode("shadow resistance aura", NextAction::array(0, new NextAction("shadow resistance aura", 90.0f), nullptr))); triggers.push_back(new TriggerNode("shadow resistance aura", NextAction::array(0, new NextAction("shadow resistance aura", ACTION_NORMAL), nullptr)));
} }
void PaladinFrostResistanceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void PaladinFrostResistanceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
triggers.push_back(new TriggerNode("frost resistance aura", NextAction::array(0, new NextAction("frost resistance aura", 90.0f), nullptr))); triggers.push_back(new TriggerNode("frost resistance aura", NextAction::array(0, new NextAction("frost resistance aura", ACTION_NORMAL), nullptr)));
} }
void PaladinFireResistanceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void PaladinFireResistanceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
triggers.push_back(new TriggerNode("fire resistance aura", NextAction::array(0, new NextAction("fire resistance aura", 90.0f), nullptr))); triggers.push_back(new TriggerNode("fire resistance aura", NextAction::array(0, new NextAction("fire resistance aura", ACTION_NORMAL), nullptr)));
} }
void PaladinBuffArmorStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void PaladinBuffArmorStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
triggers.push_back(new TriggerNode("devotion aura", NextAction::array(0, new NextAction("devotion aura", 90.0f), nullptr))); triggers.push_back(new TriggerNode("devotion aura", NextAction::array(0, new NextAction("devotion aura", ACTION_NORMAL), nullptr)));
} }
void PaladinBuffAoeStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void PaladinBuffAoeStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
triggers.push_back(new TriggerNode("retribution aura", NextAction::array(0, new NextAction("retribution aura", 90.0f), nullptr))); triggers.push_back(new TriggerNode("retribution aura", NextAction::array(0, new NextAction("retribution aura", ACTION_NORMAL), nullptr)));
}
void PaladinBuffCastStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{
triggers.push_back(new TriggerNode("concentration aura", NextAction::array(0, new NextAction("concentration aura", ACTION_NORMAL), nullptr)));
} }
void PaladinBuffThreatStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void PaladinBuffThreatStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)

View File

@@ -54,6 +54,15 @@ class PaladinBuffAoeStrategy : public Strategy
std::string const getName() override { return "baoe"; } std::string const getName() override { return "baoe"; }
}; };
class PaladinBuffCastStrategy : public Strategy
{
public:
PaladinBuffCastStrategy(PlayerbotAI* botAI) : Strategy(botAI) { }
void InitTriggers(std::vector<TriggerNode*>& triggers) override;
std::string const getName() override { return "bcast"; }
};
class PaladinBuffThreatStrategy : public Strategy class PaladinBuffThreatStrategy : public Strategy
{ {
public: public: