Refactor doors
This commit is contained in:
@@ -31,7 +31,7 @@ twinSlowDoorRoom
|
||||
-> Float -- ^ Half height
|
||||
-> Float -- ^ Inner width
|
||||
-> Room
|
||||
twinSlowDoorRoom drID w h x = defaultRoom
|
||||
twinSlowDoorRoom drid w h x = defaultRoom
|
||||
{ _rmPolys = ps
|
||||
, _rmLinks =
|
||||
[ (V2 w (h/2) , negate $ pi/2)
|
||||
@@ -46,10 +46,10 @@ twinSlowDoorRoom drID w h x = defaultRoom
|
||||
, sPS (V2 0 0) 0 $ PutSingleDoor col cond (V2 x 1) (V2 x h) 1
|
||||
, sPS (V2 0 0) 0 $ PutSingleDoor col cond (V2 (-x) 1) (V2 (-x) h) 1
|
||||
, sPS (V2 0 (h-5)) pi $ PutButton $ makeSwitch col red
|
||||
(over worldState (M.insert (DoorNumOpen drID) True))
|
||||
(over worldState (M.insert (DoorNumOpen drID) False))
|
||||
-- , sPS (V2 0 (h-1)) 0 $ PutLS (colorLightAt (V3 0.75 0 0) (V3 0 0 lampHeight) 0) (lampPic lampHeight)
|
||||
-- , sPS (V2 0 (h-1)) 0 $ PutProp $ lampCover lampHeight
|
||||
(worldState %~ M.insert (DoorNumOpen drid) True )
|
||||
(worldState %~ M.insert (DoorNumOpen drid) False)
|
||||
, sPS (V2 0 (h-1)) 0 $ PutLS (colorLightAt (V3 0.75 0 0) (V3 0 0 lampHeight) 0) (lampPic lampHeight)
|
||||
, sPS (V2 0 (h-1)) 0 $ PutProp $ lampCover lampHeight
|
||||
]
|
||||
, _rmBound = ps
|
||||
, _rmName = "twinSlowDoorRoom"
|
||||
@@ -60,7 +60,7 @@ twinSlowDoorRoom drID w h x = defaultRoom
|
||||
[rectNSWE h 0 (-w) w
|
||||
,rectNSWE 20 (-h) (negate x) x
|
||||
]
|
||||
cond w' = or $ M.lookup (DoorNumOpen drID) (_worldState w')
|
||||
cond w' = or $ M.lookup (DoorNumOpen drid) (_worldState w')
|
||||
col = dim $ dim $ bright red
|
||||
|
||||
twinSlowDoorChasers
|
||||
@@ -104,7 +104,6 @@ slowDoorRoom = do
|
||||
let cond x' = (sndV2 . fst) x' > h + 40
|
||||
cond2 x' = (sndV2 . fst) x' < h - 40
|
||||
but <- takeOne [PutBtDoor (dim $ light red) butPos butRot (V2 0 h) (V2 x h) 2
|
||||
-- ,PutSwitchDoor (dim $ light red) butPos butRot (0,h) (x,h)
|
||||
]
|
||||
fmap connectRoom
|
||||
(filterLinks cond =<<
|
||||
|
||||
@@ -27,7 +27,7 @@ centerVaultExplosiveExit
|
||||
:: RandomGen g
|
||||
=> Int -- ^ Door id
|
||||
-> State g Room
|
||||
centerVaultExplosiveExit drID = do
|
||||
centerVaultExplosiveExit drid = do
|
||||
cr <- takeOne [miniGunCrit, autoCrit]
|
||||
let extraPS =
|
||||
[sPS (V2 0 175) 0 $ PutCrit explosiveBarrel
|
||||
@@ -36,5 +36,5 @@ centerVaultExplosiveExit drID = do
|
||||
,sPS (V2 (-4) 195) 0 $ PutCrit explosiveBarrel
|
||||
,sPS (V2 0 0) 0 $ PutCrit (cr & crState . crDropsOnDeath .~ DropAll)
|
||||
]
|
||||
r <- centerVaultRoom drID 200 200 50 <&> rmPS %~ (extraPS ++)
|
||||
r <- centerVaultRoom drid 200 200 50 <&> rmPS %~ (extraPS ++)
|
||||
randomiseLinksBy shuffleTail r <&> rmLinks %~ take 2
|
||||
|
||||
Reference in New Issue
Block a user