示例#1
0
        public IFOVBoard Do(IEntity viewer, IWorldInstance world, Vector2Int dimensions, IEnumerable <Vector2Int> walls)
        {
            this.Viewer    = viewer;
            this.VisionMod = viewer.VisionMod;
            this.Board     = new FOVArrayBoard(dimensions.x, dimensions.y, walls);
            this.Board.Visible(this.Viewer.WorldPosition.x, this.Viewer.WorldPosition.y);

            this.DoAdjacent(viewer.WorldPosition, 0);

            return(this.Board);
        }
示例#2
0
        public IFOVBoard Do(IEntity viewer, IWorldInstance world, Vector2Int dimensions,
                            IEnumerable <Vector2Int> walls)
        {
            Vector2Int viewerPos = viewer.WorldPosition;

            this.m_Board = new FOVArrayBoard(dimensions.x, dimensions.y, walls);
            this.m_Board.Visible(viewerPos.x, viewerPos.y);
            foreach (Vector2Int direction in DIAGONALS)
            {
                this.CastLight(viewer, world, viewerPos, viewer.VisionMod, 1, 1, 0, 0, direction.x, direction.y, 0);
                this.CastLight(viewer, world, viewerPos, viewer.VisionMod, 1, 1, 0, direction.x, 0, 0, direction.y);
            }

            return(this.m_Board);
        }