Work on rooms

This commit is contained in:
2026-03-21 18:48:44 +00:00
parent b52964f606
commit 5394450800
9 changed files with 170 additions and 173 deletions
+46 -61
View File
@@ -2,7 +2,6 @@
module Dodge.Room.Tutorial where
import Dodge.Room.Modify
import Control.Monad
import qualified Data.IntMap.Strict as IM
import qualified Data.IntSet as IS
@@ -29,6 +28,7 @@ import Dodge.Room.Door
import Dodge.Room.LasTurret
import Dodge.Room.Link
import Dodge.Room.LongDoor
import Dodge.Room.Modify
import Dodge.Room.Ngon
import Dodge.Room.Path
import Dodge.Room.Pillar
@@ -54,48 +54,31 @@ tutAnoTree = do
foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor
, passthroughLockKeyLists lockRoomKeyItems itemRooms
--bbb , -- , return . tToBTree "door" $ treePost [corridor, cleatOnward door]
--bbb corDoor
--bbb , -- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--bbb lasRunRand
--bbb , corDoor
--bbb , passthroughLockKeyLists lockRoomKeyItems itemRooms
--bbb , -- , passthroughLockKeyLists lockRoomKeyItems itemRooms
--bbb tToBTree "door" . return <$> return (cleatOnward door)
--bbb , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--bbb , -- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--bbb -- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--bbb -- , passthroughLockKeyLists
--bbb -- [(sensorRoomRunPast ElectricSensor, takeOne
--bbb -- [-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
--bbb -- HELD SPARKGUN])]
--bbb -- itemRooms
--bbb -- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--bbb -- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--bbb tToBTree "sdr" . return . cleatOnward
--bbb <$> (shuffleLinks =<< distributerRoom BulletAmmo 100000)
--bbb -- aaa-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa-- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
--bbb -- aaa---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] []
--bbb -- aaa-- , return $ tToBTree "door" $ return $ cleatOnward door
--bbb -- aaa-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa-- , tToBTree "sdr" . return . cleatOnward <$>
--bbb -- aaa-- (shuffleLinks =<< tanksPipesRoom)
--bbb -- aaa-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa , return $ tToBTree "door" $ return $ cleatOnward door
--bbb -- aaa , tutHub
--bbb -- aaa , chasmSpitTerminal
--bbb -- aaa , tutLight
--bbb -- aaa , tutDrop
--bbb -- aaa , return $ tToBTree "cor" $ return $ cleatOnward corridor
--bbb -- aaa ---- , AnTree $ pickupTut
--bbb -- aaa ---- , AnTree $ weaponTut
, chasmSpitTerminal
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, corDoor
, tToBTree "sdr" . return . cleatOnward
<$> (shuffleLinks =<< distributerRoom BulletAmmo 100000)
, -- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] []
-- , return $ tToBTree "door" $ return $ cleatOnward door
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , tToBTree "sdr" . return . cleatOnward <$>
-- (shuffleLinks =<< tanksPipesRoom)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
return $ tToBTree "door" $ return $ cleatOnward door
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, tutHub
, chasmSpitTerminal
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, tutLight
, tutDrop
, return $ tToBTree "cor" $ return $ cleatOnward corridor
---- , AnTree $ pickupTut
---- , AnTree $ weaponTut
]
foldMTRS ::
@@ -131,8 +114,7 @@ tutDrop = do
isUnusedLnk
(\(p, a) -> ((p + 10 *.* unitVectorAtAngle (a - pi / 2), a), S.singleton UsedPosLow))
ss =
[ makeTermLine "--------------------------------------------"
, makeTermLine "YOU CAN ONLY CARRY A LIMITED AMOUNT OF ITEMS"
[ makeTermLine "YOU CAN ONLY CARRY A LIMITED AMOUNT OF ITEMS"
, makeTermLine "--------------------------------------------"
]
<> tlSetStatus (TerminalPressTo "CONTINUE")
@@ -273,19 +255,21 @@ midChasmSpit = do
y = 300
r <- roomRectAutoLights x y
cs <- join $ takeOne [censquare x y]
foutlnks <-
takeOne
[ \rl ->
isMidEdgeLink r North rl
|| isMidEdgeLink r East rl
|| isMidEdgeLink r West rl
, \rl -> OnEdge North `S.member` (rl ^. rlType)
&& not (FromEdge East 0 `S.member` (rl ^. rlType))
&& not (FromEdge West 0 `S.member` (rl ^. rlType))
]
shuffleLinks $
r
& rmLinks
%~ setOutLinks
( \rl ->
isMidEdgeLink r North rl
|| isMidEdgeLink r East rl
|| isMidEdgeLink r West rl
)
& rmLinks
%~ setInLinks (isMidEdgeLink r South)
& rmPmnts
.~ cs
& rmLinks %~ setOutLinks foutlnks
& rmLinks %~ setInLinks (isMidEdgeLink r South)
& rmPmnts .~ cs
where
censquare x y = do
z <- state $ randomR (40, 60)
@@ -304,8 +288,11 @@ chasmSpitTerminal :: State LayoutVars MTRS
chasmSpitTerminal = do
i1 <- nextLayoutInt
y <- midChasmSpit
l3 <- mntLightLnkCond $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 0 rp
l4 <- mntLightLnkCond $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 1 rp
shp <- takeOne [vShape, lShape, jShape, liShape]
let l3 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 0 rp
l4 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 1 rp
l5 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 2 rp
-- let y' = y & rmPmnts <>~ [l3, l4, l5]
let y' = y & rmPmnts <>~ [l3, l4]
return $
tToBTree "chasmTerm" $
@@ -430,9 +417,7 @@ tutHub = do
where
ds = ["DESTROY THIS TO OPEN THE DOOR"]
ss =
[ makeTermLine "---------------------------------------------"
, makeTermLine "YOU CAN INTERACT WITH SOME TERMINALS DIRECTLY"
, makeTermLine " THESE WILL DISPLAY A PROMPT SYMBOL"
[ makeTermLine "SOME TERMINALS HAVE A PROMPT"
, makeTermLine " *****"
, makeTermLine " * * TYPE OR SCROLL TO ENTER COMMANDS"
, makeTermLine " * > *"