Commit mid big tree composing change
This commit is contained in:
+27
-23
@@ -1,6 +1,7 @@
|
||||
--{-# LANGUAGE TupleSections #-}
|
||||
module Dodge.Room.LasTurret where
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.UseAll
|
||||
import Dodge.PlacementSpot
|
||||
import Dodge.Data
|
||||
import Dodge.Tree
|
||||
@@ -70,15 +71,15 @@ lightSensByDoor outplid rm = rm
|
||||
covershape = rectNSEW 10 (-10) 20 (-20)
|
||||
sensorshift (p,a) = (p +.+ rotateV a (V2 60 (-20)), a)
|
||||
|
||||
keyCardRoomRunPast :: RandomGen g => Int -> Int -> State g (LabSubCompTree Room)
|
||||
keyCardRoomRunPast :: RandomGen g => Int -> Int -> State g (LabTree Room)
|
||||
keyCardRoomRunPast keyid rmid = do
|
||||
cenroom <- shuffleLinks $ keyCardAnalyserByDoor keyid rmid $ roomNgon 6 200
|
||||
let doorroom = triggerDoorRoom rmid
|
||||
return (treeFromTrunk [PassDown door] $ Node (PassDown cenroom)
|
||||
[ treeFromPost [PassDown doorroom] (UseAll door)
|
||||
, treeFromPost [PassDown door] (UseLabel 0 corridor)
|
||||
]
|
||||
,TreeSubLabelling "keyCardRoomRunPast" Nothing)
|
||||
return (toOnward "keyCardRoomRunPast",
|
||||
treeFromTrunk [door] $ Node (cenroom)
|
||||
[ treeFromPost [doorroom] (useAll door)
|
||||
, treeFromPost [door] (useLabel 0 corridor)
|
||||
])
|
||||
|
||||
keyCardAnalyserByDoor :: Int -> Int -> Room -> Room
|
||||
keyCardAnalyserByDoor keyid = analyserByDoor (RequireEquipment (KEYCARD keyid))
|
||||
@@ -102,31 +103,33 @@ analyserByDoor proxreq outplid rm = rm
|
||||
where
|
||||
sensorshift (p,a) = (p +.+ rotateV a (V2 30 (-10)), a)
|
||||
|
||||
healthTest :: RandomGen g => Int -> State g (SubCompTree Room)
|
||||
healthTest :: RandomGen g => Int -> State g (Tree Room)
|
||||
healthTest n = do
|
||||
cenroom <- shuffleLinks $ healthAnalyserByDoor n $ roomNgon 8 200
|
||||
let doorroom = triggerDoorRoom n
|
||||
return $ treeFromPost [PassDown door
|
||||
,PassDown $ corridor & rmPmnts .:~ spNoID (PS 20 0) (PutFlIt (medkit 100))
|
||||
,PassDown cenroom,PassDown doorroom] (UseAll door)
|
||||
return $ treeFromPost [door
|
||||
, corridor & rmPmnts .:~ spNoID (PS 20 0) (PutFlIt (medkit 100))
|
||||
, cenroom, doorroom]
|
||||
(useAll door)
|
||||
|
||||
lasSensorTurretTest :: RandomGen g => Int -> State g (LabSubCompTree Room)
|
||||
lasSensorTurretTest :: RandomGen g => Int -> State g (LabTree Room)
|
||||
lasSensorTurretTest n = do
|
||||
cenroom <- shuffleLinks $ lightSensInsideDoor n cenLasTur
|
||||
let doorroom = triggerDoorRoom n
|
||||
return ( treeFromPost [PassDown door,PassDown cenroom,PassDown doorroom] (UseAll door)
|
||||
, TreeSubLabelling "lasSensorTurretTest" Nothing
|
||||
return ( toOnward "lasSensorTurretTest"
|
||||
, treeFromPost [ door, cenroom, doorroom] (useAll door)
|
||||
)
|
||||
|
||||
lasCenSensEdge :: RandomGen g => Int -> State g (LabSubCompTree Room)
|
||||
lasCenSensEdge :: RandomGen g => Int -> State g (LabTree Room)
|
||||
lasCenSensEdge n = do
|
||||
cenroom <- shuffleLinks $ lightSensByDoor n cenLasTur
|
||||
let doorroom = triggerDoorRoom n
|
||||
return (treeFromTrunk [PassDown door] $ Node (PassDown cenroom)
|
||||
[ treeFromPost [PassDown doorroom] (UseAll door)
|
||||
, treeFromPost [PassDown door] (UseLabel 0 corridor)
|
||||
return (toOnward "lasCenSensEdge"
|
||||
, treeFromTrunk [ door] $ Node ( cenroom)
|
||||
[ treeFromPost [ doorroom] (useAll door)
|
||||
, treeFromPost [ door] (useLabel 0 corridor)
|
||||
]
|
||||
,TreeSubLabelling "lasCenSensEdge" Nothing)
|
||||
)
|
||||
|
||||
lasTunnel :: RandomGen g => Float -> State g Room
|
||||
lasTunnel y = do
|
||||
@@ -163,13 +166,14 @@ lasTunnel y = do
|
||||
]
|
||||
|
||||
-- a y value of 400 is probably "unrunnable"
|
||||
lasTunnelRunPast :: RandomGen g => Float -> State g (LabSubCompTree Room)
|
||||
lasTunnelRunPast :: RandomGen g => Float -> State g (LabTree Room)
|
||||
lasTunnelRunPast y = do
|
||||
r <- lasTunnel y
|
||||
r1 <- takeOne [door,corridor]
|
||||
r2 <- takeOne [door,corridor]
|
||||
return (Node (PassDown r)
|
||||
[ singleUseAll r1
|
||||
, return (UseLabel 0 $ r2 & rmConnectsTo .~ S.member InLink)
|
||||
return (toOnward "lasTunnelRunPast"
|
||||
, Node ( r)
|
||||
[ pure $ useAll r1
|
||||
, return (useLabel 0 $ r2 & rmConnectsTo .~ S.member InLink)
|
||||
]
|
||||
,TreeSubLabelling "lasTunnelRunPast" Nothing)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user