debuff on attacker

This commit is contained in:
Yunfan Li
2023-09-05 01:41:13 +08:00
parent 5b4e2a849e
commit 5e676e60e0
6 changed files with 16 additions and 8 deletions

View File

@@ -292,3 +292,7 @@ Value<Unit*>* BuffOnMainTankAction::GetTargetValue()
return context->GetValue<Unit*>("main tank", spell);
}
bool CastDebuffSpellAction::isUseful()
{
return CastAuraSpellAction::isUseful() && GetTarget() && (GetTarget()->GetHealth() / AI_VALUE(float, "expected group dps")) >= needLifeTime;
}

View File

@@ -50,13 +50,16 @@ class CastMeleeSpellAction : public CastSpellAction
class CastDebuffSpellAction : public CastAuraSpellAction
{
public:
CastDebuffSpellAction(PlayerbotAI* botAI, std::string const spell, bool isOwner = false) : CastAuraSpellAction(botAI, spell, isOwner) { }
CastDebuffSpellAction(PlayerbotAI* botAI, std::string const spell, bool isOwner = false, float needLifeTime = 8.0f) : CastAuraSpellAction(botAI, spell, isOwner), needLifeTime(needLifeTime) { }
bool isUseful() override;
private:
float needLifeTime;
};
class CastDebuffSpellOnAttackerAction : public CastAuraSpellAction
class CastDebuffSpellOnAttackerAction : public CastDebuffSpellAction
{
public:
CastDebuffSpellOnAttackerAction(PlayerbotAI* botAI, std::string const spell, bool isOwner = true) : CastAuraSpellAction(botAI, spell, isOwner) { }
CastDebuffSpellOnAttackerAction(PlayerbotAI* botAI, std::string const spell, bool isOwner = true, float needLifeTime = 8.0f) : CastDebuffSpellAction(botAI, spell, isOwner, needLifeTime) { }
Value<Unit*>* GetTargetValue() override;
std::string const getName() override { return spell + " on attacker"; }