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

View File

@@ -4,6 +4,7 @@
#include "HealPaladinStrategy.h"
#include "Playerbots.h"
#include "Strategy.h"
class HealPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
{
@@ -31,7 +32,7 @@ void HealPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& 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("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)));

View File

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

View File

@@ -54,6 +54,15 @@ class PaladinBuffAoeStrategy : public Strategy
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
{
public: