Пример #1
0
        public IFOVBoard Do(Vector2Int origin, int visionMod)
        {
            Board.ClearBoard();

            Board.Visible(origin.x, origin.y);
            Go(origin, 1, visionMod, 0, 359.9d);

            return(Board);
        }
Пример #2
0
        public IFOVBoard Do(Vector2Int origin, int sightMod)
        {
            m_Board.ClearBoard();

            m_Board.Visible(origin.x, origin.y);
            foreach (Vector2Int direction in DIAGONALS)
            {
                CastLight(origin, sightMod, 1, 1, 0, 0, direction.x, direction.y, 0);
                CastLight(origin, sightMod, 1, 1, 0, direction.x, 0, 0, direction.y);
            }

            return(m_Board);
        }
Пример #3
0
        public IFOVBoard Do(Vector2Int origin, int sightMod)
        {
            m_Board.ClearBoard();

            m_Board.Visible(origin.x, origin.y);

            UnityEngine.Profiling.Profiler.BeginSample("FOV Calculations");
            for (int i = 0; i < 360; i += GRANULARITY)
            {
                float x = (float)Math.Cos(i * 0.01745f);
                float y = (float)Math.Sin(i * 0.01745f);
                DiscoverTile(x, y, origin, sightMod);
            }
            UnityEngine.Profiling.Profiler.EndSample();

            return(m_Board);
        }