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); }
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); }