コード例 #1
0
    public void UpdateFogTile(TileFogState state)
    {
        switch (state)
        {
        case TileFogState.Active:
            _spriteRenderer.sprite = null;
            break;

        case TileFogState.Revealed:
            _spriteRenderer.sprite = Fog1;
            break;

        case TileFogState.Hiden:
            _spriteRenderer.sprite = BlackFog;
            break;
        }
    }
コード例 #2
0
ファイル: Fog.cs プロジェクト: PierreGac/turbulent-dwarf
    // Update is called once per frame
    public static void UpdateFog(int index, TileFogState state)
    {
        int x = index - (int)(index / Scene.Width) * Scene.Width;
        int y = index / Scene.Height;
        int startX;
        int startY;
        int endX;
        int endY;

        int iX;
        int iY;
        startX = x - 1;
        startY = y - 1;
        endX = x + 1;
        endY = y + 1;

        iX = startX;
        iY = startY;

        /*for (iX = startX; iX <= endX; iX++)
        {
            for (iY = startY; iY <= endY; iY++)
            {
                if ((iX + iY * Scene.Height) < Scene._grid.Length && Scene._grid[iX + iY * Scene.Height].tile != Tile.Full)
                {
                    if (Scene._grid[iX + iY * Scene.Height].FogScript.State != state)
                    {
                        Scene._grid[iX + iY * Scene.Height].FogScript.UpdateFogTile(state);
                        Scene._grid[iX + iY * Scene.Height].FogScript.State = state;
                    }
                }
            }
        }*/
        foreach(Grid grid in Scene.GetSurroundingHexes(Scene._grid[index]))
        {
            if (grid.FogScript != null)
            {
                grid.FogScript.UpdateFogTile(state);
                grid.FogScript.State = state;
                //Show item
                if (grid.TileItem != null && grid.TileItem.GetComponent<MonoItem>() != null)
                    grid.TileItem.GetComponent<MonoItem>().spriteRenderer.enabled = true;
            }
        }

        foreach (Grid grid in Scene.GetSurroundingHexes(Scene._grid[index], 2))
        {
            if (grid.FogScript != null)
            {
                grid.FogScript.UpdateFogTile(TileFogState.Revealed);
                grid.FogScript.State = TileFogState.Revealed;
            }
        }

        return;

        startX = x - 2;
        startY = y - 2;
        endX = x + 2;
        endY = y + 2;

        iX = startX;
        iY = startY;

        for (iX = startX; iX <= endX; iX++)
        {
            for (iY = startY; iY <= endY; iY++)
            {
                if (iX == startX || iX == endX || iY == startY || iY == endY)
                {
                    if ((iX + iY * Scene.Height) < Scene._grid.Length && Scene._grid[iX + iY * Scene.Height].tile != Tile.Full)
                    {
                        //if (Scene._grid[iX + iY * Scene.Height].FogScript.State != TileFogState.Revealed)
                        //{
                            Scene._grid[iX + iY * Scene.Height].FogScript.UpdateFogTile(TileFogState.Revealed);
                            Scene._grid[iX + iY * Scene.Height].FogScript.State = TileFogState.Revealed;
                        //}
                    }
                }
            }
        }
    }
コード例 #3
0
    // Update is called once per frame
    public static void UpdateFog(int index, TileFogState state)
    {
        int x = index - (int)(index / Scene.Width) * Scene.Width;
        int y = index / Scene.Height;
        int startX;
        int startY;
        int endX;
        int endY;

        int iX;
        int iY;

        startX = x - 1;
        startY = y - 1;
        endX   = x + 1;
        endY   = y + 1;

        iX = startX;
        iY = startY;

        /*for (iX = startX; iX <= endX; iX++)
         * {
         *  for (iY = startY; iY <= endY; iY++)
         *  {
         *      if ((iX + iY * Scene.Height) < Scene._grid.Length && Scene._grid[iX + iY * Scene.Height].tile != Tile.Full)
         *      {
         *          if (Scene._grid[iX + iY * Scene.Height].FogScript.State != state)
         *          {
         *              Scene._grid[iX + iY * Scene.Height].FogScript.UpdateFogTile(state);
         *              Scene._grid[iX + iY * Scene.Height].FogScript.State = state;
         *          }
         *      }
         *  }
         * }*/
        foreach (Grid grid in Scene.GetSurroundingHexes(Scene._grid[index]))
        {
            if (grid.FogScript != null)
            {
                grid.FogScript.UpdateFogTile(state);
                grid.FogScript.State = state;
                //Show item
                if (grid.TileItem != null && grid.TileItem.GetComponent <MonoItem>() != null)
                {
                    grid.TileItem.GetComponent <MonoItem>().spriteRenderer.enabled = true;
                }
            }
        }

        foreach (Grid grid in Scene.GetSurroundingHexes(Scene._grid[index], 2))
        {
            if (grid.FogScript != null)
            {
                grid.FogScript.UpdateFogTile(TileFogState.Revealed);
                grid.FogScript.State = TileFogState.Revealed;
            }
        }

        return;

        startX = x - 2;
        startY = y - 2;
        endX   = x + 2;
        endY   = y + 2;

        iX = startX;
        iY = startY;

        for (iX = startX; iX <= endX; iX++)
        {
            for (iY = startY; iY <= endY; iY++)
            {
                if (iX == startX || iX == endX || iY == startY || iY == endY)
                {
                    if ((iX + iY * Scene.Height) < Scene._grid.Length && Scene._grid[iX + iY * Scene.Height].tile != Tile.Full)
                    {
                        //if (Scene._grid[iX + iY * Scene.Height].FogScript.State != TileFogState.Revealed)
                        //{
                        Scene._grid[iX + iY * Scene.Height].FogScript.UpdateFogTile(TileFogState.Revealed);
                        Scene._grid[iX + iY * Scene.Height].FogScript.State = TileFogState.Revealed;
                        //}
                    }
                }
            }
        }
    }
コード例 #4
0
ファイル: Fog.cs プロジェクト: PierreGac/turbulent-dwarf
 public void UpdateFogTile(TileFogState state)
 {
     switch (state)
     {
         case TileFogState.Active:
             _spriteRenderer.sprite = null;
             break;
         case TileFogState.Revealed:
             _spriteRenderer.sprite = Fog1;
             break;
         case TileFogState.Hiden:
             _spriteRenderer.sprite = BlackFog;
             break;
     }
 }