public static void HandleVisibilityOfList(LivingBeing being, List <MapComponent> listGameAware) { var currentPosition = being.PositionCell; // reinit visibility ReitinializeVisibility(being, listGameAware); var listPathOfVisibility = Utilitaires.GetPathsToDistanceMax(currentPosition, being.Statistics.FOV); // handle new visibility var listAtPos = listGameAware.Where(x => x.PositionCell == currentPosition); foreach (var v in listAtPos) { v.SetColorToUse(Visibility.InView); if (!v.SeenBy.Contains(being.UniqueIdentifier)) { v.SeenBy.Add(being.UniqueIdentifier); } } ProcessVisibilityWithFOV(being, listPathOfVisibility, listGameAware); }