Cleanup
This commit is contained in:
+1
-4
@@ -1493,10 +1493,7 @@ data RoomLinkType
|
|||||||
| InLink
|
| InLink
|
||||||
| LabLink Int
|
| LabLink Int
|
||||||
| OnEdge CardinalPoint
|
| OnEdge CardinalPoint
|
||||||
| FromSouth Int
|
| FromEdge CardinalPoint Int
|
||||||
| FromNorth Int
|
|
||||||
| FromWest Int
|
|
||||||
| FromEast Int
|
|
||||||
| BlockedLink
|
| BlockedLink
|
||||||
deriving (Eq,Ord,Show)
|
deriving (Eq,Ord,Show)
|
||||||
data CardinalPoint
|
data CardinalPoint
|
||||||
|
|||||||
+2
-1
@@ -41,10 +41,11 @@ initialAnoTree = OnwardList
|
|||||||
$ intersperse (AnTree $ tToBTree "cori" . pure <$> shuffleLinks (cleatOnward corridor))
|
$ intersperse (AnTree $ tToBTree "cori" . pure <$> shuffleLinks (cleatOnward corridor))
|
||||||
[ IntAnno $ AnTree . startRoom
|
[ IntAnno $ AnTree . startRoom
|
||||||
-- , (SpecificRoom . return . tToBTree $ treePost [corridor,corridor,cleatOnward corridor])
|
-- , (SpecificRoom . return . tToBTree $ treePost [corridor,corridor,cleatOnward corridor])
|
||||||
, AnRoom $ roomCCrits 10
|
, AnRoom $ pistolerRoom
|
||||||
, AnRoom doubleCorridorBarrels
|
, AnRoom doubleCorridorBarrels
|
||||||
, IntAnno $ PassthroughLockKeyLists
|
, IntAnno $ PassthroughLockKeyLists
|
||||||
[(sensorRoomRunPast ELECTRICAL, takeOne [STATICMODULE,SPARKGUN] )] itemRooms
|
[(sensorRoomRunPast ELECTRICAL, takeOne [STATICMODULE,SPARKGUN] )] itemRooms
|
||||||
|
, AnRoom $ roomCCrits 10
|
||||||
, IntAnno $ PassthroughLockKeyLists keyCardRunPastRand itemRooms
|
, IntAnno $ PassthroughLockKeyLists keyCardRunPastRand itemRooms
|
||||||
, IntAnno $ AnTree . warningRooms
|
, IntAnno $ AnTree . warningRooms
|
||||||
, AnTree $ rToOnward "chaseCrit+armourChaseCrit rectRoom"
|
, AnTree $ rToOnward "chaseCrit+armourChaseCrit rectRoom"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ glassLesson = do
|
|||||||
, treeFromPost ( (door & rmConnectsTo .~ S.member (OnEdge East))
|
, treeFromPost ( (door & rmConnectsTo .~ S.member (OnEdge East))
|
||||||
: corridors) $ cleatOnward door]
|
: corridors) $ cleatOnward door]
|
||||||
where
|
where
|
||||||
fromWest edge i s = S.member (OnEdge edge) s && S.member (FromWest i) s
|
fromWest edge i s = S.member (OnEdge edge) s && S.member ((FromEdge West) i) s
|
||||||
uppers = Node (door & rmConnectsTo .~ fromWest North 0) [pure topRoom]
|
uppers = Node (door & rmConnectsTo .~ fromWest North 0) [pure topRoom]
|
||||||
botRoom = roomRect 200 200 1 1
|
botRoom = roomRect 200 200 1 1
|
||||||
& rmPmnts .~ botplmnts
|
& rmPmnts .~ botplmnts
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ addGirderNS shapef col room = do
|
|||||||
girderPosOrder <- shuffle [1 .. nwestlnks - 2]
|
girderPosOrder <- shuffle [1 .. nwestlnks - 2]
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
return $ room & rmPmnts .:~ foldr1 setFallback
|
||||||
(sps0 PutNothing : [ twoRoomPoss
|
(sps0 PutNothing : [ twoRoomPoss
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge West i))
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge West i))
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
||||||
| i <- girderPosOrder]
|
| i <- girderPosOrder]
|
||||||
)
|
)
|
||||||
@@ -46,23 +46,23 @@ addGirderFromWest fromwesti shapef col room = do
|
|||||||
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
return $ room & rmPmnts .:~ foldr1 setFallback
|
||||||
(sps0 PutNothing : [ twoRoomPoss
|
(sps0 PutNothing : [ twoRoomPoss
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge West i))
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge West i))
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
||||||
| i <- [fromwesti]]
|
| i <- [fromwesti]]
|
||||||
)
|
)
|
||||||
|
|
||||||
addGirderFrom :: RandomGen g => CardinalPoint -> Int
|
addGirderFrom :: RandomGen g => CardinalPoint -> Int
|
||||||
-> (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
-> (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
||||||
addGirderFrom cp fromwesti shapef col room = do
|
addGirderFrom cp fromi shapef col room = do
|
||||||
let nwestlnks = length $ filter ((OnEdge North `S.member`) . _rlType) $ _rmLinks room
|
let nwestlnks = length $ filter ((OnEdge North `S.member`) . _rlType) $ _rmLinks room
|
||||||
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
return $ room & rmPmnts .:~ foldr1 setFallback
|
||||||
(sps0 PutNothing : [ twoRoomPoss
|
(sps0 PutNothing : [ twoRoomPoss
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge cp i))
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge cp i))
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
||||||
| i <- [fromwesti]]
|
| i <- [fromi]]
|
||||||
)
|
)
|
||||||
-- | Allows girder to be on edge
|
-- | Allows girder to be on edge
|
||||||
addGirderNS' :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
addGirderNS' :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
||||||
@@ -71,8 +71,8 @@ addGirderNS' shapef col room = do
|
|||||||
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
return $ room & rmPmnts .:~ foldr1 setFallback
|
||||||
(sps0 PutNothing : [ twoRoomPoss
|
(sps0 PutNothing : [ twoRoomPoss
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge West i))
|
||||||
(isUnusedLnkType (FromWest i))
|
(isUnusedLnkType (FromEdge West i))
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
||||||
| i <- girderPosOrder]
|
| i <- girderPosOrder]
|
||||||
)
|
)
|
||||||
@@ -83,8 +83,8 @@ addGirderEW shapef col room = do
|
|||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
return $ room & rmPmnts .:~ foldr1 setFallback
|
||||||
(sps0 PutNothing :
|
(sps0 PutNothing :
|
||||||
[ twoRoomPoss
|
[ twoRoomPoss
|
||||||
(isUnusedLnkType (FromSouth i))
|
(isUnusedLnkType (FromEdge South i))
|
||||||
(isUnusedLnkType (FromSouth i))
|
(isUnusedLnkType (FromEdge South i))
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
||||||
| i <- girderPosOrder]
|
| i <- girderPosOrder]
|
||||||
)
|
)
|
||||||
@@ -94,8 +94,8 @@ addGirder :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> Stat
|
|||||||
addGirder shapef col room = do
|
addGirder shapef col room = do
|
||||||
let nslnks = length $ filter ((OnEdge North `S.member`) . _rlType) $ _rmLinks room
|
let nslnks = length $ filter ((OnEdge North `S.member`) . _rlType) $ _rmLinks room
|
||||||
ewlnks = length $ filter ((OnEdge East `S.member`) . _rlType) $ _rmLinks room
|
ewlnks = length $ filter ((OnEdge East `S.member`) . _rlType) $ _rmLinks room
|
||||||
nsgirds = girdson FromEast nslnks
|
nsgirds = girdson (FromEdge East) nslnks
|
||||||
ewgirds = girdson FromNorth ewlnks
|
ewgirds = girdson (FromEdge North) ewlnks
|
||||||
girders <- shuffle $ nsgirds ++ ewgirds
|
girders <- shuffle $ nsgirds ++ ewgirds
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
return $ room & rmPmnts .:~ foldr1 setFallback
|
||||||
(sps0 PutNothing : girders)
|
(sps0 PutNothing : girders)
|
||||||
|
|||||||
@@ -78,10 +78,10 @@ roomRect x y xn yn = defaultRoom
|
|||||||
elnks = somelnks (V2 x 20) (gridPoints 0 1 yd (yn+1)) (-pi/2)
|
elnks = somelnks (V2 x 20) (gridPoints 0 1 yd (yn+1)) (-pi/2)
|
||||||
nlnks = somelnks (V2 20 y) (gridPoints xd (xn+1) 0 1 ) 0
|
nlnks = somelnks (V2 20 y) (gridPoints xd (xn+1) 0 1 ) 0
|
||||||
slnks = somelnks (V2 20 0) (gridPoints xd (xn+1) 0 1 ) pi
|
slnks = somelnks (V2 20 0) (gridPoints xd (xn+1) 0 1 ) pi
|
||||||
lnks = m North FromWest FromEast nlnks
|
lnks = m North (FromEdge West) (FromEdge East) nlnks
|
||||||
++ m East FromSouth FromNorth elnks
|
++ m East (FromEdge South) (FromEdge North) elnks
|
||||||
++ m West FromSouth FromNorth wlnks
|
++ m West (FromEdge South) (FromEdge North) wlnks
|
||||||
++ m South FromWest FromEast slnks
|
++ m South (FromEdge West) (FromEdge East) slnks
|
||||||
m edge edgefrom1 edgefrom2 = zipWith (lnkBothAnd (OnEdge edge) edgefrom1 edgefrom2) [0..]
|
m edge edgefrom1 edgefrom2 = zipWith (lnkBothAnd (OnEdge edge) edgefrom1 edgefrom2) [0..]
|
||||||
. zipCountDown
|
. zipCountDown
|
||||||
pth = linksAndPath' lnks $ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn)
|
pth = linksAndPath' lnks $ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn)
|
||||||
|
|||||||
+8
-12
@@ -5,6 +5,7 @@ module Dodge.Room.Room
|
|||||||
, roomMiniIntro
|
, roomMiniIntro
|
||||||
, roomCCrits
|
, roomCCrits
|
||||||
, doubleCorridorBarrels
|
, doubleCorridorBarrels
|
||||||
|
, pistolerRoom
|
||||||
) where
|
) where
|
||||||
import Dodge.UseAll
|
import Dodge.UseAll
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
@@ -46,7 +47,7 @@ roomC w h = do
|
|||||||
maybeaddgird <- takeOne [return, addRandomGirderFromWest 0, addRandomGirderFrom North 0]
|
maybeaddgird <- takeOne [return, addRandomGirderFromWest 0, addRandomGirderFrom North 0]
|
||||||
maybeaddgird =<< (shuffleLinks $ roomRectAutoLinks w h
|
maybeaddgird =<< (shuffleLinks $ roomRectAutoLinks w h
|
||||||
& rmLinks %~
|
& rmLinks %~
|
||||||
( (setInLinks (\rl -> S.fromList [FromEast 0,OnEdge South] `S.isSubsetOf` _rlType rl))
|
( (setInLinks (\rl -> S.fromList [(FromEdge East) 0,OnEdge South] `S.isSubsetOf` _rlType rl))
|
||||||
. (setOutLinks (\rl -> OnEdge West `S.member` _rlType rl))
|
. (setOutLinks (\rl -> OnEdge West `S.member` _rlType rl))
|
||||||
)
|
)
|
||||||
& rmPmnts .++~ (wl : replicate ntanks thetank)
|
& rmPmnts .++~ (wl : replicate ntanks thetank)
|
||||||
@@ -306,7 +307,7 @@ pillarGrid :: RandomGen g => State g Room
|
|||||||
pillarGrid = do
|
pillarGrid = do
|
||||||
let f2 x y = singleBlock (V2 x y)
|
let f2 x y = singleBlock (V2 x y)
|
||||||
f <- takeOne [f2]
|
f <- takeOne [f2]
|
||||||
h <- state $ randomR (400,800)
|
h <- state $ randomR (200,400)
|
||||||
let w = h
|
let w = h
|
||||||
i <- takeOne [3,4,5]
|
i <- takeOne [3,4,5]
|
||||||
let j = fromIntegral i
|
let j = fromIntegral i
|
||||||
@@ -326,22 +327,17 @@ pillarGrid = do
|
|||||||
-- cornerRestrict (V2 x y,_)
|
-- cornerRestrict (V2 x y,_)
|
||||||
-- = (x > 40 && x < h - 40)
|
-- = (x > 40 && x < h - 40)
|
||||||
-- || (y > 40 && y < h - 40)
|
-- || (y > 40 && y < h - 40)
|
||||||
let plmnts = replicate 8 (mntLightLnkCond useUnusedLnk)
|
let plmnts = replicate 8 (mntLightLnkCond useUnusedLnk) ++ concat [f x y | x<-xs,y<-ys]
|
||||||
++
|
|
||||||
concat [f x y | x<-xs,y<-ys]
|
|
||||||
return $ roomRect w h (max i 2) (max i 2)
|
return $ roomRect w h (max i 2) (max i 2)
|
||||||
& rmPmnts .~ plmnts
|
& rmPmnts .~ plmnts
|
||||||
& rmRandPSs .~ [rps]
|
& rmRandPSs .~ [rps]
|
||||||
|
|
||||||
-- TODO remove possible identical draws on random PSs
|
-- TODO remove possible identical draws on random PSs
|
||||||
pistolerRoom :: RandomGen g => State g Room
|
pistolerRoom :: RandomGen g => State g Room
|
||||||
pistolerRoom = pillarGrid
|
pistolerRoom = pillarGrid <&> rmPmnts .++~
|
||||||
<&> rmPmnts %~ (
|
replicate 3
|
||||||
[spNoID (PSRoomRand 0 (uncurry PS)) (PutCrit pistolCrit)
|
(spNoID (rprBool $ \rp _ -> _rpPlacementUse rp == 0 && RoomPosOnPath `S.member` _rpType rp)
|
||||||
,spNoID (PSRoomRand 0 (uncurry PS)) (PutCrit pistolCrit)
|
(PutCrit pistolCrit))
|
||||||
,spNoID (PSRoomRand 0 (uncurry PS)) (PutCrit pistolCrit)
|
|
||||||
]
|
|
||||||
++)
|
|
||||||
|
|
||||||
shootingRange :: RandomGen g => State g (MetaTree Room String)
|
shootingRange :: RandomGen g => State g (MetaTree Room String)
|
||||||
shootingRange = do
|
shootingRange = do
|
||||||
|
|||||||
Reference in New Issue
Block a user