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"