Cleanup
This commit is contained in:
@@ -15,14 +15,8 @@ addRandomGirderEW rm = do
|
||||
]
|
||||
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 cp i rm = do
|
||||
(h,col) <- takeOne [(96,black),(60,red)]
|
||||
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
|
||||
, addGirderNS
|
||||
, addGirderNS'
|
||||
, addGirderFromWest
|
||||
) where
|
||||
--import Dodge.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)
|
||||
| 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
|
||||
-> (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
||||
addGirderFrom cp fromi 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 cp i))
|
||||
(isUnusedLnkType (FromEdge cp i))
|
||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2)
|
||||
| i <- [fromi]]
|
||||
)
|
||||
addGirderFrom :: CardinalPoint -> Int -> (Point2 -> Point2 -> Shape) -> Color -> Room -> Room
|
||||
addGirderFrom cp fromi shapef col = rmPmnts .:~ foldr1 setFallback
|
||||
[ sps0 PutNothing
|
||||
, twoRoomPoss rmposcond rmposcond
|
||||
$ \ps1 ps2 -> sps0 $ PutShape $ colorSH col $ shapef (_psPos ps1) (_psPos ps2) ]
|
||||
where
|
||||
rmposcond = isUnusedLnkType (FromEdge cp fromi)
|
||||
-- | Allows girder to be on edge
|
||||
addGirderNS' :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
||||
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]
|
||||
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
|
||||
& rmLinks %~
|
||||
( (setInLinks (\rl -> S.fromList [(FromEdge East) 0,OnEdge South] `S.isSubsetOf` _rlType rl))
|
||||
|
||||
Reference in New Issue
Block a user