diff --git a/src/strategy/rogue/DpsRogueStrategy.cpp b/src/strategy/rogue/DpsRogueStrategy.cpp index 83a16c34..5e2c5bba 100644 --- a/src/strategy/rogue/DpsRogueStrategy.cpp +++ b/src/strategy/rogue/DpsRogueStrategy.cpp @@ -207,6 +207,7 @@ void StealthedRogueStrategy::InitTriggers(std::vector& triggers) /*triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("food", ACTION_EMERGENCY + 1), nullptr)));*/ triggers.push_back(new TriggerNode("no stealth", NextAction::array(0, new NextAction("check stealth", ACTION_EMERGENCY), nullptr))); triggers.push_back(new TriggerNode("sprint", NextAction::array(0, new NextAction("sprint", ACTION_INTERRUPT), nullptr))); + } void StealthStrategy::InitTriggers(std::vector& triggers) @@ -217,6 +218,9 @@ void StealthStrategy::InitTriggers(std::vector& triggers) void RogueAoeStrategy::InitTriggers(std::vector& triggers) { triggers.push_back(new TriggerNode("light aoe", NextAction::array(0, new NextAction("blade flurry", ACTION_HIGH), nullptr))); + triggers.push_back(new TriggerNode( + "medium aoe", + NextAction::array(0, new NextAction("fan of knives", ACTION_NORMAL + 5), NULL))); } void RogueBoostStrategy::InitTriggers(std::vector& triggers) diff --git a/src/strategy/rogue/RogueActions.h b/src/strategy/rogue/RogueActions.h index b0676132..53b4e9bd 100644 --- a/src/strategy/rogue/RogueActions.h +++ b/src/strategy/rogue/RogueActions.h @@ -142,4 +142,11 @@ class UseInstantPoisonAction : public UseItemAction virtual bool Execute(Event event) override; virtual bool isPossible() override; }; + +class FanOfKnivesAction : public CastMeleeSpellAction +{ + public: + FanOfKnivesAction(PlayerbotAI* ai) : CastMeleeSpellAction(ai, "fan of knives") {} +}; + #endif diff --git a/src/strategy/rogue/RogueAiObjectContext.cpp b/src/strategy/rogue/RogueAiObjectContext.cpp index f26e7fd9..d0980645 100644 --- a/src/strategy/rogue/RogueAiObjectContext.cpp +++ b/src/strategy/rogue/RogueAiObjectContext.cpp @@ -127,6 +127,7 @@ class RogueAiObjectContextInternal : public NamedObjectContext creators["tricks of the trade on main tank"] = &RogueAiObjectContextInternal::tricks_of_the_trade_on_main_tank; creators["use instant poison on main hand"] = &RogueAiObjectContextInternal::use_instant_poison; creators["use deadly poison on off hand"] = &RogueAiObjectContextInternal::use_deadly_poison; + creators["fan of knives"] = &RogueAiObjectContextInternal::fan_of_knives; } private: @@ -160,6 +161,7 @@ class RogueAiObjectContextInternal : public NamedObjectContext static Action* tricks_of_the_trade_on_main_tank(PlayerbotAI* ai) { return new CastTricksOfTheTradeOnMainTankAction(ai); } static Action* use_instant_poison(PlayerbotAI* ai) { return new UseInstantPoisonAction(ai); } static Action* use_deadly_poison(PlayerbotAI* ai) { return new UseDeadlyPoisonAction(ai); } + static Action* fan_of_knives(PlayerbotAI* ai) { return new FanOfKnivesAction(ai); } }; RogueAiObjectContext::RogueAiObjectContext(PlayerbotAI* botAI) : AiObjectContext(botAI)