/// <summary> /// エリアデータを設定する /// </summary> /// <param name="dungeonData"></param> /// <param name="ad">エリアデータ</param> /// <returns>ダンジョンデータ</returns> private int[,] SetArea( int [,] dungeonData, cAreaData ad ) { // 部屋設定 for (int y = ad.StartY; y <= ad.EndY; y++) { for (int x = ad.StartX; x <= ad.EndX; x++) { // X軸分割線、その他は部屋 if (x == ad.StartX) { dungeonData[x, y] = ad.SplitY ? SPLIT : ROOM; } else if (y == ad.StartY) { dungeonData[x, y] = ad.SplitX ? SPLIT : ROOM; } else { // 部屋 dungeonData[x, y] = ROOM; } } } return(dungeonData); }
/// <summary> /// 対象エリア番号に隣接するエリアを取得する /// </summary> /// <param name="adList">エリアデータリスト</param> /// <param name="areaNo">対象エリア番号</param> /// <returns>エリアリスト</returns> private IEnumerable <cAreaData> GetAdjacentAreaY( IEnumerable <cAreaData> adList, int areaNo ) { // エリアデータ番号のcAreaDataを取得する cAreaData ad = adList.Where(x => x.AreaNo == areaNo).Last(); // x,yを取得する int px = ad.StartX; int py = ad.StartY; return(adList.Where( x => x.StartX == px && x.StartY == py + AreaSize )); }