public override void Enter(OldObjectThief objectThief)
 {
     currentStealTarget = objectThief.GetCurrentTargetToSteal();
     interactable       = currentStealTarget.GetComponent <Interactable>();
     speed          = objectThief.GetSpeed();
     pickupDistance = objectThief.GetPickupDistance();
 }
    public override OldObjectThiefState FixedUpdate(OldObjectThief objectThief, float t)
    {
        if (currentStealTarget != null)
        {
            Vector2 directionToTarget = new Vector2((currentStealTarget.transform.position.x - objectThief.transform.position.x), (currentStealTarget.transform.position.z - objectThief.transform.position.z));
            directionToTarget = directionToTarget.normalized;
            objectThief.Move(directionToTarget);

            if (Vector3.Distance(objectThief.transform.position, currentStealTarget.transform.position) <= pickupDistance)
            {
                //Pick up the target
                currentStealTarget.pickedUpByEnemy = true;
                pickedUpByMe = true;
                currentStealTarget.AddSpringJoint(objectThief.AccessRigidBody());
                currentStealTarget = null;
            }
        }

        return(null);
    }
 public void SetNewTargetToSteal(OldEnemyStealTarget newTarget)
 {
     currentStealTarget = newTarget;
 }