Files
loop/src/Dodge/LockAndKey.hs
T
2021-12-02 18:29:46 +00:00

34 lines
990 B
Haskell

module Dodge.LockAndKey where
import Dodge.Data
import Dodge.Tree
import Dodge.LevelGen.Data
import Dodge.Room
import Dodge.RandomHelp
import Dodge.Creature
--import Dodge.Item.Equipment
import System.Random
import Control.Monad.State
-- (const $ return $ chainUses $ map singleUseAll [door,lasTunnel,door] , return FlatShield )
-- ,
lockRoomKeyItems :: RandomGen g => [ (Int -> State g (SubCompTree Room) , State g CombineType ) ]
lockRoomKeyItems =
[(lasCenSensEdge, takeOne [LAUNCHER] )
,(const slowDoorRoomRunPast, return MINIGUN)
]
itemRooms :: RandomGen g => [(CombineType, State g (SubCompTree Room))]
itemRooms =
[ (LAUNCHER , corridorBoss launcherCrit )
, (MINIGUN , join $ takeOne [roomMiniIntro, minigunFakeout] )
]
corridorBoss :: RandomGen g => Creature -> State g (SubCompTree Room)
corridorBoss cr = do
endroom <- bossRoom cr
return $ treeFromPost (replicate 5 $ PassDown corridor)
(PassDown endroom)