Example #1
0
        public void OnGameChanged()
        {
            bool isVisible = IsVisible;

            if (!IsVisible && new Random(Game.TurnIndex * GetHashCode()).NextDouble() < 0.25)
            {
                isVisible = Game.Units.Any(u => MapDisplay.PointDifference(u.Position, Position) <= 2 && u.Player.Faction != Faction);
            }

            IsVisible = isVisible;
        }
Example #2
0
 public bool IsTileVisible(Point position)
 {
     if (_VisibleTiles == null)
     {
         _VisibleTiles = new List <bool>();
         for (int y = 0; y < Game.Terrain.Height; y++)
         {
             for (int x = 0; x < Game.Terrain.Width; x++)
             {
                 bool a = false;
                 for (int i = 0; i < Units.Count; i++)
                 {
                     if (MapDisplay.PointDifference(new Point(x, y), Units[i].Position) <= Units[i].Type.ViewDistance)
                     {
                         a = true;
                         break;
                     }
                 }
                 _VisibleTiles.Add(a);
             }
         }
     }
     return(_VisibleTiles[position.X + position.Y * Game.Terrain.Width]);
 }
Example #3
0
 public OrdersDisplay(MapDisplay mapDisplay)
 {
     _MapDisplay = mapDisplay;
 }