#include "AttackExecutor.h"

#include "AttackBehavior.h"
#include "BehaviorKind.h"
#include "EntityAdmin.h"
#include "OrbitAndAssignExecutor.h"
#include "tracing.h"
#include "WeaponComponent.h"

void AttackExecutor::execute(EntityAdmin& admin)
{
    TRACE();

    // Orbit the attack target and hand it to every weapon that can reach it
    // (REQ-SHP-ORBIT).
    executeOrbitAndAssign<AttackBehavior, WeaponComponent>(admin, BehaviorKind::Attack);
}
