Add rooms, placements and room positions
This commit is contained in:
+29
-9
@@ -24,32 +24,52 @@ itemRooms :: RandomGen g => [(CombineType, State g (SubCompTree Room))]
|
||||
itemRooms =
|
||||
[ (LAUNCHER , join $ takeOne
|
||||
[corridorBoss launcherCrit
|
||||
,roomsContaining $ map makeTypeCraft [TUBE,TUBE,HARDWARE]
|
||||
, rc $ map makeTypeCraft [TUBE,TUBE,HARDWARE]
|
||||
]
|
||||
)
|
||||
, (MINIGUN , join $ takeOne [roomMiniIntro, minigunFakeout] )
|
||||
, (LASGUN , join $ takeOne
|
||||
[roomsContaining $ map makeTypeCraft [PRISM,PIPE,PIPE,HARDWARE]
|
||||
[rc $ map makeTypeCraft [PRISM,PIPE,PIPE,HARDWARE]
|
||||
]
|
||||
)
|
||||
, (SPARKGUN , join $ takeOne
|
||||
[roomsContaining $ map makeTypeCraft [TRANSFORMER,CAN,CAN]
|
||||
[rc $ map makeTypeCraft [TRANSFORMER,CAN,CAN]
|
||||
]
|
||||
)
|
||||
, (FLATSHIELD , join $ takeOne
|
||||
[roomsContaining $ map makeTypeCraft [PLATE,PLATE]
|
||||
,roomsContaining $ map makeTypeCraft [DRUM,DRUM,PLATE]
|
||||
[rc $ map makeTypeCraft [PLATE,PLATE]
|
||||
,rc $ map makeTypeCraft [DRUM,DRUM,PLATE]
|
||||
]
|
||||
)
|
||||
, (SNIPERRIFLE , join $ takeOne
|
||||
[roomsContaining [sniperRifle]
|
||||
[rc [sniperRifle]
|
||||
]
|
||||
)
|
||||
]
|
||||
where
|
||||
rc its = do
|
||||
sc <- someCrits
|
||||
roomsContaining sc its
|
||||
|
||||
roomsContaining :: RandomGen g => [Item] -> State g (SubCompTree Room)
|
||||
roomsContaining its = do
|
||||
endroom <- randomFourCornerRoom its
|
||||
someCrits :: RandomGen g => State g [Creature]
|
||||
someCrits = do
|
||||
nCrits <- state $ randomR (1,3)
|
||||
fmap (take nCrits) . shuffle $ [spreadGunCrit,pistolCrit,autoCrit,armourChaseCrit]
|
||||
++ replicate 20 chaseCrit
|
||||
|
||||
|
||||
--addcrits :: RandomGen g => [Item] -> State g (SubCompTree Room)
|
||||
--addcrits its = do
|
||||
-- nCrits <- state $ randomR (1,3)
|
||||
-- crits <- takeN nCrits <=< shuffle $ fmap PutCrit $ [spreadGunCrit,pistolCrit,autoCrit,armourChaseCrit]
|
||||
-- return $ roomsContaining crits its
|
||||
|
||||
roomsContaining :: RandomGen g => [Creature] -> [Item] -> State g (SubCompTree Room)
|
||||
roomsContaining crs its = do
|
||||
endroom <- join $ takeOne
|
||||
[ randomFourCornerRoomCrsIts crs its
|
||||
, tanksRoom crs its
|
||||
]
|
||||
return $ treeFromPost [] $ PassDown endroom
|
||||
|
||||
corridorBoss :: RandomGen g => Creature -> State g (SubCompTree Room)
|
||||
|
||||
Reference in New Issue
Block a user