public void AddEvasionCardToTrail(GameState game) { List<PossibleTrailSlot[]> newPossibilityTree = new List<PossibleTrailSlot[]>(); List<Location> allCities = new List<Location>(); List<Location> allLocations = Enumerations.GetAllLocations(); foreach (Location loc in allLocations) { if (game.Map.TypeOfLocation(loc) == LocationType.SmallCity || game.Map.TypeOfLocation(loc) == LocationType.LargeCity) { allCities.Add(loc); } } foreach (PossibleTrailSlot[] trail in PossibilityTree) { foreach (Location location in allCities) { if (!game.HuntersAt(location).Any() && !TrailContainsLocation(trail, location) && !game.CatacombsContainsLocation(location)) { PossibleTrailSlot[] newPossibleTrail = new PossibleTrailSlot[6]; for (int i = 5; i > 0; i--) { newPossibleTrail[i] = trail[i - 1]; } newPossibleTrail[0] = new PossibleTrailSlot(location, Power.None, game.TimeOfDay, CardBack.Orange); newPossibilityTree.Add(newPossibleTrail); } } } PossibilityTree = newPossibilityTree; if (PossibilityTree.Count() == 0) { Console.WriteLine("Dracula stopped believing he exists after running AddEvasionCardToTrail"); PossibilityTree.Add(GetActualTrail(game)); } }