Some cleanup, sidetracked from inter-room placements
This commit is contained in:
+49
-63
@@ -1,6 +1,5 @@
|
||||
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
||||
{- |
|
||||
The tree of rooms that make up a level. -}
|
||||
{- | The tree of rooms that make up a level. -}
|
||||
module Dodge.Floor
|
||||
( layoutLevelFromSeed
|
||||
) where
|
||||
@@ -34,72 +33,59 @@ 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]
|
||||
,[Corridor]
|
||||
,[SpecificRoom $ return $ connectRoom lasTunnel ]
|
||||
,[Corridor]
|
||||
,[SpecificRoom $ fmap connectRoom slowDoorRoom ]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
,[SpecificRoom $ fmap connectRoom roomCCrits]
|
||||
,[Corridor]
|
||||
,[AirlockAno]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
---- ,[SpecificRoom roomCCrits]
|
||||
---- ,[Corridor]
|
||||
---- ,[Corridor]
|
||||
---- ,[SpecificRoom . pure . pure . Right $ roomGlassOctogon 400
|
||||
---- & rmPS %~ ([sPS (V2 0 50) 0 $ PutCrit armourChaseCrit
|
||||
---- ,sPS (V2 50 25) 0 $ PutCrit armourChaseCrit
|
||||
---- ,sPS (V2 50 0) 0 $ PutCrit armourChaseCrit
|
||||
---- ]++)
|
||||
---- ]
|
||||
---- --,[Corridor]
|
||||
---- --,[SpecificRoom . pure . pure . Right $ roomGlassOctogon 400
|
||||
---- -- & rmPS %~ ([swarmPS 0 (x,y) 0 swarmCrit | x <- [-20,-19.5.. 20] , y <- [200,202] ]++)
|
||||
---- -- ]
|
||||
---- ,[SpecificRoom . pure . pure . Right $ roomGlassOctogon 400
|
||||
---- & rmPS %~ ([sPS (V2 0 50) 0 $ PutCrit pistolCrit ]++)
|
||||
---- ]
|
||||
---- ,[Corridor]
|
||||
---- ,[Corridor]
|
||||
-- --,[SpecificRoom $ pure . Right <$> twinSlowDoorChasers]
|
||||
--- ,[SpecificRoom $ pure $ (pure . Right) (twinSlowDoorRoom 80 200 40)]
|
||||
initialAnoTree = padSucWithCorridors $ treeFromTrunk
|
||||
[[StartRoom]
|
||||
,[SpecificRoom $ return $ connectRoom lasTunnel ]
|
||||
,[SpecificRoom $ fmap connectRoom slowDoorRoom ]
|
||||
,[Corridor]
|
||||
,[Corridor]
|
||||
,[SpecificRoom $ fmap connectRoom roomCCrits]
|
||||
,[AirlockAno]
|
||||
,[Corridor]
|
||||
---- ,[SpecificRoom roomCCrits]
|
||||
---- ,[Corridor]
|
||||
---- ,[SpecificRoom . pure . pure . Right $ roomGlassOctogon 400
|
||||
---- & rmPS %~ ([sPS (V2 0 50) 0 $ PutCrit armourChaseCrit
|
||||
---- ,sPS (V2 50 25) 0 $ PutCrit armourChaseCrit
|
||||
---- ,sPS (V2 50 0) 0 $ PutCrit armourChaseCrit
|
||||
---- ]++)
|
||||
---- ]
|
||||
---- --,[SpecificRoom . pure . pure . Right $ roomGlassOctogon 400
|
||||
---- -- & rmPS %~ ([swarmPS 0 (x,y) 0 swarmCrit | x <- [-20,-19.5.. 20] , y <- [200,202] ]++)
|
||||
---- -- ]
|
||||
---- ,[SpecificRoom . pure . pure . Right $ roomGlassOctogon 400
|
||||
---- & rmPS %~ ([sPS (V2 0 50) 0 $ PutCrit pistolCrit ]++)
|
||||
---- ]
|
||||
---- ,[Corridor]
|
||||
-- --,[SpecificRoom $ pure . Right <$> twinSlowDoorChasers]
|
||||
--- ,[SpecificRoom $ pure $ (pure . Right) (twinSlowDoorRoom 80 200 40)]
|
||||
--- ,[DoorAno]
|
||||
--- ,[SpecificRoom $ pure . Right <$> centerVaultExplosiveExit]
|
||||
--- ,[SpecificRoom blockedCorridor]
|
||||
--- ,[OrAno [[DoorAno]
|
||||
--- ,[Corridor]
|
||||
--- ,[DoorAno]
|
||||
--- ,[SpecificRoom $ pure . Right <$> centerVaultExplosiveExit]
|
||||
--- ,[SpecificRoom blockedCorridor]
|
||||
--- ,[OrAno [[DoorAno]
|
||||
--- ,[Corridor]
|
||||
--- ,[DoorNumAno 0,AirlockAno]]
|
||||
--- ]
|
||||
--- ,[FirstWeapon]
|
||||
--- ,[CorridorDebug]
|
||||
--- ,[SpecificRoom $ fmap (pure . Right) randomFourCornerRoom]
|
||||
,[Corridor]
|
||||
,[OrAno
|
||||
[[SpecificRoom $ branchRectWith $ fmap (fmap Left) armouredChasers]
|
||||
,[BossAno $ addArmour launcherCrit & crHP +~ 800
|
||||
& crState . crDropsOnDeath .~ DropSpecific [0] ]
|
||||
]
|
||||
]
|
||||
,[Corridor]
|
||||
-- ,[SpecificRoom $ fmap (pure . Right) armouredCorridor]
|
||||
,[Corridor]
|
||||
,[TreasureAno [addArmour autoCrit,addArmour autoCrit] [launcher]]
|
||||
]
|
||||
t'
|
||||
--- ,[DoorNumAno 0,AirlockAno]]
|
||||
--- ]
|
||||
--- ,[FirstWeapon]
|
||||
--- ,[CorridorDebug]
|
||||
--- ,[SpecificRoom $ fmap (pure . Right) randomFourCornerRoom]
|
||||
,[OrAno
|
||||
[[SpecificRoom $ branchRectWith $ fmap (fmap Left) armouredChasers]
|
||||
,[BossAno $ addArmour launcherCrit & crHP +~ 800
|
||||
& crState . crDropsOnDeath .~ DropSpecific [0] ]
|
||||
]
|
||||
]
|
||||
-- ,[SpecificRoom $ fmap (pure . Right) armouredCorridor]
|
||||
,[Corridor]
|
||||
,[TreasureAno [addArmour autoCrit,addArmour autoCrit] [launcher]]
|
||||
]
|
||||
$ treeFromPost [[Corridor,SpecificRoom $ fmap (pure . Right) randomFourCornerRoom]]
|
||||
[EndRoom]
|
||||
|
||||
{- | A test level tree. -}
|
||||
initialRoomTree :: RandomGen g => State g (Tree Room)
|
||||
initialRoomTree = do
|
||||
expandTreeBy id <$> mapM annoToRoomTree initialAnoTree
|
||||
expandTreeBy id <$> mapM anoToRoomTree initialAnoTree
|
||||
|
||||
layoutLevelFromSeed :: Int -> Int -> IO [Room]
|
||||
layoutLevelFromSeed i seed = do
|
||||
|
||||
Reference in New Issue
Block a user