mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
[Spell] Fix alternative healing spell
This commit is contained in:
@@ -78,11 +78,11 @@ void HealDruidStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member critical health",
|
||||
NextAction::array(0, new NextAction("nature's swiftness", ACTION_CRITICAL_HEAL + 4), NULL)));
|
||||
NextAction::array(0, new NextAction("nature's swiftness", ACTION_CRITICAL_HEAL + 4), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("medium group heal occasion",
|
||||
NextAction::array(0, new NextAction("tranquility", ACTION_CRITICAL_HEAL + 5), NULL)));
|
||||
NextAction::array(0, new NextAction("tranquility", ACTION_CRITICAL_HEAL + 5), nullptr)));
|
||||
|
||||
// LOW
|
||||
triggers.push_back(
|
||||
|
||||
@@ -29,15 +29,14 @@ void HealPriestStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
// triggers.push_back(new TriggerNode(
|
||||
// "medium aoe heal",
|
||||
// NextAction::array(0,
|
||||
// new NextAction("circle of healing", ACTION_MEDIUM_HEAL + 8),
|
||||
// new NextAction("circle of healing on party", ACTION_MEDIUM_HEAL + 8),
|
||||
// // new NextAction("power word: shield on almost full health below", ACTION_MEDIUM_HEAL + 7),
|
||||
// NULL)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"group heal occasion",
|
||||
NextAction::array(0, new NextAction("circle of healing", ACTION_MEDIUM_HEAL + 8),
|
||||
new NextAction("power word: shield on almost full health below", ACTION_MEDIUM_HEAL + 7),
|
||||
NULL)));
|
||||
"group heal setting",
|
||||
NextAction::array(0, new NextAction("power word: shield on almost full health below", ACTION_MEDIUM_HEAL + 7),
|
||||
nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"medium group heal occasion",
|
||||
@@ -49,25 +48,23 @@ void HealPriestStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
NextAction::array(0, new NextAction("power word: shield on party", ACTION_CRITICAL_HEAL + 6),
|
||||
new NextAction("penance on party", ACTION_CRITICAL_HEAL + 4),
|
||||
new NextAction("flash heal on party", ACTION_CRITICAL_HEAL + 3),
|
||||
new NextAction("prayer of mending on party", ACTION_CRITICAL_HEAL + 2), NULL)));
|
||||
new NextAction("prayer of mending on party", ACTION_CRITICAL_HEAL + 2), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member low health",
|
||||
NextAction::array(0, new NextAction("power word: shield on party", ACTION_MEDIUM_HEAL + 4),
|
||||
new NextAction("penance on party", ACTION_MEDIUM_HEAL + 2),
|
||||
new NextAction("circle of healing", ACTION_MEDIUM_HEAL + 2),
|
||||
new NextAction("prayer of mending on party", ACTION_MEDIUM_HEAL + 1),
|
||||
new NextAction("flash heal on party", ACTION_MEDIUM_HEAL + 0), NULL)));
|
||||
new NextAction("flash heal on party", ACTION_MEDIUM_HEAL + 0), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member medium health",
|
||||
NextAction::array(0, new NextAction("power word: shield on party", ACTION_LIGHT_HEAL + 9),
|
||||
new NextAction("penance on party", ACTION_LIGHT_HEAL + 7),
|
||||
new NextAction("circle of healing", ACTION_LIGHT_HEAL + 7),
|
||||
new NextAction("prayer of mending on party", ACTION_LIGHT_HEAL + 6),
|
||||
new NextAction("flash heal on party", ACTION_LIGHT_HEAL + 5),
|
||||
// new NextAction("renew on party", ACTION_LIGHT_HEAL + 8),
|
||||
NULL)));
|
||||
nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member almost full health",
|
||||
@@ -86,7 +83,7 @@ void HealPriestStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
NextAction::array(0, new NextAction("reach party member to heal", ACTION_CRITICAL_HEAL + 10), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("medium aoe heal", NextAction::array(0, new NextAction("prayer of
|
||||
// mending", 49.0f), nullptr))); triggers.push_back(new TriggerNode("medium aoe heal", NextAction::array(0, new
|
||||
// NextAction("circle of healing", 48.0f), nullptr))); triggers.push_back(new TriggerNode("binding heal",
|
||||
// NextAction("circle of healing on party", 48.0f), nullptr))); triggers.push_back(new TriggerNode("binding heal",
|
||||
// NextAction::array(0, new NextAction("binding heal", 52.0f), nullptr))); triggers.push_back(new TriggerNode("low
|
||||
// mana", NextAction::array(0, new NextAction("shadowfiend", ACTION_HIGH), nullptr)));
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@ void HolyHealPriestStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
GenericPriestStrategy::InitTriggers(triggers);
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("group heal occasion",
|
||||
NextAction::array(0, new NextAction("circle of healing", ACTION_MEDIUM_HEAL + 8), NULL)));
|
||||
new TriggerNode("group heal setting",
|
||||
NextAction::array(0, new NextAction("circle of healing on party", ACTION_MEDIUM_HEAL + 8), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"medium group heal occasion",
|
||||
@@ -77,28 +77,28 @@ void HolyHealPriestStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
new NextAction("guardian spirit on party", ACTION_CRITICAL_HEAL + 6),
|
||||
new NextAction("power word: shield on party", ACTION_CRITICAL_HEAL + 5),
|
||||
new NextAction("flash heal on party", ACTION_CRITICAL_HEAL + 3),
|
||||
new NextAction("prayer of mending on party", ACTION_CRITICAL_HEAL + 2), NULL)));
|
||||
new NextAction("prayer of mending on party", ACTION_CRITICAL_HEAL + 2), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member low health",
|
||||
NextAction::array(0, new NextAction("circle of healing", ACTION_MEDIUM_HEAL + 4),
|
||||
NextAction::array(0, new NextAction("circle of healing on party", ACTION_MEDIUM_HEAL + 4),
|
||||
new NextAction("greater heal on party", ACTION_MEDIUM_HEAL + 3),
|
||||
new NextAction("prayer of mending on party", ACTION_MEDIUM_HEAL + 2),
|
||||
new NextAction("flash heal on party", ACTION_MEDIUM_HEAL + 1), NULL)));
|
||||
new NextAction("flash heal on party", ACTION_MEDIUM_HEAL + 1), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member medium health",
|
||||
NextAction::array(0, new NextAction("circle of healing", ACTION_LIGHT_HEAL + 7),
|
||||
NextAction::array(0, new NextAction("circle of healing on party", ACTION_LIGHT_HEAL + 7),
|
||||
new NextAction("prayer of mending on party", ACTION_LIGHT_HEAL + 6),
|
||||
new NextAction("flash heal on party", ACTION_LIGHT_HEAL + 5),
|
||||
// new NextAction("renew on party", ACTION_LIGHT_HEAL + 8),
|
||||
NULL)));
|
||||
nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("party member almost full health",
|
||||
NextAction::array(0, new NextAction("renew on party", ACTION_LIGHT_HEAL + 2),
|
||||
// new NextAction("flash heal on party", ACTION_LIGHT_HEAL + 1),
|
||||
NULL)));
|
||||
nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"party member to heal out of spell range",
|
||||
|
||||
@@ -55,7 +55,14 @@ HEAL_PARTY_ACTION(CastRenewOnPartyAction, "renew", 15.0f, HealingManaEfficiency:
|
||||
HEAL_PARTY_ACTION(CastPrayerOfMendingAction, "prayer of mending", 15.0f, HealingManaEfficiency::MEDIUM);
|
||||
HEAL_PARTY_ACTION(CastBindingHealAction, "binding heal", 15.0f, HealingManaEfficiency::MEDIUM);
|
||||
HEAL_PARTY_ACTION(CastPrayerOfHealingAction, "prayer of healing", 15.0f, HealingManaEfficiency::MEDIUM);
|
||||
AOE_HEAL_ACTION(CastCircleOfHealingAction, "circle of healing", 15.0f, HealingManaEfficiency::HIGH);
|
||||
// AOE_HEAL_ACTION(CastCircleOfHealingAction, "circle of healing", 15.0f, HealingManaEfficiency::HIGH);
|
||||
class CastCircleOfHealingAction : public HealPartyMemberAction
|
||||
{
|
||||
public:
|
||||
CastCircleOfHealingAction(PlayerbotAI* ai) : HealPartyMemberAction(ai, "circle of healing", 15.0f, HealingManaEfficiency::HIGH)
|
||||
{
|
||||
}
|
||||
};
|
||||
AOE_HEAL_ACTION(CastLightwellAction, "lightwell", 15.0f, HealingManaEfficiency::MEDIUM);
|
||||
|
||||
SPELL_ACTION(CastSmiteAction, "smite");
|
||||
|
||||
@@ -195,7 +195,7 @@ public:
|
||||
creators["fade"] = &PriestAiObjectContextInternal::fade;
|
||||
creators["inner fire"] = &PriestAiObjectContextInternal::inner_fire;
|
||||
creators["resurrection"] = &PriestAiObjectContextInternal::resurrection;
|
||||
creators["circle of healing"] = &PriestAiObjectContextInternal::circle_of_healing;
|
||||
creators["circle of healing on party"] = &PriestAiObjectContextInternal::circle_of_healing;
|
||||
creators["psychic scream"] = &PriestAiObjectContextInternal::psychic_scream;
|
||||
creators["vampiric touch"] = &PriestAiObjectContextInternal::vampiric_touch;
|
||||
creators["vampiric touch on attacker"] = &PriestAiObjectContextInternal::vampiric_touch_on_attacker;
|
||||
|
||||
@@ -55,7 +55,7 @@ void PriestNonCombatStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
NextAction::array(0, new NextAction("renew on party", ACTION_LIGHT_HEAL + 3), NULL)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("group heal occasion", NextAction::array(0, new NextAction("circle of healing", 27.0f), NULL)));
|
||||
new TriggerNode("group heal setting", NextAction::array(0, new NextAction("circle of healing on party", 27.0f), NULL)));
|
||||
}
|
||||
|
||||
void PriestBuffStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
creators["lesser heal on party"] = &lesser_heal_on_party;
|
||||
creators["flash heal"] = &flash_heal;
|
||||
creators["flash heal on party"] = &flash_heal_on_party;
|
||||
creators["circle of healing"] = &circle_of_healing;
|
||||
creators["circle of healing on party"] = &circle_of_healing;
|
||||
creators["prayer of fortitude on party"] = &prayer_of_fortitude_on_party;
|
||||
creators["prayer of spirit on party"] = &prayer_of_spirit_on_party;
|
||||
}
|
||||
@@ -128,7 +128,7 @@ private:
|
||||
}
|
||||
static ActionNode* circle_of_healing(PlayerbotAI* ai)
|
||||
{
|
||||
return new ActionNode("circle of healing",
|
||||
return new ActionNode("circle of healing on party",
|
||||
/*P*/ NextAction::array(0, new NextAction("remove shadowform"), NULL),
|
||||
// /*A*/ NextAction::array(0, new NextAction("flash heal on party"), NULL),
|
||||
/*A*/ NULL,
|
||||
|
||||
@@ -18,7 +18,7 @@ public:
|
||||
creators["windfury weapon"] = &windfury_weapon;
|
||||
creators["lesser healing wave"] = &lesser_healing_wave;
|
||||
creators["lesser healing wave on party"] = &lesser_healing_wave_on_party;
|
||||
creators["chain heal"] = &chain_heal;
|
||||
creators["chain heal on party"] = &chain_heal;
|
||||
creators["riptide"] = &riptide;
|
||||
creators["riptide on party"] = &riptide_on_party;
|
||||
creators["earth shock"] = &earth_shock;
|
||||
@@ -75,9 +75,9 @@ private:
|
||||
|
||||
static ActionNode* chain_heal([[maybe_unused]] PlayerbotAI* botAI)
|
||||
{
|
||||
return new ActionNode("chain heal",
|
||||
return new ActionNode("chain heal on party",
|
||||
/*P*/ nullptr,
|
||||
/*A*/ NextAction::array(0, new NextAction("lesser healing wave"), nullptr),
|
||||
/*A*/ NextAction::array(0, new NextAction("lesser healing wave on party"), nullptr),
|
||||
/*C*/ nullptr);
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ void GenericShamanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
// triggers.push_back(new TriggerNode("party member medium health", NextAction::array(0, new NextAction("lesser
|
||||
// healing wave on party", 25.0f), nullptr))); triggers.push_back(new TriggerNode("party member low health",
|
||||
// NextAction::array(0, new NextAction("riptide on party", 25.0f), nullptr))); triggers.push_back(new
|
||||
// TriggerNode("medium aoe heal", NextAction::array(0, new NextAction("chain heal", 27.0f), nullptr)));
|
||||
// TriggerNode("medium aoe heal", NextAction::array(0, new NextAction("chain heal on party", 27.0f), nullptr)));
|
||||
// triggers.push_back(new TriggerNode("medium health", NextAction::array(0, new NextAction("lesser healing
|
||||
// wave", 26.0f), nullptr))); triggers.push_back(new TriggerNode("low health", NextAction::array(0, new
|
||||
// NextAction("riptide", 26.0f), nullptr)));
|
||||
|
||||
@@ -49,8 +49,8 @@ void HealShamanStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
triggers.push_back(new TriggerNode("main hand weapon no imbue",
|
||||
NextAction::array(0, new NextAction("earthliving weapon", 22.0f), nullptr)));
|
||||
triggers.push_back(new TriggerNode(
|
||||
"group heal occasion",
|
||||
NextAction::array(0, new NextAction("riptide on party", 23.0f), new NextAction("chain heal", 22.0f), NULL)));
|
||||
"group heal setting",
|
||||
NextAction::array(0, new NextAction("riptide on party", 23.0f), new NextAction("chain heal on party", 22.0f), NULL)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"party member critical health",
|
||||
|
||||
@@ -42,11 +42,11 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class CastChainHealAction : public CastAoeHealSpellAction
|
||||
class CastChainHealAction : public HealPartyMemberAction
|
||||
{
|
||||
public:
|
||||
CastChainHealAction(PlayerbotAI* botAI)
|
||||
: CastAoeHealSpellAction(botAI, "chain heal", 15.0f, HealingManaEfficiency::HIGH)
|
||||
: HealPartyMemberAction(botAI, "chain heal", 15.0f, HealingManaEfficiency::HIGH)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
@@ -210,7 +210,7 @@ public:
|
||||
creators["lesser healing wave on party"] = &ShamanAiObjectContextInternal::lesser_healing_wave_on_party;
|
||||
creators["earth shield"] = &ShamanAiObjectContextInternal::earth_shield;
|
||||
creators["earth shield on party"] = &ShamanAiObjectContextInternal::earth_shield_on_party;
|
||||
creators["chain heal"] = &ShamanAiObjectContextInternal::chain_heal;
|
||||
creators["chain heal on party"] = &ShamanAiObjectContextInternal::chain_heal;
|
||||
creators["riptide"] = &ShamanAiObjectContextInternal::riptide;
|
||||
creators["riptide on party"] = &ShamanAiObjectContextInternal::riptide_on_party;
|
||||
creators["stormstrike"] = &ShamanAiObjectContextInternal::stormstrike;
|
||||
|
||||
@@ -39,7 +39,7 @@ void ShamanNonCombatStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
new NextAction("lesser healing wave on party", 24.0f), NULL)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("group heal occasion", NextAction::array(0, new NextAction("chain heal", 27.0f), NULL)));
|
||||
new TriggerNode("group heal setting", NextAction::array(0, new NextAction("chain heal on party", 27.0f), NULL)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("cure poison", NextAction::array(0, new NextAction("cure poison", 21.0f), nullptr)));
|
||||
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
creators["medium aoe heal"] = &TriggerContext::medium_aoe_heal;
|
||||
creators["almost full aoe heal"] = &TriggerContext::almost_full_aoe_heal;
|
||||
|
||||
creators["group heal occasion"] = &TriggerContext::group_heal_occasion;
|
||||
creators["group heal setting"] = &TriggerContext::group_heal_occasion;
|
||||
creators["medium group heal occasion"] = &TriggerContext::medium_group_heal_occasion;
|
||||
creators["invalid target"] = &TriggerContext::invalid_target;
|
||||
creators["lfg proposal active"] = &TriggerContext::lfg_proposal_active;
|
||||
@@ -246,7 +246,7 @@ private:
|
||||
}
|
||||
static Trigger* group_heal_occasion(PlayerbotAI* ai)
|
||||
{
|
||||
return new AoeInGroupTrigger(ai, "group heal occasion", "almost full");
|
||||
return new AoeInGroupTrigger(ai, "group heal setting", "almost full");
|
||||
}
|
||||
static Trigger* medium_group_heal_occasion(PlayerbotAI* ai)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user