Function for adding random lights to roomNGon

This commit is contained in:
2026-03-19 11:40:49 +00:00
parent d1c2870d63
commit 508b848204
20 changed files with 453 additions and 336 deletions
+12 -12
View File
@@ -1,6 +1,7 @@
--{-# LANGUAGE TupleSections #-}
-- {-# LANGUAGE TupleSections #-}
module Dodge.Room.Containing where
import Control.Monad
import Dodge.Cleat
import Dodge.Data.GenWorld
import Dodge.Item.Display
@@ -15,28 +16,27 @@ import Dodge.Tree
import Geometry
import LensHelp
import RandomHelp
import Control.Monad
roomsContaining :: RandomGen g => [Creature] -> [Item] -> State g (MetaTree Room String)
roomsContaining :: (RandomGen g) => [Creature] -> [Item] -> State g (MetaTree Room String)
roomsContaining crs its = tToBTree str <$> roomsContaining' crs its
where
str = "roomsContaining " ++ concatMap _crName crs ++ concatMap (head . basicItemDisplay) its
roomsContaining' :: RandomGen g => [Creature] -> [Item] -> State g (Tree Room)
roomsContaining' :: (RandomGen g) => [Creature] -> [Item] -> State g (Tree Room)
roomsContaining' crs its = do
endroom <-
join $
takeOne
[-- roomPillarsSquare <&> rmPmnts ++.~ crsItmsUnused crs its
--, randomFourCornerRoomCrsIts crs its
--, tanksRoom crs its
-- tanksPipesRoom <&> rmPmnts ++.~ crsItmsUnused crs its
roomPillarsContaining crs its
-- , roomPillarsPassage <&> rmPmnts ++.~ crsItmsUnused crs its
[ roomPillarsSquare <&> rmPmnts ++.~ crsItmsUnused crs its
, randomFourCornerRoomCrsIts crs its
, tanksRoom crs its
, tanksPipesRoom <&> rmPmnts ++.~ crsItmsUnused crs its
, roomPillarsContaining crs its
, roomPillarsPassage <&> rmPmnts ++.~ crsItmsUnused crs its
]
return (pure $ cleatOnward endroom)
roomPillarsContaining :: RandomGen g => [Creature] -> [Item] -> State g Room
roomPillarsContaining :: (RandomGen g) => [Creature] -> [Item] -> State g Room
roomPillarsContaining crs itms = do
(w, wn) <- takeOne [(240, 2), (340, 3)]
(h, hn) <- takeOne [(240, 2), (340, 3)]
@@ -47,7 +47,7 @@ crsItmsUnused crs itms =
map (\it -> sps0 (PutFlIt it) & plSpot .~ anyUnusedSpot) itms
++ map (\cr -> sps0 (PutCrit cr) & plSpot .~ unusedSpotAwayFromLink 50) crs
pedestalRoom :: RandomGen g => Item -> State g Room
pedestalRoom :: (RandomGen g) => Item -> State g Room
pedestalRoom it = do
let flit = PutFlIt it
x <- state $ randomR (150, 250)