public override bool TryOrder(DelegateOrder order, out float cost)
        {
            //deny attack orders, as a seeker cannot attack
            if (order.Type == OrderType.Attack
                || !order.IsValid())
            {
                cost = 0;
                return false;
            }

            cost = 0;

            //The cost is: What my opinion is of what it weights, plus how much i like what im doing
            switch (order.Type)
            {
                case OrderType.Move:
                    cost = order.Weight * 1.0f * order.DistanceToTargetSquared(Entity.Position)
                         + CurrentJobCost; //Likes to Trail Targets
                    return true;
                case OrderType.Defend:
                    cost = order.Weight * 1.2f * order.DistanceToTargetSquared(Entity.Position)
                        + CurrentJobCost; //Seekers great at watching stuff
                    return true;
                case OrderType.Follow:
                    cost = order.Weight * 0.8f * order.DistanceToTargetSquared(Entity.Position)
                        + CurrentJobCost; //Seekers arent very good at defending by themselves.  So it will only defend if it's must
                    return true;
            }

            return false;
        }
        public override bool TryOrder(DelegateOrder order, out float cost)
        {
            //deny attack orders, as a seeker cannot attack
            if (order.Type == OrderType.Attack
                && order.IsValid())
            {
                cost = order.Weight * 1.0f * order.DistanceToTargetSquared(Entity.Position)
                     + CurrentJobCost;
                return Order == null
                    || (order.DistanceToTargetSquared(Entity.Position) < Order.DistanceToTargetSquared(Entity.Position)
                        && TeamDelegate.Report.TimeStamp - TeamDelegate.FactSheet.GetLastSightingTime(Order.TargetAsEntity) > 2);
            }

            cost = 0;
            return false;
        }