Files
loop/src/Dodge/Room/Branch.hs
T

29 lines
784 B
Haskell

{-
Collections of rooms that branch into multiple paths.
-}
module Dodge.Room.Branch
where
--import Geometry
import Dodge.LevelGen.Data
import Dodge.Room.Door
import Dodge.Room.Link
import Dodge.Room.Procedural
--import Dodge.LevelGen.Data
import Dodge.Tree
import Control.Monad.State
import System.Random
import Data.Tree
branchRectWith :: RandomGen g => State g (Tree (Either Room Room)) -> State g (Tree (Either Room Room))
branchRectWith t = do
x <- state $ randomR (100,200)
y <- state $ randomR (100,200)
b <- t
root <- randomiseOutLinks $ roomRectAutoLinks x y
return $ Node (Left root) [Node (Right door) [], rToL <$> treeFromTrunk [Left door] b]
where
rToL :: Either a a -> Either a a
rToL (Right r) = Left r
rToL (Left r) = Left r