Redo tree composition
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module Dodge.Room.BlinkAcross where
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.PlacementSpot
|
||||
import Dodge.UseAll
|
||||
import Dodge.Data
|
||||
import Dodge.Tree
|
||||
--import Dodge.RoomLink
|
||||
@@ -38,8 +39,9 @@ blinkAcrossChallenge = do
|
||||
teleFromRoom <- shuffleLinks $ roomRectAutoLinks 200 200
|
||||
teleToRoom <- shuffleLinks $ roomRectAutoLinks 200 200
|
||||
emptylink <- shuffleLinks emptyCorridor
|
||||
return (treeFromPost [ teleFromRoom, emptylink] (useAll teleToRoom)
|
||||
, TreeSubLabelling "blinkAcrossChallenge" Nothing)
|
||||
return (toOnward "blinkAcrossChallenge"
|
||||
,treeFromPost [ teleFromRoom, emptylink] (useAll teleToRoom)
|
||||
)
|
||||
|
||||
emptyCorridor :: Room
|
||||
emptyCorridor = corridor & rmPolys .~ []
|
||||
|
||||
@@ -6,6 +6,7 @@ module Dodge.Room.Branch
|
||||
--import Geometry
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.Data
|
||||
import Dodge.UseAll
|
||||
import Dodge.Room.Door
|
||||
import Dodge.Room.Link
|
||||
import Dodge.Room.Procedural
|
||||
@@ -23,5 +24,5 @@ branchRectWith t = do
|
||||
rt <- shuffleLinks $ roomRectAutoLinks x y
|
||||
return $ Node ( rt)
|
||||
[ Node (useAll door) []
|
||||
, changeTo <$> treeFromTrunk [ door] b
|
||||
, useSide <$> treeFromTrunk [ door] b
|
||||
]
|
||||
|
||||
@@ -25,6 +25,14 @@ roomsContaining crs its = do
|
||||
++ "-items:" ++ intercalate "," (map (show . _iyBase . _itType) its))
|
||||
, pure $ useAll endroom
|
||||
)
|
||||
roomsContaining' :: RandomGen g => [Creature] -> [Item] -> State g (Tree Room)
|
||||
roomsContaining' crs its = do
|
||||
endroom <- join $ takeOne
|
||||
[ randomFourCornerRoomCrsIts crs its
|
||||
, tanksRoom crs its
|
||||
]
|
||||
return (pure $ useAll endroom
|
||||
)
|
||||
|
||||
pedestalRoom :: RandomGen g => Item -> State g Room
|
||||
pedestalRoom it = do
|
||||
|
||||
+18
-17
@@ -49,27 +49,27 @@ powerFakeout = do
|
||||
`treeFromPost` useAll door
|
||||
|
||||
startRoom :: RandomGen g => Int -> State g (LabTree Room)
|
||||
startRoom i = join (uncurry takeOneWeighted $ unzip
|
||||
startRoom i = join (takeOne $
|
||||
[-- (,) (0.5::Float) ((chainUses <$> sequence [powerFakeout,fmap fst $weaponRoom i])
|
||||
-- <&> (,TreeSubLabelling "chainUses <$> sequence [powerFakeout,weaponRoom i]" Nothing))
|
||||
-- wat
|
||||
(,) one (rezBoxesWp <&> (toOnward "rezBoxesWp",))
|
||||
, (,) one (rezBoxThenWeaponRoom i)
|
||||
, (,) one (rezBoxesWpCrit <&> (toOnward "rezBoxesWpCrit"))
|
||||
, (,) one (runPastStart i <&> (toOnward ("runPastStart " ++ show i)))
|
||||
, (,) one (startCrafts >>= roomsContaining' [] >>= rezBoxThenRooms <&>
|
||||
(toOnward "startCrafts >>= roomsContaining [] >>= rezBoxThenRooms"))
|
||||
(rezBoxesWp <&> (toOnward "rezBoxesWp",))
|
||||
, (rezBoxThenWeaponRoom i)
|
||||
, (rezBoxesWpCrit <&> (toOnward "rezBoxesWpCrit",))
|
||||
, (runPastStart i <&> (toOnward ("runPastStart " ++ show i),))
|
||||
-- , ((startCrafts >>= roomsContaining' [] >>= rezBoxThenRooms) <&>
|
||||
-- (toOnward "startCrafts >>= roomsContaining [] >>= rezBoxThenRooms",))
|
||||
])
|
||||
<&> over (_2 . topLabel) ("startRoom:"++)
|
||||
where
|
||||
roomsContaining' a b = fst <$> roomsContaining a b
|
||||
one = 1::Float
|
||||
randomChallenges :: RandomGen g => State g (LabTree Room)
|
||||
randomChallenges = join (takeOne
|
||||
[fmap (return . useAll) doubleCorridorBarrels <&> (,TreeSubLabelling "doubleCorridorBarrels" Nothing)
|
||||
,shootingRange
|
||||
,fmap (return . useAll) twinSlowDoorChasers <&> (,TreeSubLabelling "twinSlowDoorChasers" Nothing)
|
||||
]) <&> over (_2 . topLabel) ("randomChallenges:"++)
|
||||
randomChallenges = shootingRange
|
||||
-- join (takeOne
|
||||
-- [fmap (return . useAll) doubleCorridorBarrels <&> (,TreeSubLabelling "doubleCorridorBarrels" Nothing)
|
||||
-- ,shootingRange
|
||||
-- ,fmap (return . useAll) twinSlowDoorChasers <&> (,TreeSubLabelling "twinSlowDoorChasers" Nothing)
|
||||
-- ]) -- <&> over (_2 . topLabel) ("randomChallenges:"++)
|
||||
|
||||
runPastStart :: RandomGen g => Int -> State g (Tree Room)
|
||||
runPastStart i = do
|
||||
@@ -85,15 +85,16 @@ rezBoxStart = do
|
||||
rezBoxesThenWeaponRoom :: RandomGen g => Int -> State g (Tree Room,String)
|
||||
rezBoxesThenWeaponRoom i = do
|
||||
rboxes <- rezBoxes
|
||||
wroom <- fst <$> weaponRoom i
|
||||
wroom <- snd <$> weaponRoom i
|
||||
return (rboxes `passUntiluseAll` [wroom] , "rezBoxesThenWeaponRoom " ++ show i)
|
||||
|
||||
rezBoxThenWeaponRoom :: RandomGen g => Int -> State g (LabTree Room)
|
||||
rezBoxThenWeaponRoom i = do
|
||||
rcol <- rezColor
|
||||
(wroom,wroomname) <- weaponRoom i
|
||||
return (treeFromTrunk [ rezBox rcol, door] wroom
|
||||
, TreeSubLabelling ("rezBoxThenWeaponRoom "++ show i) (Just $ return wroomname))
|
||||
(_,wroom) <- weaponRoom i
|
||||
return (toOnward ("rezBoxThenWeaponRoom "++ show i)
|
||||
, treeFromTrunk [ rezBox rcol, door] wroom
|
||||
)
|
||||
|
||||
rezBoxThenRoom :: RandomGen g => Room -> State g (Tree Room)
|
||||
rezBoxThenRoom r = do
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
--{-# LANGUAGE TupleSections #-}
|
||||
module Dodge.Room.Warning where
|
||||
import Dodge.UseAll
|
||||
import Dodge.Terminal
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.PlacementSpot
|
||||
|
||||
Reference in New Issue
Block a user