--- race-blocks.py 2004-11-11 16:48:02.299056336 +0200 +++ race.py 2004-11-11 21:53:22.468967176 +0200 @@ -647,6 +647,52 @@ u.add( BarUp( p , rand( 10 ) + 11 , 8 ) ) return u , t +def MineFieldObstacle( level ) : + u = Union() + t = UnionBox() + + length = 32 + level * 16 + width = trackWidth + laneWidth + holes = 5 * level + blocks = rand( 2 * level ) + + t = RemoveSafetyTrack( x = length , z = length ) + + p1 = Point( -( width / 2 ) , 14 , -length ) + p2 = Point( width / 2 , 20 , length ) + b = Box( p1 , p2 ) + p1 = Point( -( width / 2 ) , 0 , -length ) + p2 = Point( width / 2 , -5 , length ) + b = b + Box( p1 , p2 ) + p1 = Point( -( width / 2 ) , 0 , -length ) + p2 = Point( -( width / 2 ) + 1 , 14 , length ) + b = b + Box( p1 , p2 ) + p1 = Point( width / 2 , 0 , -length ) + p2 = Point( width / 2 - 1 , 14 , length ) + b = b + Box( p1 , p2 ) + + xsize = 10 + zsize = 10 + bsize = 10 + + for i in range( holes ) : + x = rand( width - xsize) - ( width - xsize ) / 2 + z = rand( length * 2 - zsize - 2 ) - length + 1 + p1 = Point( x - xsize / 2 , -4.75 , z ) + p2 = Point( x + xsize / 2 , 0 , z + zsize ) + b = b - Box( p1 , p2 ) + b = b + Box( p1 , p2 ).setFlag( 'drivethrough' ) + + for i in range( blocks ) : + x = rand( width - bsize * 2 ) - ( width - bsize * 2 ) / 2 + z = rand( length * 2 - 20 ) - length + 10 + p1 = Point( x - bsize / 2 , rand( 4 ) + 4 , z ) + p2 = Point( x + bsize / 2 , 0 , z + bsize ) + b = b + Box( p1 , p2 ).rotate( rand( 45 ) ) + + u.add( b ) + return u , t + def ThinTracksObstacle( level ) : u = Union() if level == 1 : @@ -1328,6 +1374,7 @@ 'LeapFrog' : ( 1 , True , LeapFrogObstacle ) , 'L-Turn' : ( 4 , True , LturnObstacle ) , 'Maze' : ( 4 , True , MazeObstacle ) , +'MineField' : ( 4 , False, MineFieldObstacle ) , 'Planks' : ( 2 , False , PlanksObstacle ) , 'Portcullis' : ( 3 , True , PortcullisObstacle ) , #'PostHopping' : ( 0 , False , PostHoppingObstacle ) ,