Work towards cross-room placements
This commit is contained in:
+8
-10
@@ -15,6 +15,7 @@ import Dodge.Room.Branch
|
||||
import Dodge.Room.Boss
|
||||
import Dodge.Room.LongDoor
|
||||
import Dodge.Room.NoNeedWeapon
|
||||
import Dodge.Room.Link
|
||||
import Dodge.Layout.Tree.Polymorphic
|
||||
import Dodge.Layout.Tree.Either
|
||||
import Dodge.Layout.Tree.Annotate
|
||||
@@ -31,16 +32,13 @@ import Control.Monad.Loops
|
||||
import System.Random
|
||||
import Data.Sequence hiding (zipWith)
|
||||
import Data.Maybe
|
||||
|
||||
initialAnoTree :: RandomGen g => Tree [Annotation g]
|
||||
initialAnoTree =
|
||||
let struct = treeFromPost [[Corridor,SpecificRoom $ fmap (pure . Right) randomFourCornerRoom]] [EndRoom]
|
||||
t' = padWithCorridors struct
|
||||
in treeFromTrunk
|
||||
[[StartRoom]
|
||||
,[SpecificRoom spawnerRoom]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
,[SpecificRoom $ return $ connectRoom lasTunnel ]
|
||||
,[Corridor]
|
||||
@@ -122,12 +120,12 @@ layoutLevelFromSeed i seed = do
|
||||
putStr $ "Level generation with seed " ++ show seed ++ " failed: "
|
||||
let (seed',_) = random g
|
||||
layoutLevelFromSeed i' seed'
|
||||
where
|
||||
setLastLinkToUsed rm = case _rmLinks rm of
|
||||
(_:_) -> rm
|
||||
& rmLinks %~ init
|
||||
& rmUsedLinks %~ (last (_rmLinks rm) :)
|
||||
_ -> rm
|
||||
-- where
|
||||
-- setLastLinkToUsed rm = case _rmLinks rm of
|
||||
-- (_:_) -> rm
|
||||
-- & rmLinks %~ init
|
||||
-- & rmUsedLinks %~ (last (_rmLinks rm) :)
|
||||
-- _ -> rm
|
||||
|
||||
compactDrawTree :: Tree String -> String
|
||||
compactDrawTree = unlines . compactDraw
|
||||
|
||||
Reference in New Issue
Block a user