/*
 * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version.
 */

#include "WarlockActions.h"
#include "Event.h"
#include "Playerbots.h"

bool CastDrainSoulAction::isUseful()
{
    return AI_VALUE2(uint32, "item count", "soul shard") < 10;
}

Value<Unit*>* CastBanishAction::GetTargetValue()
{
    return context->GetValue<Unit*>("cc target", "banish");
}

bool CastBanishAction::Execute(Event event)
{
    return botAI->CastSpell("banish", GetTarget());
}

Value<Unit*>* CastFearOnCcAction::GetTargetValue()
{
    return context->GetValue<Unit*>("cc target", "fear");
}

bool CastFearOnCcAction::Execute(Event event)
{
    return botAI->CastSpell("fear", GetTarget());
}

bool CastFearOnCcAction::isPossible()
{
    return botAI->CanCastSpell("fear", GetTarget());
}

bool CastFearOnCcAction::isUseful()
{
    return true;
}

bool CastLifeTapAction::isUseful()
{
    return AI_VALUE2(uint8, "health", "self target") > sPlayerbotAIConfig->lowHealth;
}
