Simplify analysers
This commit is contained in:
+39
-25
@@ -1,5 +1,14 @@
|
||||
{-# LANGUAGE TupleSections #-}
|
||||
module Dodge.Room.LasTurret where
|
||||
|
||||
module Dodge.Room.LasTurret (
|
||||
analyserByNthLinkWithPrompt,
|
||||
analyserByDoor,
|
||||
lasCenSensEdge,
|
||||
lasTunnelRunPast,
|
||||
keyCardRoomRunPast,
|
||||
lasSensorTurretTest,
|
||||
healthTest,
|
||||
) where
|
||||
|
||||
--import Dodge.Item.Held.Cane
|
||||
import qualified Data.Set as S
|
||||
@@ -61,7 +70,7 @@ lightSensByDoor i rm =
|
||||
-- & rmOutPmnt . at i ?~ sensAboveDoor LaserSensor 20 (atFstLnkOutShiftBy sensorshift)
|
||||
|
||||
covershape = rectNSWE 10 (-10) (-20) 20
|
||||
sensorshift (p, a) = ((p +.+ rotateV a (V2 60 (-20)), a),S.singleton UsedPosLow)
|
||||
sensorshift (p, a) = ((p +.+ rotateV a (V2 60 (-20)), a), S.singleton UsedPosLow)
|
||||
|
||||
keyCardRoomRunPast :: RandomGen g => Int -> Int -> State g (MetaTree Room String)
|
||||
keyCardRoomRunPast keyid rmid = do
|
||||
@@ -81,43 +90,48 @@ keyCardAnalyserByDoor keyid = analyserByDoor (RequireEquipment (HELD (KEYCARD ke
|
||||
healthAnalyserByDoor :: Int -> Room -> Room
|
||||
healthAnalyserByDoor = analyserByDoor (RequireHealth 1100)
|
||||
|
||||
analyserByNthLink :: Int -> ProximityRequirement -> Int -> Room -> Room
|
||||
analyserByNthLink n proxreq i rm =
|
||||
rm
|
||||
& rmPmnts
|
||||
.++~ [ psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80
|
||||
, analyser
|
||||
analyserByNthLink :: Int -> ProximityRequirement -> Int -> Placement
|
||||
analyserByNthLink n proxreq i =
|
||||
analyser
|
||||
(SensorWithRequirement proxreq)
|
||||
(atNthLnkOutShiftBy n (\(p, a) ->
|
||||
((p +.+ rotateV a (V2 18.5 (-2.5)), a), S.singleton UsedPosLow)))
|
||||
( atNthLnkOutShiftBy
|
||||
n
|
||||
( \(p, a) ->
|
||||
((p +.+ rotateV a (V2 18.5 (-2.5)), a), S.singleton UsedPosLow)
|
||||
)
|
||||
)
|
||||
(atNthLnkOutShiftBy n sensorshift)
|
||||
& plExternalID ?~ i
|
||||
]
|
||||
where
|
||||
sensorshift (p, a) = ((p +.+ rotateV a (V2 (-30) (-10)), a), S.singleton UsedPosLow)
|
||||
|
||||
analyserByNthLinkWithPrompt ::
|
||||
Int -> [TerminalLine] -> ProximityRequirement -> Int -> Placement
|
||||
analyserByNthLinkWithPrompt n l proxreq i =
|
||||
-- rm
|
||||
-- & rmPmnts
|
||||
-- .++~ [-- psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80
|
||||
analyserWithPrompt
|
||||
l
|
||||
(SensorWithRequirement proxreq)
|
||||
(atNthLnkOutShiftBy n (\(p, a) ->
|
||||
((p +.+ rotateV a (V2 18.5 (-2.5)), a),S.singleton UsedPosLow)))
|
||||
(atNthLnkOutShiftBy n sensorshift)
|
||||
& plExternalID ?~ i
|
||||
-- ]
|
||||
-- rm
|
||||
-- & rmPmnts
|
||||
-- .++~ [-- psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80
|
||||
analyserWithPrompt
|
||||
l
|
||||
(SensorWithRequirement proxreq)
|
||||
( atNthLnkOutShiftBy
|
||||
n
|
||||
( \(p, a) ->
|
||||
((p +.+ rotateV a (V2 18.5 (-2.5)), a), S.singleton UsedPosLow)
|
||||
)
|
||||
)
|
||||
(atNthLnkOutShiftBy n sensorshift)
|
||||
& plExternalID ?~ i
|
||||
where
|
||||
-- ]
|
||||
|
||||
sensorshift (p, a) = ((p +.+ rotateV a (V2 (-30) (-10)), a), S.singleton UsedPosLow)
|
||||
|
||||
analyserByDoor :: ProximityRequirement -> Int -> Room -> Room
|
||||
analyserByDoor = analyserByNthLink 0
|
||||
analyserByDoor pr i = rmPmnts .:~ analyserByNthLink 0 pr i
|
||||
|
||||
analyserByDoorWithPrompt :: [TerminalLine] -> ProximityRequirement -> Int -> Room -> Room
|
||||
analyserByDoorWithPrompt s x i = rmPmnts .:~ analyserByNthLinkWithPrompt 0 s x i
|
||||
--analyserByDoorWithPrompt :: [TerminalLine] -> ProximityRequirement -> Int -> Room -> Room
|
||||
--analyserByDoorWithPrompt s x i = rmPmnts .:~ analyserByNthLinkWithPrompt 0 s x i
|
||||
|
||||
healthTest :: RandomGen g => Int -> State g (Tree Room)
|
||||
healthTest n = do
|
||||
|
||||
@@ -266,7 +266,7 @@ tutHub = do
|
||||
k
|
||||
x <-
|
||||
shuffleLinks
|
||||
. analyserByDoorWithPrompt [] (RequireEquipment (AMMOMAG DRUMMAG)) i
|
||||
. analyserByDoor (RequireEquipment (AMMOMAG DRUMMAG)) i
|
||||
. (rmInPmnt .:~ (0, a))
|
||||
. addDoorAtNthLinkToggleTerminal 1 ss j
|
||||
=<< roomNgon 6 100
|
||||
|
||||
Reference in New Issue
Block a user