[Spell] Fix alternative healing spell

This commit is contained in:
Yunfan Li
2024-10-04 14:38:09 +08:00
parent a0865cca14
commit 37c5c1dcdf
13 changed files with 42 additions and 38 deletions

View File

@@ -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)));

View File

@@ -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",

View File

@@ -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");

View File

@@ -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;

View File

@@ -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)

View File

@@ -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,