/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. */ #include "HealPriestStrategy.h" #include "GenericPriestStrategyActionNodeFactory.h" #include "Playerbots.h" HealPriestStrategy::HealPriestStrategy(PlayerbotAI* botAI) : GenericPriestStrategy(botAI) { actionNodeFactories.Add(new GenericPriestStrategyActionNodeFactory()); } NextAction** HealPriestStrategy::getDefaultActions() { return NextAction::array(0, new NextAction("shoot", ACTION_DEFAULT), nullptr); } void HealPriestStrategy::InitTriggers(std::vector& triggers) { GenericPriestStrategy::InitTriggers(triggers); // triggers.push_back(new TriggerNode( // "enemy out of spell", // NextAction::array(0, new NextAction("reach spell", ACTION_NORMAL + 9), NULL))); // triggers.push_back(new TriggerNode( // "medium aoe heal", // 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))); 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))); triggers.push_back(new TriggerNode( "medium group heal occasion", NextAction::array(0, new NextAction("prayer of healing on party", ACTION_CRITICAL_HEAL + 6), new NextAction("divine hymn", ACTION_CRITICAL_HEAL + 5), nullptr))); triggers.push_back(new TriggerNode( "party member critical health", 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))); 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))); 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))); triggers.push_back(new TriggerNode( "party member almost full health", NextAction::array(0, // new NextAction("penance on party", ACTION_LIGHT_HEAL + 3), new NextAction("renew on party", ACTION_LIGHT_HEAL + 2), NULL))); // triggers.push_back(new TriggerNode("almost full health", NextAction::array(0, new NextAction("renew", 43.f), nullptr))); // triggers.push_back(new TriggerNode("party member almost full health", NextAction::array(0, new NextAction("heal on party", 41.0f), new NextAction("renew on party", 40.0f), nullptr))); // triggers.push_back(new TriggerNode("party member medium health", NextAction::array(0, new NextAction("greater heal on party", 47.0f), nullptr))); // triggers.push_back(new TriggerNode("party member low health", NextAction::array(0, new NextAction("power word: shield on party", 51.0f), new NextAction("greater heal on party", 50.0f), 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 + 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::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))); triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("pain suppression", ACTION_EMERGENCY + 1), nullptr))); triggers.push_back(new TriggerNode("protect party member", NextAction::array(0, new NextAction("pain suppression on party", ACTION_EMERGENCY), nullptr))); }