Rogue AI: use slice and dice as finisher

This commit is contained in:
郑佩茹
2023-04-04 13:33:12 -06:00
parent 7d102f5434
commit ad72b256bf
3 changed files with 6 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ class DpsRogueStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
creators["sinister strike"] = &sinister_strike;
creators["kick"] = &kick;
creators["kidney shot"] = &kidney_shot;
creators["slice and dice"] = &slice_and_dice;
creators["rupture"] = &rupture;
creators["backstab"] = &backstab;
}
@@ -68,6 +69,7 @@ class DpsRogueStrategyActionNodeFactory : public NamedObjectFactory<ActionNode>
/*C*/ nullptr);
}
ACTION_NODE_A(slice_and_dice, "slice and dice", "rupture");
static ActionNode* backstab([[maybe_unused]] PlayerbotAI* botAI)
{
return new ActionNode ("backstab",
@@ -91,7 +93,7 @@ void DpsRogueStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{
CombatStrategy::InitTriggers(triggers);
triggers.push_back(new TriggerNode("combo points available", NextAction::array(0, new NextAction("rupture", ACTION_HIGH + 2), nullptr)));
triggers.push_back(new TriggerNode("combo points available", NextAction::array(0, new NextAction("slice and dice", ACTION_HIGH + 2), nullptr)));
triggers.push_back(new TriggerNode("medium threat", NextAction::array(0, new NextAction("feint", ACTION_HIGH), nullptr)));
triggers.push_back(new TriggerNode("low health", NextAction::array(0, new NextAction("evasion", ACTION_EMERGENCY), new NextAction("feint", ACTION_EMERGENCY), nullptr)));
triggers.push_back(new TriggerNode("critical health", NextAction::array(0, new NextAction("blind", ACTION_EMERGENCY), new NextAction("vanish", ACTION_EMERGENCY), nullptr)));

View File

@@ -81,6 +81,7 @@ class RogueAiObjectContextInternal : public NamedObjectContext<Action>
creators["riposte"] = &RogueAiObjectContextInternal::riposte;
creators["mutilate"] = &RogueAiObjectContextInternal::mutilate;
creators["sinister strike"] = &RogueAiObjectContextInternal::sinister_strike;
creators["gouge"] = &RogueAiObjectContextInternal::gouge;
creators["kidney shot"] = &RogueAiObjectContextInternal::kidney_shot;
creators["rupture"] = &RogueAiObjectContextInternal::rupture;
creators["slice and dice"] = &RogueAiObjectContextInternal::slice_and_dice;
@@ -111,6 +112,7 @@ class RogueAiObjectContextInternal : public NamedObjectContext<Action>
static Action* riposte(PlayerbotAI* botAI) { return new CastRiposteAction(botAI); }
static Action* mutilate(PlayerbotAI* botAI) { return new CastMutilateAction(botAI); }
static Action* sinister_strike(PlayerbotAI* botAI) { return new CastSinisterStrikeAction(botAI); }
static Action* gouge(PlayerbotAI* botAI) { return new CastGougeAction(botAI); }
static Action* kidney_shot(PlayerbotAI* botAI) { return new CastKidneyShotAction(botAI); }
static Action* rupture(PlayerbotAI* botAI) { return new CastRuptureAction(botAI); }
static Action* slice_and_dice(PlayerbotAI* botAI) { return new CastSliceAndDiceAction(botAI); }

View File

@@ -7,5 +7,5 @@
bool CastComboAction::isUseful()
{
return CastMeleeSpellAction::isUseful() && AI_VALUE2(uint8, "combo", "self target") < 5;
return CastMeleeSpellAction::isUseful() && AI_VALUE2(uint8, "combo", "current target") < 5;
}