29 lines
866 B
Haskell
29 lines
866 B
Haskell
module Dodge.Room.BlinkAcross where
|
|
|
|
import Control.Monad.State
|
|
import Dodge.Cleat
|
|
import Dodge.Data.GenWorld
|
|
import Dodge.PlacementSpot
|
|
import Dodge.Room.Corridor
|
|
import Dodge.Room.Link
|
|
import Dodge.Room.Procedural
|
|
import Dodge.Tree
|
|
import LensHelp
|
|
import System.Random
|
|
|
|
blinkAcrossChallenge :: RandomGen g => State g (MetaTree Room String)
|
|
blinkAcrossChallenge = do
|
|
teleFromRoom <- shuffleLinks =<< roomRectAutoLinks 200 200
|
|
teleToRoom <- shuffleLinks =<< roomRectAutoLinks 200 200
|
|
emptylink <- shuffleLinks emptyCorridor
|
|
rToOnward "blinkAcrossChallenge" $
|
|
treePost [teleFromRoom, emptylink, cleatOnward teleToRoom]
|
|
|
|
emptyCorridor :: Room
|
|
emptyCorridor =
|
|
corridor & rmPolys .~ []
|
|
& rmPath .~ mempty
|
|
& rmPmnts .~ []
|
|
& rmRandPSs .~ [psRandRanges (10, 30) (30, 60) (0, 2 * pi)]
|
|
& rmName .~ "WalledCorridor"
|