Example #1
0
 private StaircaseDoor FindFreeStairsDown(int level)
 {
     for (int i = 0; i < building[level].Count; ++i)
     {
         if (building[level][i] is StairsBuildingSegment)
         {
             StairsBuildingSegment segment = (StairsBuildingSegment)building[level][i];
             if (segment.SegmentType == FloorSegmentType.stairsDown && !segment.isTaken)
             {
                 segment.isTaken = true;
                 return(segment.Door);
             }
         }
     }
     return(null);
 }
Example #2
0
 private void BindStairs()
 {
     for (int i = 0; i < building.Count; ++i)
     {
         for (int j = 0; j < building[i].Count; ++j)
         {
             if (building[i][j] is StairsBuildingSegment)
             {
                 StairsBuildingSegment segment = (StairsBuildingSegment)building[i][j];
                 if (segment.SegmentType == FloorSegmentType.stairsUp)
                 {
                     segment.SetRelatedStairs(FindFreeStairsDown(i + 1));
                 }
                 if (segment.SegmentType == FloorSegmentType.stairsDown)
                 {
                     segment.SetRelatedStairs(FindFreeStairsUp(i - 1));
                 }
             }
         }
     }
 }