public bool CheckVisibilityUnderCursor()
        {
            Vector2Int cell       = _mouseCell;
            VisionMask visionMask = _visionController.GetMask(cell.x, cell.y);

            if (visionMask == null)
            {
                return(true);
            }
            return(visionMask.IsVisible());
        }
        // Must be invoked before any TileObject's UpdateControllers
        private void Update()
        {
            if (!WasLoaded)
            {
                //Debug.LogError("Update on WalkController invoked before OnGameLoaded()");
                return;
            }

            if (_displayWalkBlockers)
            {
                if (_visionController == null)
                {
                    _visionController = FindObjectOfType <VisionController>();
                }

                for (int x = 0; x < ServerController.MapSize.x; x++)
                {
                    for (int y = 0; y < ServerController.MapSize.y; y++)
                    {
                        Color color      = Color.red;
                        float brightness = 1;
                        if (_walkBlockerCount[x, y] <= 0)
                        {
                            brightness = 1;
                        }
                        if (_walkBlockerCount[x, y] == 1)
                        {
                            brightness = 0.9f;
                        }
                        if (_walkBlockerCount[x, y] > 1)
                        {
                            brightness = 0.2f;
                        }
                        _visionController.GetMask(x, y)?.SetLighting(brightness, color);
                    }
                }
            }

            for (int i = 0; i < _walkBlockerCount.GetLength(0); i++)
            {
                for (int j = 0; j < _walkBlockerCount.GetLength(1); j++)
                {
                    _walkBlockerCount[i, j] = 0;
                }
            }
        }