[Strategy] Focus strategy

This commit is contained in:
Yunfan Li
2024-06-04 22:15:39 +08:00
parent 46e585f854
commit 5f40c39e5e
3 changed files with 39 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
#include "ThreatStrategy.h"
#include "GenericSpellActions.h"
#include "Map.h"
#include "Playerbots.h"
float ThreatMultiplier::GetValue(Action* action)
@@ -36,3 +37,22 @@ void ThreatStrategy::InitMultipliers(std::vector<Multiplier*>& multipliers)
{
multipliers.push_back(new ThreatMultiplier(botAI));
}
float FocusMultiplier::GetValue(Action* action)
{
if (!action) {
return 1.0f;
}
if (action->getThreatType() == Action::ActionThreatType::Aoe && !dynamic_cast<CastHealingSpellAction*>(action)) {
return 0.0f;
}
if (dynamic_cast<CastDebuffSpellOnAttackerAction*>(action)) {
return 0.0f;
}
return 1.0f;
}
void FocusStrategy::InitMultipliers(std::vector<Multiplier*>& multipliers)
{
multipliers.push_back(new FocusMultiplier(botAI));
}