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