mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
Paladin AI tweaks
This commit is contained in:
@@ -326,11 +326,11 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
|
|||||||
break;
|
break;
|
||||||
case CLASS_PALADIN:
|
case CLASS_PALADIN:
|
||||||
if (tab == 1)
|
if (tab == 1)
|
||||||
engine->addStrategies("tank", "tank assist", "bthreat", "cure", "barmor", "bstats", "close", "cc", nullptr);
|
engine->addStrategies("tank", "tank assist", "bthreat", "cure", "baoe", "bstats", "close", "cc", nullptr);
|
||||||
else if (tab == 0)
|
else if (tab == 0)
|
||||||
engine->addStrategies("heal", "bmana", "dps assist", "cure", "flee", "barmor", nullptr);
|
engine->addStrategies("heal", "bmana", "dps assist", "cure", "flee", "cc", nullptr);
|
||||||
else
|
else
|
||||||
engine->addStrategies("dps", "bdps", "dps assist", "cure", "baoe", "close", "cc", nullptr);
|
engine->addStrategies("dps", "bdps", "dps assist", "cure", "close", "cc", nullptr);
|
||||||
|
|
||||||
if (player->getLevel() < 14)
|
if (player->getLevel() < 14)
|
||||||
{
|
{
|
||||||
@@ -492,11 +492,11 @@ void AiFactory::AddDefaultNonCombatStrategies(Player* player, PlayerbotAI* const
|
|||||||
break;
|
break;
|
||||||
case CLASS_PALADIN:
|
case CLASS_PALADIN:
|
||||||
if (tab == 1)
|
if (tab == 1)
|
||||||
nonCombatEngine->addStrategies("bthreat", "tank assist", "barmor", "bstats", nullptr);
|
nonCombatEngine->addStrategies("bthreat", "tank assist", "baoe", "bstats", nullptr);
|
||||||
else if (tab == 0)
|
else if (tab == 0)
|
||||||
nonCombatEngine->addStrategies("dps assist", "barmor", "bmana", nullptr);
|
nonCombatEngine->addStrategies("dps assist", "bmana", nullptr);
|
||||||
else
|
else
|
||||||
nonCombatEngine->addStrategies("dps assist", "baoe", "bdps", nullptr);
|
nonCombatEngine->addStrategies("dps assist", "bdps", nullptr);
|
||||||
|
|
||||||
nonCombatEngine->addStrategies("cure", nullptr);
|
nonCombatEngine->addStrategies("cure", nullptr);
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,16 @@ class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode
|
|||||||
public:
|
public:
|
||||||
DpsPaladinStrategyActionNodeFactory()
|
DpsPaladinStrategyActionNodeFactory()
|
||||||
{
|
{
|
||||||
|
creators["sanctity aura"] = &sanctity_aura;
|
||||||
|
creators["retribution aura"] = &retribution_aura;
|
||||||
creators["seal of vengeance"] = &seal_of_vengeance;
|
creators["seal of vengeance"] = &seal_of_vengeance;
|
||||||
creators["seal of command"] = &seal_of_command;
|
creators["seal of command"] = &seal_of_command;
|
||||||
creators["blessing of might"] = &blessing_of_might;
|
creators["blessing of might"] = &blessing_of_might;
|
||||||
creators["crusader strike"] = &crusader_strike;
|
creators["crusader strike"] = &crusader_strike;
|
||||||
|
creators["repentance"] = &repentance;
|
||||||
|
creators["repentance on enemy healer"] = &repentance_on_enemy_healer;
|
||||||
|
creators["repentance on snare target"] = &repentance_on_snare_target;
|
||||||
|
creators["repentance of shield"] = &repentance_or_shield;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -29,7 +35,7 @@ class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode
|
|||||||
{
|
{
|
||||||
return new ActionNode ("seal of command",
|
return new ActionNode ("seal of command",
|
||||||
/*P*/ nullptr,
|
/*P*/ nullptr,
|
||||||
/*A*/ NextAction::array(0, new NextAction("seal of wisdom"), nullptr),
|
/*A*/ NextAction::array(0, new NextAction("seal of righteousness"), nullptr),
|
||||||
/*C*/ nullptr);
|
/*C*/ nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,6 +54,12 @@ class DpsPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode
|
|||||||
/*A*/ NextAction::array(0, new NextAction("melee"), nullptr),
|
/*A*/ NextAction::array(0, new NextAction("melee"), nullptr),
|
||||||
/*C*/ nullptr);
|
/*C*/ nullptr);
|
||||||
}
|
}
|
||||||
|
ACTION_NODE_A(repentance, "repentance", "hammer of justice");
|
||||||
|
ACTION_NODE_A(repentance_on_enemy_healer, "repentance on enemy healer", "hammer of justice on enemy healer");
|
||||||
|
ACTION_NODE_A(repentance_on_snare_target, "repentance on snare target", "hammer of justice on snare target");
|
||||||
|
ACTION_NODE_A(sanctity_aura, "sanctity aura", "retribution aura");
|
||||||
|
ACTION_NODE_A(retribution_aura, "retribution aura", "devotion aura");
|
||||||
|
ACTION_NODE_A(repentance_or_shield, "repentance", "divine shield");
|
||||||
};
|
};
|
||||||
|
|
||||||
DpsPaladinStrategy::DpsPaladinStrategy(PlayerbotAI* botAI) : GenericPaladinStrategy(botAI)
|
DpsPaladinStrategy::DpsPaladinStrategy(PlayerbotAI* botAI) : GenericPaladinStrategy(botAI)
|
||||||
@@ -64,9 +76,17 @@ void DpsPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
|||||||
{
|
{
|
||||||
GenericPaladinStrategy::InitTriggers(triggers);
|
GenericPaladinStrategy::InitTriggers(triggers);
|
||||||
|
|
||||||
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of wisdom", 90.0f), nullptr)));
|
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of command", 90.0f), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("divine shield", ACTION_CRITICAL_HEAL + 2), new NextAction("holy light", ACTION_CRITICAL_HEAL + 2), nullptr)));
|
triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("seal of wisdom", 91.0f), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("judgement of wisdom", NextAction::array(0, new NextAction("judgement of wisdom", ACTION_NORMAL + 2), nullptr)));
|
triggers.push_back(new TriggerNode("sanctity aura", NextAction::array(0, new NextAction("sanctity aura", 90.0f), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("repentance or shield", ACTION_CRITICAL_HEAL + 3), new NextAction("holy light", ACTION_CRITICAL_HEAL + 2), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("judgement of wisdom", NextAction::array(0, new NextAction("judgement of wisdom", ACTION_NORMAL + 10), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("judgement", NextAction::array(0, new NextAction("judgement", ACTION_HIGH + 10), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("consecration", ACTION_INTERRUPT), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("repentance on enemy healer", NextAction::array(0, new NextAction("repentance on enemy healer", ACTION_INTERRUPT + 2), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("repentance on snare target", NextAction::array(0, new NextAction("repentance on snare target", ACTION_INTERRUPT + 2), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("repentance", NextAction::array(0, new NextAction("repentance", ACTION_INTERRUPT + 2), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("medium aoe", NextAction::array(0, new NextAction("divine storm", ACTION_HIGH + 1), new NextAction("consecration", ACTION_HIGH + 1), nullptr)));
|
triggers.push_back(new TriggerNode("medium aoe", NextAction::array(0, new NextAction("divine storm", ACTION_HIGH + 1), new NextAction("consecration", ACTION_HIGH + 1), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("art of war", NextAction::array(0, new NextAction("exorcism", ACTION_HIGH + 2), nullptr)));
|
triggers.push_back(new TriggerNode("art of war", NextAction::array(0, new NextAction("exorcism", ACTION_HIGH + 2), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("target critical health", NextAction::array(0, new NextAction("hammer of wrath", ACTION_CRITICAL_HEAL), nullptr)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,4 +16,6 @@ void GenericPaladinNonCombatStrategy::InitTriggers(std::vector<TriggerNode*>& tr
|
|||||||
NonCombatStrategy::InitTriggers(triggers);
|
NonCombatStrategy::InitTriggers(triggers);
|
||||||
|
|
||||||
triggers.push_back(new TriggerNode("party member dead", NextAction::array(0, new NextAction("redemption", 30.0f), nullptr)));
|
triggers.push_back(new TriggerNode("party member dead", NextAction::array(0, new NextAction("redemption", 30.0f), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("almost full health", NextAction::array(0, new NextAction("flash of light", 23.0f), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("party member almost full health", NextAction::array(0, new NextAction("flash of light on party", 24.0f), nullptr)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,15 +15,12 @@ void GenericPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
|||||||
{
|
{
|
||||||
CombatStrategy::InitTriggers(triggers);
|
CombatStrategy::InitTriggers(triggers);
|
||||||
|
|
||||||
triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("divine protection", ACTION_CRITICAL_HEAL + 2), new NextAction("holy light", ACTION_CRITICAL_HEAL + 2), nullptr)));
|
triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("divine shield", ACTION_CRITICAL_HEAL + 2), new NextAction("holy light", ACTION_CRITICAL_HEAL + 2), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("party member low health", NextAction::array(0, new NextAction("holy light on party", ACTION_CRITICAL_HEAL + 1), nullptr)));
|
|
||||||
triggers.push_back(new TriggerNode("hammer of justice interrupt", NextAction::array(0, new NextAction("hammer of justice", ACTION_INTERRUPT), nullptr)));
|
triggers.push_back(new TriggerNode("hammer of justice interrupt", NextAction::array(0, new NextAction("hammer of justice", ACTION_INTERRUPT), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("hammer of justice on enemy healer", NextAction::array(0, new NextAction("hammer of justice on enemy healer", ACTION_INTERRUPT), nullptr)));
|
triggers.push_back(new TriggerNode("hammer of justice on enemy healer", NextAction::array(0, new NextAction("hammer of justice on enemy healer", ACTION_INTERRUPT), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("hammer of justice on snare target", NextAction::array(0, new NextAction("hammer of justice on snare target", ACTION_MOVE + 1), nullptr)));
|
triggers.push_back(new TriggerNode("hammer of justice on snare target", NextAction::array(0, new NextAction("hammer of justice on snare target", ACTION_INTERRUPT), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("lay on hands", ACTION_EMERGENCY), nullptr)));
|
triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("lay on hands", ACTION_EMERGENCY), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("party member critical health", NextAction::array(0, new NextAction("lay on hands on party", ACTION_EMERGENCY), nullptr)));
|
triggers.push_back(new TriggerNode("party member critical health", NextAction::array(0, new NextAction("lay on hands on party", ACTION_EMERGENCY + 1), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("target critical health", NextAction::array(0, new NextAction("hammer of wrath", ACTION_HIGH + 1), nullptr)));
|
|
||||||
triggers.push_back(new TriggerNode("often", NextAction::array(0, new NextAction("apply stone", 1.0f), nullptr)));
|
|
||||||
triggers.push_back(new TriggerNode("protect party member", NextAction::array(0, new NextAction("blessing of protection on party", ACTION_EMERGENCY + 2), nullptr)));
|
triggers.push_back(new TriggerNode("protect party member", NextAction::array(0, new NextAction("blessing of protection on party", ACTION_EMERGENCY + 2), nullptr)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,21 +5,43 @@
|
|||||||
#include "HealPaladinStrategy.h"
|
#include "HealPaladinStrategy.h"
|
||||||
#include "Playerbots.h"
|
#include "Playerbots.h"
|
||||||
|
|
||||||
|
class HealPaladinStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HealPaladinStrategyActionNodeFactory()
|
||||||
|
{
|
||||||
|
creators["concentration aura"] = &concentration_aura;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
ACTION_NODE_A(concentration_aura, "concentration aura", "devotion aura");
|
||||||
|
};
|
||||||
|
|
||||||
HealPaladinStrategy::HealPaladinStrategy(PlayerbotAI* botAI) : GenericPaladinStrategy(botAI)
|
HealPaladinStrategy::HealPaladinStrategy(PlayerbotAI* botAI) : GenericPaladinStrategy(botAI)
|
||||||
{
|
{
|
||||||
|
actionNodeFactories.Add(new HealPaladinStrategyActionNodeFactory());
|
||||||
}
|
}
|
||||||
|
|
||||||
NextAction** HealPaladinStrategy::getDefaultActions()
|
NextAction** HealPaladinStrategy::getDefaultActions()
|
||||||
{
|
{
|
||||||
return NextAction::array(0, new NextAction("melee", ACTION_NORMAL), nullptr);
|
return NextAction::array(0, new NextAction("reach party member to heal", ACTION_NORMAL + 1), new NextAction("judgement", ACTION_NORMAL), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HealPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
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("seal", NextAction::array(0, new NextAction("seal of light", ACTION_HIGH), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("judgement of light", ACTION_HIGH + 10), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("judgement", ACTION_HIGH + 10), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("divine favor", ACTION_HIGH + 1), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("almost full health", NextAction::array(0, new NextAction("flash of light", ACTION_LIGHT_HEAL + 2), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("party member almost full health", NextAction::array(0, new NextAction("flash of light on party", ACTION_LIGHT_HEAL + 1), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("medium health", NextAction::array(0, new NextAction("flash of light", ACTION_MEDIUM_HEAL + 2), nullptr)));
|
triggers.push_back(new TriggerNode("medium health", NextAction::array(0, new NextAction("flash of light", ACTION_MEDIUM_HEAL + 2), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("party member medium health", NextAction::array(0, new NextAction("flash of light on party", ACTION_MEDIUM_HEAL + 1), nullptr)));
|
triggers.push_back(new TriggerNode("party member medium health", NextAction::array(0, new NextAction("flash of light on party", ACTION_MEDIUM_HEAL + 1), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("divine favor", ACTION_MEDIUM_HEAL + 4), new NextAction("holy shock", ACTION_MEDIUM_HEAL + 3), new NextAction("holy light", ACTION_MEDIUM_HEAL + 2), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("party member low health", NextAction::array(0, new NextAction("divine favor", ACTION_MEDIUM_HEAL + 7), new NextAction("holy shock on party", ACTION_MEDIUM_HEAL + 6), new NextAction("holy light on party", ACTION_MEDIUM_HEAL + 5), 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)));
|
||||||
triggers.push_back(new TriggerNode("party member to heal out of spell range", NextAction::array(0, new NextAction("reach party member to heal", ACTION_CRITICAL_HEAL + 1), nullptr)));
|
triggers.push_back(new TriggerNode("party member to heal out of spell range", NextAction::array(0, new NextAction("reach party member to heal", ACTION_EMERGENCY + 3), nullptr)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,12 +11,6 @@
|
|||||||
class PlayerbotAI;
|
class PlayerbotAI;
|
||||||
class Unit;
|
class Unit;
|
||||||
|
|
||||||
// judgements
|
|
||||||
MELEE_ACTION(CastJudgementAction, "judgement");
|
|
||||||
MELEE_ACTION(CastJudgementOfLightAction, "judgement of light");
|
|
||||||
MELEE_ACTION(CastJudgementOfWisdomAction, "judgement of wisdom");
|
|
||||||
MELEE_ACTION(CastJudgementOfJusticeAction, "judgement of justice");
|
|
||||||
|
|
||||||
// seals
|
// seals
|
||||||
BUFF_ACTION(CastSealOfRighteousnessAction, "seal of righteousness");
|
BUFF_ACTION(CastSealOfRighteousnessAction, "seal of righteousness");
|
||||||
BUFF_ACTION(CastSealOfJusticeAction, "seal of justice");
|
BUFF_ACTION(CastSealOfJusticeAction, "seal of justice");
|
||||||
@@ -25,10 +19,40 @@ BUFF_ACTION(CastSealOfWisdomAction, "seal of wisdom");
|
|||||||
BUFF_ACTION(CastSealOfCommandAction, "seal of command");
|
BUFF_ACTION(CastSealOfCommandAction, "seal of command");
|
||||||
BUFF_ACTION(CastSealOfVengeanceAction, "seal of vengeance");
|
BUFF_ACTION(CastSealOfVengeanceAction, "seal of vengeance");
|
||||||
|
|
||||||
|
// judgements
|
||||||
|
DEBUFF_ACTION_R(CastJudgementAction, "judgement", 10.0f);
|
||||||
|
DEBUFF_ACTION_R(CastJudgementOfLightAction, "judgement of light", 10.0f);
|
||||||
|
DEBUFF_ACTION_R(CastJudgementOfWisdomAction, "judgement of wisdom", 10.0f);
|
||||||
|
DEBUFF_ACTION_R(CastJudgementOfJusticeAction, "judgement of justice", 10.0f);
|
||||||
|
|
||||||
// auras
|
// auras
|
||||||
BUFF_ACTION(CastDevotionAuraAction, "devotion aura");
|
BUFF_ACTION(CastDevotionAuraAction, "devotion aura");
|
||||||
BUFF_ACTION(CastRetributionAuraAction, "retribution aura");
|
BUFF_ACTION(CastRetributionAuraAction, "retribution aura");
|
||||||
BUFF_ACTION(CastConcentrationAuraAction, "concentration aura");
|
BUFF_ACTION(CastConcentrationAuraAction, "concentration aura");
|
||||||
|
BUFF_ACTION(CastShadowResistanceAuraAction, "shadow resistance aura");
|
||||||
|
BUFF_ACTION(CastFrostResistanceAuraAction, "frost resistance aura");
|
||||||
|
BUFF_ACTION(CastFireResistanceAuraAction, "fire resistance aura");
|
||||||
|
BUFF_ACTION(CastCrusaderAuraAction, "crusader aura");
|
||||||
|
BUFF_ACTION(CastSanctityAuraAction, "sanctity aura");
|
||||||
|
|
||||||
|
SPELL_ACTION(CastHolyShockAction, "holy shock");
|
||||||
|
HEAL_PARTY_ACTION(CastHolyShockOnPartyAction, "holy shock");
|
||||||
|
|
||||||
|
// consecration
|
||||||
|
SPELL_ACTION(CastConsecrationAction, "consecration");
|
||||||
|
|
||||||
|
// repentance
|
||||||
|
SNARE_ACTION(CastRepentanceSnareAction, "repentance");
|
||||||
|
DEBUFF_ACTION(CastRepentanceAction, "repentance");
|
||||||
|
ENEMY_HEALER_ACTION(CastRepentanceOnHealerAction, "repentance");
|
||||||
|
|
||||||
|
//hamme of wrath
|
||||||
|
SPELL_ACTION(CastHammerOfWrathAction, "hammer of wrath");
|
||||||
|
|
||||||
|
// buffs
|
||||||
|
BUFF_ACTION(CastDivineFavorAction, "divine favor");
|
||||||
|
|
||||||
|
// blessings
|
||||||
|
|
||||||
// fury
|
// fury
|
||||||
BUFF_ACTION(CastRighteousFuryAction, "righteous fury");
|
BUFF_ACTION(CastRighteousFuryAction, "righteous fury");
|
||||||
@@ -45,30 +69,6 @@ class CastCrusaderStrikeAction : public CastMeleeSpellAction
|
|||||||
CastCrusaderStrikeAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "crusader strike") { }
|
CastCrusaderStrikeAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "crusader strike") { }
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastShadowResistanceAuraAction : public CastBuffSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastShadowResistanceAuraAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "shadow resistance aura") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastFrostResistanceAuraAction : public CastBuffSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastFrostResistanceAuraAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "frost resistance aura") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastFireResistanceAuraAction : public CastBuffSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastFireResistanceAuraAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "fire resistance aura") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastCrusaderAuraAction : public CastBuffSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastCrusaderAuraAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "crusader aura") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastSealSpellAction : public CastBuffSpellAction
|
class CastSealSpellAction : public CastBuffSpellAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -157,8 +157,6 @@ class CastHolyLightOnPartyAction : public HealPartyMemberAction
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CastHolyLightOnPartyAction(PlayerbotAI* botAI) : HealPartyMemberAction(botAI, "holy light") { }
|
CastHolyLightOnPartyAction(PlayerbotAI* botAI) : HealPartyMemberAction(botAI, "holy light") { }
|
||||||
|
|
||||||
std::string const getName() override { return "holy light on party"; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastFlashOfLightAction : public CastHealingSpellAction
|
class CastFlashOfLightAction : public CastHealingSpellAction
|
||||||
@@ -171,8 +169,6 @@ class CastFlashOfLightOnPartyAction : public HealPartyMemberAction
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CastFlashOfLightOnPartyAction(PlayerbotAI* botAI) : HealPartyMemberAction(botAI, "flash of light") { }
|
CastFlashOfLightOnPartyAction(PlayerbotAI* botAI) : HealPartyMemberAction(botAI, "flash of light") { }
|
||||||
|
|
||||||
std::string const getName() override { return "flash of light on party"; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastLayOnHandsAction : public CastHealingSpellAction
|
class CastLayOnHandsAction : public CastHealingSpellAction
|
||||||
@@ -185,8 +181,6 @@ class CastLayOnHandsOnPartyAction : public HealPartyMemberAction
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CastLayOnHandsOnPartyAction(PlayerbotAI* botAI) : HealPartyMemberAction(botAI, "lay on hands") { }
|
CastLayOnHandsOnPartyAction(PlayerbotAI* botAI) : HealPartyMemberAction(botAI, "lay on hands") { }
|
||||||
|
|
||||||
std::string const getName() override { return "lay on hands on party"; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastDivineProtectionAction : public CastBuffSpellAction
|
class CastDivineProtectionAction : public CastBuffSpellAction
|
||||||
@@ -209,12 +203,6 @@ class CastDivineShieldAction: public CastBuffSpellAction
|
|||||||
CastDivineShieldAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "divine shield") { }
|
CastDivineShieldAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "divine shield") { }
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastConsecrationAction : public CastMeleeSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastConsecrationAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "consecration") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastHolyWrathAction : public CastMeleeSpellAction
|
class CastHolyWrathAction : public CastMeleeSpellAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -227,12 +215,6 @@ class CastHammerOfJusticeAction : public CastMeleeSpellAction
|
|||||||
CastHammerOfJusticeAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "hammer of justice") { }
|
CastHammerOfJusticeAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "hammer of justice") { }
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastHammerOfWrathAction : public CastMeleeSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastHammerOfWrathAction(PlayerbotAI* botAI) : CastMeleeSpellAction(botAI, "hammer of wrath") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastHammerOfTheRighteousAction : public CastMeleeSpellAction
|
class CastHammerOfTheRighteousAction : public CastMeleeSpellAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -351,12 +333,6 @@ class CastHammerOfJusticeSnareAction : public CastSnareSpellAction
|
|||||||
CastHammerOfJusticeSnareAction(PlayerbotAI* botAI) : CastSnareSpellAction(botAI, "hammer of justice") { }
|
CastHammerOfJusticeSnareAction(PlayerbotAI* botAI) : CastSnareSpellAction(botAI, "hammer of justice") { }
|
||||||
};
|
};
|
||||||
|
|
||||||
class CastDivineFavorAction : public CastBuffSpellAction
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CastDivineFavorAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "divine favor") { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class CastTurnUndeadAction : public CastBuffSpellAction
|
class CastTurnUndeadAction : public CastBuffSpellAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ class PaladinTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
|||||||
public:
|
public:
|
||||||
PaladinTriggerFactoryInternal()
|
PaladinTriggerFactoryInternal()
|
||||||
{
|
{
|
||||||
|
creators["judgement"] = &PaladinTriggerFactoryInternal::judgement;
|
||||||
creators["judgement of wisdom"] = &PaladinTriggerFactoryInternal::judgement_of_wisdom;
|
creators["judgement of wisdom"] = &PaladinTriggerFactoryInternal::judgement_of_wisdom;
|
||||||
creators["judgement of light"] = &PaladinTriggerFactoryInternal::judgement_of_light;
|
creators["judgement of light"] = &PaladinTriggerFactoryInternal::judgement_of_light;
|
||||||
creators["blessing"] = &PaladinTriggerFactoryInternal::blessing;
|
creators["blessing"] = &PaladinTriggerFactoryInternal::blessing;
|
||||||
@@ -101,6 +102,8 @@ class PaladinTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
|||||||
creators["crusader aura"] = &PaladinTriggerFactoryInternal::crusader_aura;
|
creators["crusader aura"] = &PaladinTriggerFactoryInternal::crusader_aura;
|
||||||
creators["retribution aura"] = &PaladinTriggerFactoryInternal::retribution_aura;
|
creators["retribution aura"] = &PaladinTriggerFactoryInternal::retribution_aura;
|
||||||
creators["devotion aura"] = &PaladinTriggerFactoryInternal::devotion_aura;
|
creators["devotion aura"] = &PaladinTriggerFactoryInternal::devotion_aura;
|
||||||
|
creators["sanctity aura"] = &PaladinTriggerFactoryInternal::sanctity_aura;
|
||||||
|
creators["concentration aura"] = &PaladinTriggerFactoryInternal::concentration_aura;
|
||||||
creators["shadow resistance aura"] = &PaladinTriggerFactoryInternal::shadow_resistance_aura;
|
creators["shadow resistance aura"] = &PaladinTriggerFactoryInternal::shadow_resistance_aura;
|
||||||
creators["frost resistance aura"] = &PaladinTriggerFactoryInternal::frost_resistance_aura;
|
creators["frost resistance aura"] = &PaladinTriggerFactoryInternal::frost_resistance_aura;
|
||||||
creators["fire resistance aura"] = &PaladinTriggerFactoryInternal::fire_resistance_aura;
|
creators["fire resistance aura"] = &PaladinTriggerFactoryInternal::fire_resistance_aura;
|
||||||
@@ -119,6 +122,10 @@ class PaladinTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
|||||||
creators["divine favor"] = &PaladinTriggerFactoryInternal::divine_favor;
|
creators["divine favor"] = &PaladinTriggerFactoryInternal::divine_favor;
|
||||||
creators["turn undead"] = &PaladinTriggerFactoryInternal::turn_undead;
|
creators["turn undead"] = &PaladinTriggerFactoryInternal::turn_undead;
|
||||||
creators["avenger's shield"] = &PaladinTriggerFactoryInternal::avenger_shield;
|
creators["avenger's shield"] = &PaladinTriggerFactoryInternal::avenger_shield;
|
||||||
|
creators["consecration"] = &PaladinTriggerFactoryInternal::consecration;
|
||||||
|
creators["repentance on enemy healer"] = &PaladinTriggerFactoryInternal::repentance_on_enemy_healer;
|
||||||
|
creators["repentance on snare target"] = &PaladinTriggerFactoryInternal::repentance_on_snare_target;
|
||||||
|
creators["repentance interrupt"] = &PaladinTriggerFactoryInternal::repentance_interrupt;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -126,6 +133,7 @@ class PaladinTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
|||||||
static Trigger* divine_favor(PlayerbotAI* botAI) { return new DivineFavorTrigger(botAI); }
|
static Trigger* divine_favor(PlayerbotAI* botAI) { return new DivineFavorTrigger(botAI); }
|
||||||
static Trigger* holy_shield(PlayerbotAI* botAI) { return new HolyShieldTrigger(botAI); }
|
static Trigger* holy_shield(PlayerbotAI* botAI) { return new HolyShieldTrigger(botAI); }
|
||||||
static Trigger* righteous_fury(PlayerbotAI* botAI) { return new RighteousFuryTrigger(botAI); }
|
static Trigger* righteous_fury(PlayerbotAI* botAI) { return new RighteousFuryTrigger(botAI); }
|
||||||
|
static Trigger* judgement(PlayerbotAI* botAI) { return new JudgementTrigger(botAI); }
|
||||||
static Trigger* judgement_of_wisdom(PlayerbotAI* botAI) { return new JudgementOfWisdomTrigger(botAI); }
|
static Trigger* judgement_of_wisdom(PlayerbotAI* botAI) { return new JudgementOfWisdomTrigger(botAI); }
|
||||||
static Trigger* judgement_of_light(PlayerbotAI* botAI) { return new JudgementOfLightTrigger(botAI); }
|
static Trigger* judgement_of_light(PlayerbotAI* botAI) { return new JudgementOfLightTrigger(botAI); }
|
||||||
static Trigger* blessing(PlayerbotAI* botAI) { return new BlessingTrigger(botAI); }
|
static Trigger* blessing(PlayerbotAI* botAI) { return new BlessingTrigger(botAI); }
|
||||||
@@ -135,6 +143,8 @@ class PaladinTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
|||||||
static Trigger* crusader_aura(PlayerbotAI* botAI) { return new CrusaderAuraTrigger(botAI); }
|
static Trigger* crusader_aura(PlayerbotAI* botAI) { return new CrusaderAuraTrigger(botAI); }
|
||||||
static Trigger* retribution_aura(PlayerbotAI* botAI) { return new RetributionAuraTrigger(botAI); }
|
static Trigger* retribution_aura(PlayerbotAI* botAI) { return new RetributionAuraTrigger(botAI); }
|
||||||
static Trigger* devotion_aura(PlayerbotAI* botAI) { return new DevotionAuraTrigger(botAI); }
|
static Trigger* devotion_aura(PlayerbotAI* botAI) { return new DevotionAuraTrigger(botAI); }
|
||||||
|
static Trigger* sanctity_aura(PlayerbotAI* botAI) { return new SanctityAuraTrigger(botAI); }
|
||||||
|
static Trigger* concentration_aura(PlayerbotAI* botAI) { return new ConcentrationAuraTrigger(botAI); }
|
||||||
static Trigger* shadow_resistance_aura(PlayerbotAI* botAI) { return new ShadowResistanceAuraTrigger(botAI); }
|
static Trigger* shadow_resistance_aura(PlayerbotAI* botAI) { return new ShadowResistanceAuraTrigger(botAI); }
|
||||||
static Trigger* frost_resistance_aura(PlayerbotAI* botAI) { return new FrostResistanceAuraTrigger(botAI); }
|
static Trigger* frost_resistance_aura(PlayerbotAI* botAI) { return new FrostResistanceAuraTrigger(botAI); }
|
||||||
static Trigger* fire_resistance_aura(PlayerbotAI* botAI) { return new FireResistanceAuraTrigger(botAI); }
|
static Trigger* fire_resistance_aura(PlayerbotAI* botAI) { return new FireResistanceAuraTrigger(botAI); }
|
||||||
@@ -149,6 +159,10 @@ class PaladinTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
|||||||
static Trigger* hammer_of_justice_on_enemy_target(PlayerbotAI* botAI) { return new HammerOfJusticeEnemyHealerTrigger(botAI); }
|
static Trigger* hammer_of_justice_on_enemy_target(PlayerbotAI* botAI) { return new HammerOfJusticeEnemyHealerTrigger(botAI); }
|
||||||
static Trigger* hammer_of_justice_on_snare_target(PlayerbotAI* botAI) { return new HammerOfJusticeSnareTrigger(botAI); }
|
static Trigger* hammer_of_justice_on_snare_target(PlayerbotAI* botAI) { return new HammerOfJusticeSnareTrigger(botAI); }
|
||||||
static Trigger* avenger_shield(PlayerbotAI* botAI) { return new AvengerShieldTrigger(botAI); }
|
static Trigger* avenger_shield(PlayerbotAI* botAI) { return new AvengerShieldTrigger(botAI); }
|
||||||
|
static Trigger* consecration(PlayerbotAI* botAI) { return new ConsecrationTrigger(ai); }
|
||||||
|
static Trigger* repentance_on_enemy_healer(PlayerbotAI* botAI) { return new RepentanceOnHealerTrigger(botAI); }
|
||||||
|
static Trigger* repentance_on_snare_target(PlayerbotAI* botAI) { return new RepentanceSnareTrigger(botAI); }
|
||||||
|
static Trigger* repentance_interrupt(PlayerbotAI* botAI) { return new RepentanceInterruptTrigger(botAI); }
|
||||||
};
|
};
|
||||||
|
|
||||||
class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
||||||
@@ -171,6 +185,7 @@ class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
|||||||
creators["crusader aura"] = &PaladinAiObjectContextInternal::crusader_aura;
|
creators["crusader aura"] = &PaladinAiObjectContextInternal::crusader_aura;
|
||||||
creators["seal of light"] = &PaladinAiObjectContextInternal::seal_of_light;
|
creators["seal of light"] = &PaladinAiObjectContextInternal::seal_of_light;
|
||||||
creators["devotion aura"] = &PaladinAiObjectContextInternal::devotion_aura;
|
creators["devotion aura"] = &PaladinAiObjectContextInternal::devotion_aura;
|
||||||
|
creators["concentration aura"] = &PaladinAiObjectContextInternal::concentration_aura;
|
||||||
creators["holy wrath"] = &PaladinAiObjectContextInternal::holy_wrath;
|
creators["holy wrath"] = &PaladinAiObjectContextInternal::holy_wrath;
|
||||||
creators["consecration"] = &PaladinAiObjectContextInternal::consecration;
|
creators["consecration"] = &PaladinAiObjectContextInternal::consecration;
|
||||||
creators["cleanse disease"] = &PaladinAiObjectContextInternal::cleanse_disease;
|
creators["cleanse disease"] = &PaladinAiObjectContextInternal::cleanse_disease;
|
||||||
@@ -217,6 +232,12 @@ class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
|||||||
creators["turn undead"] = &PaladinAiObjectContextInternal::turn_undead;
|
creators["turn undead"] = &PaladinAiObjectContextInternal::turn_undead;
|
||||||
creators["blessing of protection on party"] = &PaladinAiObjectContextInternal::blessing_of_protection_on_party;
|
creators["blessing of protection on party"] = &PaladinAiObjectContextInternal::blessing_of_protection_on_party;
|
||||||
creators["righteous defense"] = &PaladinAiObjectContextInternal::righteous_defense;
|
creators["righteous defense"] = &PaladinAiObjectContextInternal::righteous_defense;
|
||||||
|
creators["repentance"] = &PaladinAiObjectContextInternal::repentance;
|
||||||
|
creators["repentance on snare target"] = &PaladinAiObjectContextInternal::repentance_on_snare_target;
|
||||||
|
creators["repentance on enemy healer"] = &PaladinAiObjectContextInternal::repentance_on_enemy_healer;
|
||||||
|
creators["sanctity aura"] = &PaladinAiObjectContextInternal::sanctity_aura;
|
||||||
|
creators["holy shock"] = &PaladinAiObjectContextInternal::holy_shock;
|
||||||
|
creators["holy shock on party"] = &PaladinAiObjectContextInternal::holy_shock_on_party;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -239,6 +260,7 @@ class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
|||||||
static Action* crusader_aura(PlayerbotAI* botAI) { return new CastCrusaderAuraAction(botAI); }
|
static Action* crusader_aura(PlayerbotAI* botAI) { return new CastCrusaderAuraAction(botAI); }
|
||||||
static Action* seal_of_light(PlayerbotAI* botAI) { return new CastSealOfLightAction(botAI); }
|
static Action* seal_of_light(PlayerbotAI* botAI) { return new CastSealOfLightAction(botAI); }
|
||||||
static Action* devotion_aura(PlayerbotAI* botAI) { return new CastDevotionAuraAction(botAI); }
|
static Action* devotion_aura(PlayerbotAI* botAI) { return new CastDevotionAuraAction(botAI); }
|
||||||
|
static Action* concentration_aura(PlayerbotAI* botAI) { return new CastConcentrationAuraAction(botAI); }
|
||||||
static Action* holy_wrath(PlayerbotAI* botAI) { return new CastHolyWrathAction(botAI); }
|
static Action* holy_wrath(PlayerbotAI* botAI) { return new CastHolyWrathAction(botAI); }
|
||||||
static Action* consecration(PlayerbotAI* botAI) { return new CastConsecrationAction(botAI); }
|
static Action* consecration(PlayerbotAI* botAI) { return new CastConsecrationAction(botAI); }
|
||||||
static Action* cleanse_poison(PlayerbotAI* botAI) { return new CastCleansePoisonAction(botAI); }
|
static Action* cleanse_poison(PlayerbotAI* botAI) { return new CastCleansePoisonAction(botAI); }
|
||||||
@@ -281,6 +303,12 @@ class PaladinAiObjectContextInternal : public NamedObjectContext<Action>
|
|||||||
static Action* hammer_of_justice_on_enemy_healer(PlayerbotAI* botAI) { return new CastHammerOfJusticeOnEnemyHealerAction(botAI); }
|
static Action* hammer_of_justice_on_enemy_healer(PlayerbotAI* botAI) { return new CastHammerOfJusticeOnEnemyHealerAction(botAI); }
|
||||||
static Action* hammer_of_justice_on_snare_target(PlayerbotAI* botAI) { return new CastHammerOfJusticeSnareAction(botAI); }
|
static Action* hammer_of_justice_on_snare_target(PlayerbotAI* botAI) { return new CastHammerOfJusticeSnareAction(botAI); }
|
||||||
static Action* righteous_defense(PlayerbotAI* botAI) { return new CastRighteousDefenseAction(botAI); }
|
static Action* righteous_defense(PlayerbotAI* botAI) { return new CastRighteousDefenseAction(botAI); }
|
||||||
|
static Action* repentance(PlayerbotAI* botAI) { return new CastRepentanceAction(botAI); }
|
||||||
|
static Action* repentance_on_snare_target(PlayerbotAI* botAI) { return new CastRepentanceSnareAction(botAI); }
|
||||||
|
static Action* repentance_on_enemy_healer(PlayerbotAI* botAI) { return new CastRepentanceOnHealerAction(botAI); }
|
||||||
|
static Action* sanctity_aura(PlayerbotAI* botAI) { return new CastSanctityAuraAction(botAI); }
|
||||||
|
static Action* holy_shock(PlayerbotAI* botAI) { return new CastHolyShockAction(botAI); }
|
||||||
|
static Action* holy_shock_on_party(PlayerbotAI* botAI) { return new CastHolyShockOnPartyAction(botAI); }
|
||||||
};
|
};
|
||||||
|
|
||||||
PaladinAiObjectContext::PaladinAiObjectContext(PlayerbotAI* botAI) : AiObjectContext(botAI)
|
PaladinAiObjectContext::PaladinAiObjectContext(PlayerbotAI* botAI) : AiObjectContext(botAI)
|
||||||
|
|||||||
@@ -31,9 +31,19 @@ class SealTrigger : public BuffTrigger
|
|||||||
bool IsActive() override;
|
bool IsActive() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// judgements
|
||||||
|
DEBUFF_TRIGGER(JudgementTrigger, "judgement");
|
||||||
DEBUFF_TRIGGER(JudgementOfLightTrigger, "judgement of light");
|
DEBUFF_TRIGGER(JudgementOfLightTrigger, "judgement of light");
|
||||||
DEBUFF_TRIGGER(JudgementOfWisdomTrigger, "judgement of wisdom");
|
DEBUFF_TRIGGER(JudgementOfWisdomTrigger, "judgement of wisdom");
|
||||||
|
|
||||||
|
DEBUFF_TRIGGER(ConsecrationTrigger, "consecration");
|
||||||
|
|
||||||
|
// repentance triggers
|
||||||
|
INTERRUPT_HEALER_TRIGGER(RepentanceOnHealerTrigger, "repentance on enemy healer");
|
||||||
|
SNARE_TRIGGER(RepentanceSnareTrigger, "repentance on snare target");
|
||||||
|
INTERRUPT_TRIGGER(RepentanceInterruptTrigger, "repentance");
|
||||||
|
|
||||||
|
|
||||||
class BlessingOnPartyTrigger : public BuffOnPartyTrigger
|
class BlessingOnPartyTrigger : public BuffOnPartyTrigger
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -90,6 +100,9 @@ class DevotionAuraTrigger : public BuffTrigger
|
|||||||
DevotionAuraTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "devotion aura") { }
|
DevotionAuraTrigger(PlayerbotAI* botAI) : BuffTrigger(botAI, "devotion aura") { }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
BUFF_TRIGGER(ConcentrationAuraTrigger, "concentration aura");
|
||||||
|
|
||||||
|
|
||||||
class CleanseCureDiseaseTrigger : public NeedCureTrigger
|
class CleanseCureDiseaseTrigger : public NeedCureTrigger
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -40,15 +40,18 @@ void TankPaladinStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
|||||||
{
|
{
|
||||||
GenericPaladinStrategy::InitTriggers(triggers);
|
GenericPaladinStrategy::InitTriggers(triggers);
|
||||||
|
|
||||||
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of vengeance", 90.0f), nullptr)));
|
triggers.push_back(new TriggerNode("seal", NextAction::array(0, new NextAction("seal of vengeance", 90.0f), NULL)));
|
||||||
triggers.push_back(new TriggerNode("judgement of light", NextAction::array(0, new NextAction("judgement of light", ACTION_NORMAL + 2), nullptr)));
|
triggers.push_back(new TriggerNode("low mana", NextAction::array(0, new NextAction("seal of wisdom", 91.0f), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("medium mana", NextAction::array(0, new NextAction("judgement of wisdom", ACTION_NORMAL + 3), nullptr)));
|
triggers.push_back(new TriggerNode("judgement of light", NextAction::array(0, new NextAction("judgement of light", ACTION_HIGH + 6), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("judgement", ACTION_NORMAL + 3), nullptr)));
|
triggers.push_back(new TriggerNode("medium mana", NextAction::array(0, new NextAction("judgement of wisdom", ACTION_HIGH + 6), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("light aoe", NextAction::array(0, new NextAction("hammer of the righteous", ACTION_HIGH + 6), new NextAction("avenger's shield", ACTION_HIGH + 6), nullptr)));
|
triggers.push_back(new TriggerNode("judgement", NextAction::array(0, new NextAction("judgement", ACTION_HIGH + 6), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("avenger's shield", NextAction::array(0, new NextAction("avenger's shield", ACTION_HIGH + 6), nullptr)));
|
triggers.push_back(new TriggerNode("judgement", NextAction::array(0, new NextAction("exorcism", ACTION_HIGH + 6), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("medium aoe", NextAction::array(0, new NextAction("consecration", ACTION_HIGH + 6), nullptr)));
|
triggers.push_back(new TriggerNode("light aoe", NextAction::array(0, new NextAction("hammer of the righteous", ACTION_HIGH + 8), new NextAction("avenger's shield", ACTION_HIGH + 7), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("consecration", ACTION_HIGH + 6), nullptr)));
|
triggers.push_back(new TriggerNode("avenger's shield", NextAction::array(0, new NextAction("avenger's shield", ACTION_HIGH + 7), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("enemy is close", NextAction::array(0, new NextAction("consecration", ACTION_INTERRUPT), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("lose aggro", NextAction::array(0, new NextAction("hand of reckoning", ACTION_HIGH + 7), nullptr)));
|
triggers.push_back(new TriggerNode("lose aggro", NextAction::array(0, new NextAction("hand of reckoning", ACTION_HIGH + 7), nullptr)));
|
||||||
|
triggers.push_back(new TriggerNode("lose aggro", NextAction::array(0, new NextAction("exorcism", ACTION_HIGH + 8), nullptr)));
|
||||||
triggers.push_back(new TriggerNode("holy shield", NextAction::array(0, new NextAction("holy shield", ACTION_HIGH + 7), nullptr)));
|
triggers.push_back(new TriggerNode("holy shield", NextAction::array(0, new NextAction("holy shield", ACTION_HIGH + 7), 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)));
|
||||||
|
triggers.push_back(new TriggerNode("target critical health", NextAction::array(0, new NextAction("hammer of wrath", ACTION_CRITICAL_HEAL), nullptr)));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user