mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
Improve class spell and use trinket
This commit is contained in:
@@ -66,8 +66,11 @@ void AssassinationRogueStrategy::InitTriggers(std::vector<TriggerNode*>& trigger
|
||||
new TriggerNode("medium threat", NextAction::array(0, new NextAction("vanish", ACTION_HIGH), NULL)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("low health", NextAction::array(0, new NextAction("evasion", ACTION_EMERGENCY),
|
||||
new NextAction("feint", ACTION_EMERGENCY), NULL)));
|
||||
new TriggerNode("low health", NextAction::array(0, new NextAction("evasion", ACTION_HIGH + 9),
|
||||
new NextAction("feint", ACTION_HIGH + 8), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("critical health", NextAction::array(0, new NextAction("cloak of shadows", ACTION_HIGH + 7), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("kick", NextAction::array(0, new NextAction("kick", ACTION_INTERRUPT + 2), NULL)));
|
||||
|
||||
@@ -108,8 +108,11 @@ void DpsRogueStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
new TriggerNode("medium threat", NextAction::array(0, new NextAction("vanish", ACTION_HIGH), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("low health", NextAction::array(0, new NextAction("evasion", ACTION_EMERGENCY),
|
||||
new NextAction("feint", ACTION_EMERGENCY), nullptr)));
|
||||
new TriggerNode("low health", NextAction::array(0, new NextAction("evasion", ACTION_HIGH + 9),
|
||||
new NextAction("feint", ACTION_HIGH + 8), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("critical health", NextAction::array(0, new NextAction("cloak of shadows", ACTION_HIGH + 7), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("kick", NextAction::array(0, new NextAction("kick", ACTION_INTERRUPT + 2), nullptr)));
|
||||
@@ -125,6 +128,9 @@ void DpsRogueStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
triggers.push_back(
|
||||
new TriggerNode("light aoe", NextAction::array(0, new NextAction("blade flurry", ACTION_HIGH + 3), nullptr)));
|
||||
|
||||
triggers.push_back(
|
||||
new TriggerNode("blade flurry", NextAction::array(0, new NextAction("blade flurry", ACTION_HIGH + 2), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"enemy out of melee",
|
||||
NextAction::array(0, new NextAction("stealth", ACTION_NORMAL + 9), new NextAction("sprint", ACTION_NORMAL + 8),
|
||||
|
||||
@@ -17,6 +17,12 @@ public:
|
||||
CastEvasionAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "evasion") {}
|
||||
};
|
||||
|
||||
class CastCloakOfShadowsAction : public CastBuffSpellAction
|
||||
{
|
||||
public:
|
||||
CastCloakOfShadowsAction(PlayerbotAI* botAI) : CastBuffSpellAction(botAI, "cloak of shadows") {}
|
||||
};
|
||||
|
||||
class CastHungerForBloodAction : public CastBuffSpellAction
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -76,12 +76,14 @@ public:
|
||||
creators["off hand weapon no enchant"] = &RogueTriggerFactoryInternal::off_hand_weapon_no_enchant;
|
||||
creators["tricks of the trade on main tank"] = &RogueTriggerFactoryInternal::tricks_of_the_trade_on_main_tank;
|
||||
creators["adrenaline rush"] = &RogueTriggerFactoryInternal::adrenaline_rush;
|
||||
creators["blade fury"] = &RogueTriggerFactoryInternal::blade_fury;
|
||||
creators["target with combo points almost dead"] =
|
||||
&RogueTriggerFactoryInternal::target_with_combo_points_almost_dead;
|
||||
}
|
||||
|
||||
private:
|
||||
static Trigger* adrenaline_rush(PlayerbotAI* botAI) { return new AdrenalineRushTrigger(botAI); }
|
||||
static Trigger* blade_fury(PlayerbotAI* botAI) { return new BladeFuryTrigger(botAI); }
|
||||
static Trigger* kick(PlayerbotAI* botAI) { return new KickInterruptSpellTrigger(botAI); }
|
||||
static Trigger* rupture(PlayerbotAI* botAI) { return new RuptureTrigger(botAI); }
|
||||
static Trigger* slice_and_dice(PlayerbotAI* botAI) { return new SliceAndDiceTrigger(botAI); }
|
||||
@@ -122,6 +124,7 @@ public:
|
||||
creators["eviscerate"] = &RogueAiObjectContextInternal::eviscerate;
|
||||
creators["vanish"] = &RogueAiObjectContextInternal::vanish;
|
||||
creators["evasion"] = &RogueAiObjectContextInternal::evasion;
|
||||
creators["cloak of shadows"] = &RogueAiObjectContextInternal::cloak_of_shadows;
|
||||
creators["kick"] = &RogueAiObjectContextInternal::kick;
|
||||
creators["feint"] = &RogueAiObjectContextInternal::feint;
|
||||
creators["backstab"] = &RogueAiObjectContextInternal::backstab;
|
||||
@@ -161,6 +164,7 @@ private:
|
||||
static Action* eviscerate(PlayerbotAI* botAI) { return new CastEviscerateAction(botAI); }
|
||||
static Action* vanish(PlayerbotAI* botAI) { return new CastVanishAction(botAI); }
|
||||
static Action* evasion(PlayerbotAI* botAI) { return new CastEvasionAction(botAI); }
|
||||
static Action* cloak_of_shadows(PlayerbotAI* botAI) { return new CastCloakOfShadowsAction(botAI); }
|
||||
static Action* kick(PlayerbotAI* botAI) { return new CastKickAction(botAI); }
|
||||
static Action* feint(PlayerbotAI* botAI) { return new CastFeintAction(botAI); }
|
||||
static Action* backstab(PlayerbotAI* botAI) { return new CastBackstabAction(botAI); }
|
||||
|
||||
@@ -18,34 +18,34 @@ public:
|
||||
bool isUseful() override;
|
||||
};
|
||||
|
||||
class CastSinisterStrikeAction : public CastComboAction
|
||||
class CastSinisterStrikeAction : public CastSpellAction
|
||||
{
|
||||
public:
|
||||
CastSinisterStrikeAction(PlayerbotAI* botAI) : CastComboAction(botAI, "sinister strike") {}
|
||||
CastSinisterStrikeAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "sinister strike") {}
|
||||
};
|
||||
|
||||
class CastMutilateAction : public CastComboAction
|
||||
class CastMutilateAction : public CastSpellAction
|
||||
{
|
||||
public:
|
||||
CastMutilateAction(PlayerbotAI* botAI) : CastComboAction(botAI, "mutilate") {}
|
||||
CastMutilateAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "mutilate") {}
|
||||
};
|
||||
|
||||
class CastRiposteAction : public CastComboAction
|
||||
class CastRiposteAction : public CastSpellAction
|
||||
{
|
||||
public:
|
||||
CastRiposteAction(PlayerbotAI* botAI) : CastComboAction(botAI, "riposte") {}
|
||||
CastRiposteAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "riposte") {}
|
||||
};
|
||||
|
||||
class CastGougeAction : public CastComboAction
|
||||
class CastGougeAction : public CastSpellAction
|
||||
{
|
||||
public:
|
||||
CastGougeAction(PlayerbotAI* botAI) : CastComboAction(botAI, "gouge") {}
|
||||
CastGougeAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "gouge") {}
|
||||
};
|
||||
|
||||
class CastBackstabAction : public CastComboAction
|
||||
class CastBackstabAction : public CastSpellAction
|
||||
{
|
||||
public:
|
||||
CastBackstabAction(PlayerbotAI* botAI) : CastComboAction(botAI, "backstab") {}
|
||||
CastBackstabAction(PlayerbotAI* botAI) : CastSpellAction(botAI, "backstab") {}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -36,6 +36,13 @@ public:
|
||||
// bool isPossible();
|
||||
};
|
||||
|
||||
class BladeFuryTrigger : public BoostTrigger
|
||||
{
|
||||
public:
|
||||
BladeFuryTrigger(PlayerbotAI* botAI) : BoostTrigger(botAI, "blade fury") {}
|
||||
};
|
||||
|
||||
|
||||
class RuptureTrigger : public DebuffTrigger
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user