Files
loop/src/Dodge/LevelGen/LevelStructure.hs
T
2022-08-21 23:11:28 +01:00

31 lines
821 B
Haskell

module Dodge.LevelGen.LevelStructure (
module Dodge.LevelGen.PlacementHelper,
worldToGenWorld,
) where
import Color
import qualified Data.Map.Strict as M
import Dodge.Data.GenWorld
import Dodge.LevelGen.PlacementHelper
import qualified IntMapHelp as IM
import LensHelp
import RandomHelp
worldToGenWorld :: IM.IntMap Room -> World -> GenWorld
worldToGenWorld rms w =
GenWorld
{ _gwWorld = w & cWorld . cwGen . cwgParams .~ evalState generateGenParams (_randGen w)
, _genRooms = rms
, _genPlacements = mempty
}
generateGenParams :: RandomGen g => State g GenParams
generateGenParams = do
cols <- shuffle [RED .. ORANGE]
shps <- shuffle [PLUS ..]
return
. GenParams
. M.fromList
. zip [FLAMING, LASERING, ELECTRICAL]
$ zip cols shps