This commit is contained in:
2022-06-10 23:10:38 +01:00
parent 6966e76206
commit ad576014fb
8 changed files with 41 additions and 37 deletions
+13 -15
View File
@@ -2,7 +2,7 @@ module Dodge.Room.RunPast where
import Dodge.UseAll
import Dodge.LevelGen.Data
import Dodge.LightSource
import Dodge.RoomLink
--import Dodge.RoomLink
import Dodge.Data
--import Dodge.Default
--import Dodge.Layout.Tree.Either
@@ -44,26 +44,24 @@ critRoom = corridorWallN & rmRandPSs .~ [psRandRanges (15,25) (30,45) (pi,2*pi)]
runPastRoom :: RandomGen g => Int -> State g (Tree Room)
runPastRoom i = do
h <- state $ randomR (200,400::Float)
theedgetest <- takeOne [horEdgeTest (<1), horEdgeTest (>39)]
thels <- roomCritLS
theweapon <- randBlockBreakWeapon
cenroom <- shuffleLinks $ restrictRMInLinksPD (\(V2 _ y,_) -> y < 1)
$ roomRectAutoLinks 40 h & rmPmnts .~ [plRRpt 0 (PutFlIt theweapon)]
theedge <- takeOne [West,East]
--let cenroom = filterSortOutLinksOn theedgetest ((\(V2 a b) -> (a,b)) . fst)
h <- state $ randomR (200,400::Float)
thels <- roomCritLS
theweapon <- randBlockBreakWeapon
--cenroom <- shuffleLinks $ restrictRMInLinksPD (\(V2 _ y,_) -> y < 1)
cenroom <- shuffleLinks
$ roomRectAutoLinks 40 h & rmPmnts .~ [plRRpt 0 (PutFlIt theweapon)]
theedge <- takeOne $ map OnEdge [West,East]
let linkcor = critRoom & rmPmnts .~ [ spanLS thels (V2 0 65) (V2 40 65) ]
critroom = linkcor & rmPmnts .:~ plRRpt 0 randC1
aswitchroom = corridorWallN
{_rmOutPmnt = [OutPlacement (putLitButOnPosExtTrig red useUnusedLnk) i]
,_rmPmnts = []
}
switchdoor = triggerDoorRoom i
n = length $ filter theedgetest $ map lnkPosDir $ _rmLinks cenroom
switchdoor = triggerDoorRoom i
n = length $ filter (elem theedge . _rlType) $ _rmLinks cenroom
controom = treeFromPost [ switchdoor, linkcor,corridor,corridor] (useAll door)
critrooms :: [Tree Room]
critrooms = treeFromPost [ switchdoor] critroom
doorrooms = treeFromPost [ switchdoor] critroom
: replicate (n-2) (treeFromPost [ switchdoor] linkcor)
return $ Node cenroom $
map (over root $ rmConnectsTo .~ S.member (OnEdge theedge)) (controom : critrooms)
return $ Node cenroom $
map (over root $ rmConnectsTo .~ S.member theedge) (controom : doorrooms)
++ [return aswitchroom]