public override Vector2 CalulateMove(FlockAgent agent, List <Transform> context, Flock flock)
    {
        //if no neighbors, return no adjustment
        if (context.Count == 0)
        {
            return(Vector2.zero);
        }

        //add all points together and average
        Vector2          avoidanceMove   = Vector2.zero;
        int              nAvoid          = 0;
        List <Transform> filteredContext = (filter == null) ? context : filter.Filter(agent, context);


        foreach (Transform item in filteredContext)
        {
            if (Vector2.SqrMagnitude(item.position - agent.transform.position) < flock.SquareAvoidanceRadius)
            {
                nAvoid++;
                avoidanceMove += (Vector2)(agent.transform.position - item.position * 5);
                agent.SetScared(true);
                Debug.Log("avoidancemove: " + avoidanceMove);
            }
        }
        if (nAvoid > 0)
        {
            // avoidanceMove /= nAvoid;
        }

        return(avoidanceMove);
    }