Cleanup
This commit is contained in:
@@ -15,14 +15,8 @@ addRandomGirderEW rm = do
|
|||||||
]
|
]
|
||||||
addgird rm
|
addgird rm
|
||||||
|
|
||||||
addRandomGirderFromWest :: RandomGen g => Int -> Room -> State g Room
|
|
||||||
addRandomGirderFromWest i rm = do
|
|
||||||
(h,col) <- takeOne [(96,black),(60,red)]
|
|
||||||
gtype <- takeOne [girder,girderZ,girderV]
|
|
||||||
addGirderFromWest i (gtype h 20 10) col rm
|
|
||||||
|
|
||||||
addRandomGirderFrom :: RandomGen g => CardinalPoint -> Int -> Room -> State g Room
|
addRandomGirderFrom :: RandomGen g => CardinalPoint -> Int -> Room -> State g Room
|
||||||
addRandomGirderFrom cp i rm = do
|
addRandomGirderFrom cp i rm = do
|
||||||
(h,col) <- takeOne [(96,black),(60,red)]
|
(h,col) <- takeOne [(96,black),(60,red)]
|
||||||
gtype <- takeOne [girder,girderZ,girderV]
|
gtype <- takeOne [girder,girderZ,girderV]
|
||||||
addGirderFrom cp i (gtype h 20 10) col rm
|
return $ addGirderFrom cp i (gtype h 20 10) col rm
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ module Dodge.Room.Modify.Girder
|
|||||||
, addGirderEW
|
, addGirderEW
|
||||||
, addGirderNS
|
, addGirderNS
|
||||||
, addGirderNS'
|
, addGirderNS'
|
||||||
, addGirderFromWest
|
|
||||||
) where
|
) where
|
||||||
--import Dodge.Data
|
--import Dodge.Data
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
@@ -39,31 +38,14 @@ addGirderNS shapef col room = do
|
|||||||
$ \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]
|
||||||
)
|
)
|
||||||
-- this can be cleaned up
|
|
||||||
addGirderFromWest :: RandomGen g => Int -> (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
|
||||||
addGirderFromWest fromwesti shapef col room = do
|
|
||||||
let nwestlnks = length $ filter ((OnEdge North `S.member`) . _rlType) $ _rmLinks room
|
|
||||||
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
|
||||||
(sps0 PutNothing : [ twoRoomPoss
|
|
||||||
(isUnusedLnkType (FromEdge West i))
|
|
||||||
(isUnusedLnkType (FromEdge West i))
|
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
|
||||||
| i <- [fromwesti]]
|
|
||||||
)
|
|
||||||
|
|
||||||
addGirderFrom :: RandomGen g => CardinalPoint -> Int
|
addGirderFrom :: CardinalPoint -> Int -> (Point2 -> Point2 -> Shape) -> Color -> Room -> Room
|
||||||
-> (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
addGirderFrom cp fromi shapef col = rmPmnts .:~ foldr1 setFallback
|
||||||
addGirderFrom cp fromi shapef col room = do
|
[ sps0 PutNothing
|
||||||
let nwestlnks = length $ filter ((OnEdge North `S.member`) . _rlType) $ _rmLinks room
|
, twoRoomPoss rmposcond rmposcond
|
||||||
girderPosOrder <- shuffle [0 .. nwestlnks - 1]
|
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2) ]
|
||||||
return $ room & rmPmnts .:~ foldr1 setFallback
|
where
|
||||||
(sps0 PutNothing : [ twoRoomPoss
|
rmposcond = isUnusedLnkType (FromEdge cp fromi)
|
||||||
(isUnusedLnkType (FromEdge cp i))
|
|
||||||
(isUnusedLnkType (FromEdge cp i))
|
|
||||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
|
||||||
| 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
|
||||||
addGirderNS' shapef col room = do
|
addGirderNS' shapef col room = do
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ roomC w h = do
|
|||||||
]
|
]
|
||||||
ntanks <- takeOne [0,0,0,0,0,1,1,1,1,2,3,4]
|
ntanks <- takeOne [0,0,0,0,0,1,1,1,1,2,3,4]
|
||||||
thetank <- randomTank <&> plSpot .~ unusedOffPathAwayFromLink 50
|
thetank <- randomTank <&> plSpot .~ unusedOffPathAwayFromLink 50
|
||||||
maybeaddgird <- takeOne [return, addRandomGirderFromWest 0, addRandomGirderFrom North 0]
|
maybeaddgird <- takeOne [return, addRandomGirderFrom West 0, addRandomGirderFrom North 0]
|
||||||
maybeaddgird =<< (shuffleLinks $ roomRectAutoLinks w h
|
maybeaddgird =<< (shuffleLinks $ roomRectAutoLinks w h
|
||||||
& rmLinks %~
|
& rmLinks %~
|
||||||
( (setInLinks (\rl -> S.fromList [(FromEdge East) 0,OnEdge South] `S.isSubsetOf` _rlType rl))
|
( (setInLinks (\rl -> S.fromList [(FromEdge East) 0,OnEdge South] `S.isSubsetOf` _rlType rl))
|
||||||
|
|||||||
Reference in New Issue
Block a user