mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
paladin seal
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "DpsPaladinStrategy.h"
|
||||
#include "Playerbots.h"
|
||||
#include "Strategy.h"
|
||||
|
||||
class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
|
||||
{
|
||||
@@ -12,6 +13,7 @@ class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode
|
||||
{
|
||||
creators["sanctity aura"] = &sanctity_aura;
|
||||
creators["retribution aura"] = &retribution_aura;
|
||||
creators["seal of corruption"] = &seal_of_corruption;
|
||||
creators["seal of vengeance"] = &seal_of_vengeance;
|
||||
creators["seal of command"] = &seal_of_command;
|
||||
creators["blessing of might"] = &blessing_of_might;
|
||||
@@ -23,6 +25,14 @@ class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode
|
||||
}
|
||||
|
||||
private:
|
||||
static ActionNode* seal_of_corruption([[maybe_unused]] PlayerbotAI* botAI)
|
||||
{
|
||||
return new ActionNode ("seal of corruption",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of vengeance"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
static ActionNode* seal_of_vengeance([[maybe_unused]] PlayerbotAI* botAI)
|
||||
{
|
||||
return new ActionNode ("seal of vengeance",
|
||||
@@ -83,7 +93,7 @@ void DpsPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"seal",
|
||||
NextAction::array(0, new NextAction("seal of vengeance", 89.0f), NULL)));
|
||||
NextAction::array(0, new NextAction("seal of corruption", ACTION_HIGH), NULL)));
|
||||
// triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of command", 90.0f), nullptr)));
|
||||
triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("seal of wisdom", 91.0f), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("sanctity aura", NextAction::array(0, new NextAction("sanctity aura", 90.0f), nullptr)));
|
||||
|
||||
@@ -15,13 +15,13 @@ class GenericPaladinStrategyActionNodeFactory : public NamedObjectFactory<Action
|
||||
public:
|
||||
GenericPaladinStrategyActionNodeFactory()
|
||||
{
|
||||
creators["seal of light"] = &seal_of_light;
|
||||
// creators["seal of light"] = &seal_of_light;
|
||||
creators["cleanse poison"] = &cleanse_poison;
|
||||
creators["cleanse disease"] = &cleanse_disease;
|
||||
creators["cleanse magic"] = &cleanse_magic;
|
||||
creators["cleanse poison on party"] = &cleanse_poison_on_party;
|
||||
creators["cleanse disease on party"] = &cleanse_disease_on_party;
|
||||
creators["seal of wisdom"] = &seal_of_wisdom;
|
||||
// creators["seal of wisdom"] = &seal_of_wisdom;
|
||||
creators["seal of justice"] = &seal_of_justice;
|
||||
creators["hand of reckoning"] = &hand_of_reckoning;
|
||||
creators["judgement"] = &judgement;
|
||||
@@ -101,13 +101,13 @@ class GenericPaladinStrategyActionNodeFactory : public NamedObjectFactory<Action
|
||||
/*A*/ NULL, // NextAction::array(0, new NextAction("flash of light"), NULL),
|
||||
/*C*/ NULL);
|
||||
}
|
||||
static ActionNode* seal_of_light(PlayerbotAI* ai)
|
||||
{
|
||||
return new ActionNode ("seal of light",
|
||||
/*P*/ NULL,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of justice"), NULL),
|
||||
/*C*/ NULL);
|
||||
}
|
||||
// static ActionNode* seal_of_light(PlayerbotAI* ai)
|
||||
// {
|
||||
// return new ActionNode ("seal of light",
|
||||
// /*P*/ NULL,
|
||||
// /*A*/ NextAction::array(0, new NextAction("seal of justice"), NULL),
|
||||
// /*C*/ NULL);
|
||||
// }
|
||||
static ActionNode* cleanse_poison(PlayerbotAI* ai)
|
||||
{
|
||||
return new ActionNode ("cleanse poison",
|
||||
@@ -143,13 +143,13 @@ class GenericPaladinStrategyActionNodeFactory : public NamedObjectFactory<Action
|
||||
/*A*/ NextAction::array(0, new NextAction("purify disease on party"), NULL),
|
||||
/*C*/ NULL);
|
||||
}
|
||||
static ActionNode* seal_of_wisdom(PlayerbotAI* ai)
|
||||
{
|
||||
return new ActionNode ("seal of wisdom",
|
||||
/*P*/ NULL,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of justice"), NULL),
|
||||
/*C*/ NULL);
|
||||
}
|
||||
// static ActionNode* seal_of_wisdom(PlayerbotAI* ai)
|
||||
// {
|
||||
// return new ActionNode ("seal of wisdom",
|
||||
// /*P*/ NULL,
|
||||
// /*A*/ NextAction::array(0, new NextAction("seal of justice"), NULL),
|
||||
// /*C*/ NULL);
|
||||
// }
|
||||
static ActionNode* seal_of_justice(PlayerbotAI* ai)
|
||||
{
|
||||
return new ActionNode ("seal of justice",
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
class HealPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
|
||||
{
|
||||
public:
|
||||
HealPaladinStrategyActionNodeFactory()
|
||||
{
|
||||
creators["concentration aura"] = &concentration_aura;
|
||||
}
|
||||
// HealPaladinStrategyActionNodeFactory()
|
||||
// {
|
||||
// creators["concentration aura"] = &concentration_aura;
|
||||
// }
|
||||
|
||||
private:
|
||||
ACTION_NODE_A(concentration_aura, "concentration aura", "devotion aura");
|
||||
// ACTION_NODE_A(concentration_aura, "concentration aura", "devotion aura");
|
||||
};
|
||||
|
||||
HealPaladinStrategy::HealPaladinStrategy(PlayerbotAI* botAI) : GenericPaladinStrategy(botAI)
|
||||
|
||||
@@ -19,6 +19,7 @@ BUFF_ACTION(CastSealOfLightAction, "seal of light");
|
||||
BUFF_ACTION(CastSealOfWisdomAction, "seal of wisdom");
|
||||
BUFF_ACTION(CastSealOfCommandAction, "seal of command");
|
||||
BUFF_ACTION(CastSealOfVengeanceAction, "seal of vengeance");
|
||||
BUFF_ACTION(CastSealOfCorruptionAction, "seal of corruption");
|
||||
|
||||
// judgements
|
||||
SPELL_ACTION(CastJudgementAction, "judgement");
|
||||
|
||||
@@ -186,6 +186,7 @@ class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
||||
{
|
||||
creators["seal of command"] = &PaladinAiObjectContextInternal::seal_of_command;
|
||||
creators["seal of vengeance"] = &PaladinAiObjectContextInternal::seal_of_vengeance;
|
||||
creators["seal of corruption"] = &PaladinAiObjectContextInternal::seal_of_corruption;
|
||||
creators["blessing of might"] = &PaladinAiObjectContextInternal::blessing_of_might;
|
||||
creators["blessing of wisdom"] = &PaladinAiObjectContextInternal::blessing_of_wisdom;
|
||||
creators["blessing of kings"] = &PaladinAiObjectContextInternal::blessing_of_kings;
|
||||
@@ -265,6 +266,7 @@ class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
||||
static Action* righteous_fury(PlayerbotAI* botAI) { return new CastRighteousFuryAction(botAI); }
|
||||
static Action* seal_of_command(PlayerbotAI* botAI) { return new CastSealOfCommandAction(botAI); }
|
||||
static Action* seal_of_vengeance(PlayerbotAI* botAI) { return new CastSealOfVengeanceAction(botAI); }
|
||||
static Action* seal_of_corruption(PlayerbotAI* botAI) { return new CastSealOfCorruptionAction(botAI); }
|
||||
static Action* blessing_of_sanctuary(PlayerbotAI* botAI) { return new CastBlessingOfSanctuaryAction(botAI); }
|
||||
static Action* blessing_of_might(PlayerbotAI* botAI) { return new CastBlessingOfMightAction(botAI); }
|
||||
static Action* blessing_of_wisdom(PlayerbotAI* botAI) { return new CastBlessingOfWisdomAction(botAI); }
|
||||
|
||||
@@ -11,7 +11,7 @@ bool SealTrigger::IsActive()
|
||||
{
|
||||
Unit* target = GetTarget();
|
||||
return !botAI->HasAura("seal of justice", target) && !botAI->HasAura("seal of command", target) && !botAI->HasAura("seal of vengeance", target) &&
|
||||
!botAI->HasAura("seal of righteousness", target) && !botAI->HasAura("seal of light", target) && (!botAI->HasAura("seal of wisdom", target) || AI_VALUE2(uint8, "mana", "self target") > 70) &&
|
||||
!botAI->HasAura("seal of corruption", target) && !botAI->HasAura("seal of righteousness", target) && !botAI->HasAura("seal of light", target) && (!botAI->HasAura("seal of wisdom", target) || AI_VALUE2(uint8, "mana", "self target") > 70) &&
|
||||
AI_VALUE2(bool, "combat", "self target");
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ class CrusaderAuraTrigger : public BuffTrigger
|
||||
class SealTrigger : public BuffTrigger
|
||||
{
|
||||
public:
|
||||
SealTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "seal of justice") { }
|
||||
SealTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "seal") { }
|
||||
|
||||
bool IsActive() override;
|
||||
};
|
||||
|
||||
@@ -10,19 +10,44 @@ class TankPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNod
|
||||
public:
|
||||
TankPaladinStrategyActionNodeFactory()
|
||||
{
|
||||
// creators["seal of vengeance"] = &seal_of_vengeance;
|
||||
creators["seal of corruption"] = &seal_of_corruption;
|
||||
creators["seal of vengeance"] = &seal_of_vengeance;
|
||||
creators["seal of command"] = &seal_of_command;
|
||||
creators["hand of reckoning"] = &hand_of_reckoning;
|
||||
}
|
||||
|
||||
private:
|
||||
// static ActionNode* seal_of_vengeance([[maybe_unused]] PlayerbotAI* botAI)
|
||||
// {
|
||||
// return new ActionNode("seal of vengeance",
|
||||
// /*P*/ nullptr,
|
||||
// /*A*/ NextAction::array(0, new NextAction("seal of righteousness"), nullptr),
|
||||
// /*C*/ nullptr);
|
||||
// }
|
||||
static ActionNode* seal_of_corruption([[maybe_unused]] PlayerbotAI* botAI)
|
||||
{
|
||||
return new ActionNode ("seal of corruption",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of vengeance"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
static ActionNode* seal_of_vengeance([[maybe_unused]] PlayerbotAI* botAI)
|
||||
{
|
||||
return new ActionNode("seal of vengeance",
|
||||
return new ActionNode ("seal of vengeance",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of command"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
static ActionNode* seal_of_command([[maybe_unused]] PlayerbotAI* botAI)
|
||||
{
|
||||
return new ActionNode ("seal of command",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("seal of righteousness"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
ACTION_NODE_A(hand_of_reckoning, "hand of reckoning", "righteous defense");
|
||||
};
|
||||
|
||||
@@ -47,7 +72,7 @@ void TankPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
{
|
||||
GenericPaladinStrategy::InitTriggers(triggers);
|
||||
|
||||
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of command", 90.0f), nullptr)));
|
||||
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of corruption", 90.0f), nullptr)));
|
||||
triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("seal of wisdom", 91.0f), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("devotion aura", NextAction::array(0, new NextAction("devotion aura", 90.0f), NULL)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user