bool SkillAction::Execute()
{
    if(IsScripted())
        return false;

    if(!_skill->ExecuteBattleFunction(_actor, _target))
        return false;

    _actor->SubtractSkillPoints(_skill->GetSPRequired());
    return true;
}
bool SkillAction::Initialize()
{
    // First check that the actor has sufficient SP to use the skill
    if(_actor->GetSkillPoints() < _skill->GetSPRequired())
        return false;

    // Ensure that the skill will affect a valid target
    if(!_target.IsValid())
        _target.SelectNextActor();

    if(IsScripted())
        _InitAnimationScript();
    return true;
}
bool ItemAction::Initialize()
{
    if(IsScripted())
        _InitAnimationScript();
    return true;
}