Esempio n. 1
0
    /// <summary>
    /// 範囲の描画
    /// </summary>
    /// <param name="bmt"></param>
    /// <param name="tileSet"></param>
    private static void DrawRangeTile(BattleMapTile bmt, HashSet <BattleMapTile> tileSet, Action <BattleMapTile, int> iconInstaller)
    {
        BattleMapTileJointInfo jointInfo = bmt.JointInfo;

        foreach (MapTileJointPositionType jointPositionType in Enum.GetValues(typeof(MapTileJointPositionType)))
        {
            BattleMapTile jointTile = jointInfo.GetJointTile(jointPositionType);

            bool isDraw = false;

            // はじっこは描写
            if (jointTile == null)
            {
                isDraw = true;
            }

            else
            {
                // 移動可能タイルに存在しない場合は描写
                if (tileSet.Contains(jointTile) == false)
                {
                    isDraw = true;
                }
            }

            // 描写
            if (isDraw == true)
            {
                iconInstaller(bmt, (int)jointPositionType * 60);
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 接続情報を作成
    /// </summary>
    /// <param name="tiles"></param>
    /// <param name="patList"></param>
    /// <returns></returns>
    private BattleMapTileJointInfo CreateJointInfo(BattleMapTile[,] tiles, List <BattleMapTilePointAndType> patList)
    {
        BattleMapTileJointInfo jointInfo = new BattleMapTileJointInfo();

        foreach (BattleMapTilePointAndType pat in patList)
        {
            switch (pat.Position)
            {
            case MapTileJointPositionType.TOP_RIGHT:
                jointInfo.TopRight = tiles[pat.X, pat.Y];
                break;

            case MapTileJointPositionType.RIGHT:
                jointInfo.Right = tiles[pat.X, pat.Y];
                break;

            case MapTileJointPositionType.BOTTOM_RIGHT:
                jointInfo.BottomRight = tiles[pat.X, pat.Y];
                break;

            case MapTileJointPositionType.BOTTOM_LEFT:
                jointInfo.BottomLeft = tiles[pat.X, pat.Y];
                break;

            case MapTileJointPositionType.LEFT:
                jointInfo.Left = tiles[pat.X, pat.Y];
                break;

            case MapTileJointPositionType.TOP_LEFT:
                jointInfo.TopLeft = tiles[pat.X, pat.Y];
                break;
            }
        }

        return(jointInfo);
    }