Start to implement lock and key system
This commit is contained in:
+14
-7
@@ -6,10 +6,12 @@ import Picture
|
||||
import Dodge.Data
|
||||
import Dodge.Room
|
||||
import Dodge.Room.Procedural
|
||||
import Dodge.Room.RoadBlock
|
||||
import Dodge.Room.Data
|
||||
import Dodge.Room.Link
|
||||
import Dodge.Room.Door
|
||||
import Dodge.Room.Branch
|
||||
import Dodge.Room.Boss
|
||||
import Dodge.Base
|
||||
import Dodge.Layout
|
||||
import Dodge.Layout.Tree.Polymorphic
|
||||
@@ -22,6 +24,7 @@ import Dodge.SoundLogic
|
||||
import Dodge.RandomHelp
|
||||
import Dodge.LightSources
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.Item.Weapon
|
||||
|
||||
import Data.Tree
|
||||
import Data.Maybe (fromJust,isNothing)
|
||||
@@ -33,15 +36,18 @@ import System.Random
|
||||
roomTreex :: RandomGen g => State g (Maybe [Room])
|
||||
roomTreex = do
|
||||
struct' <- aTreeStrut
|
||||
-- let struct = treePost [[SpecificRoom $ fmap (pure . Right) pistolerRoom]] [EndRoom]
|
||||
let struct = treePost [[SpecificRoom $ fmap (pure . Right) testRoom]] [EndRoom]
|
||||
-- let struct = treeFromPost [[SpecificRoom $ fmap (pure . Right) pistolerRoom]] [EndRoom]
|
||||
let struct = treeFromPost [[SpecificRoom $ fmap (pure . Right) testRoom]] [EndRoom]
|
||||
let t' = padCorridors struct
|
||||
t = treeTrunk
|
||||
t = treeFromTrunk
|
||||
[[StartRoom]
|
||||
,[Corridor]
|
||||
,[BossAno $ addArmour launcherCrit & crHP +~ 800
|
||||
& crState . crDropsOnDeath .~ DropSpecific [0]
|
||||
]
|
||||
,[SpecificRoom $ fmap (pure . Right) armouredCorridor]
|
||||
,[Corridor]
|
||||
,[TreasureAno [addArmour autoCrit,addArmour autoCrit] [launcher]]
|
||||
-- ,[BossAno $ addArmour launcherCrit & crHP +~ 800
|
||||
-- & crState . crDropsOnDeath .~ DropSpecific [0]
|
||||
-- ]
|
||||
,[Corridor]
|
||||
,[OrAno [[DoorAno]
|
||||
,[Corridor]
|
||||
@@ -49,6 +55,7 @@ roomTreex = do
|
||||
]
|
||||
,[FirstWeapon]
|
||||
,[Corridor]
|
||||
,[SpecificRoom $ branchRectWith $ fmap (pure . Left) armouredChasers]
|
||||
]
|
||||
t'
|
||||
fmap (shiftExpandTree . expandTreeBy id) $ mapM annoToRoomTree t
|
||||
@@ -60,7 +67,7 @@ lev1' :: RandomGen g => State g (Tree Room)
|
||||
lev1' = do
|
||||
firstWeapon <- takeOne $ [[branchRectWith weaponRoom,blockedCorridor]] ++ replicate 5 [weaponRoom]
|
||||
iterateWhile boundClip $ fmap (shiftRoomTree . expandTreeBy id)
|
||||
$ sequence $ treePost
|
||||
$ sequence $ treeFromPost
|
||||
(
|
||||
[return $ return $ Right deadEndRoom
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user