protected void Create_Long_Circuit_Patrol(bool IsDuringLoad)//generates suggested visits to run the above
        {
            int NumofVisitsLB = Math.Min(3, map.Rooms.Count / 3);
            int NumofVisits   = map.D.Next(NumofVisitsLB, map.Rooms.Count / 2);

            if (!IsDuringLoad || ListMethod.NumberUnique(AIMoveManager.Instance.RoomsForRoutes) < NumofVisits)
            {
                AIMoveManager.Instance.TopUpRoomsForRoutes();
            }

            if (NumofVisitsLB < 2)
            {                                  // tiny map means that a AtoB is the only option, really
                Create_Standard_Patrol(false); //run the A to B instead. Don't say its running after startup as you've already added enough RoomsForRoutes above
            }
            else
            {
                List <int> Visits = new List <int>
                {
                    AIMoveManager.Instance.RoomsForRoutes[map.D.Next(0, AIMoveManager.Instance.RoomsForRoutes.Count - 1)]
                };
                for (int I = 1; I < NumofVisits; I++)
                {
                    while (true)
                    {
                        int Next = AIMoveManager.Instance.RoomsForRoutes[map.D.Next(0, AIMoveManager.Instance.RoomsForRoutes.Count - 1)];
                        if (Visits[Visits.Count - 1] != Next)
                        {
                            Visits.Add(Next);
                            break;
                        }
                    }
                }
                Create_Long_Circuit_Patrol(Visits);
            }
        }
        protected void Create_Standard_Patrol(bool IsDuringLoad)
        {
            if (!IsDuringLoad || ListMethod.NumberUnique(AIMoveManager.Instance.RoomsForRoutes) < 2)
            {
                AIMoveManager.Instance.TopUpRoomsForRoutes();
            }
            int A = AIMoveManager.Instance.RoomsForRoutes[map.D.Next(0, AIMoveManager.Instance.RoomsForRoutes.Count)];
            int B;

            while (true)
            {
                B = AIMoveManager.Instance.RoomsForRoutes[map.D.Next(0, AIMoveManager.Instance.RoomsForRoutes.Count)];
                if (B != A)
                {
                    break;
                }
            }
            Create_Standard_Patrol(A, B);
        }