Esempio n. 1
0
 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));
     }
 }