Cleanup
This commit is contained in:
@@ -21,7 +21,5 @@ branchRectWith t = do
|
||||
y <- state $ randomR (100,200)
|
||||
b <- t
|
||||
root <- randomiseOutLinks $ roomRectAutoLinks x y
|
||||
return $ Node (PassDown root) [Node (UseAll door) [], rToL <$> treeFromTrunk [PassDown door] b]
|
||||
where
|
||||
rToL (UseAll r) = PassDown r
|
||||
rToL (PassDown r) = PassDown r
|
||||
return $ Node (PassDown root) [Node (UseAll door) [], changeToPassDown <$>
|
||||
treeFromTrunk [PassDown door] b]
|
||||
|
||||
@@ -14,7 +14,6 @@ import Dodge.RandomHelp
|
||||
import Dodge.Creature
|
||||
import Dodge.Tree
|
||||
|
||||
import Data.Tree
|
||||
import Control.Monad.State
|
||||
import Control.Lens
|
||||
import System.Random
|
||||
|
||||
+13
-21
@@ -77,7 +77,7 @@ glassLesson = do
|
||||
corridors <- replicateM i $ PassDown <$> randomiseOutLinks corridor
|
||||
return $ Node (PassDown botRoom) [singleUseNone door,uppers, treeFromPost (PassDown door : corridors) $ UseAll door]
|
||||
where
|
||||
uppers = Node (PassDown door) [deadRoom topRoom]
|
||||
uppers = Node (PassDown door) [singleUseNone topRoom]
|
||||
botRoom = set rmPmnts botplmnts $ roomRect 200 200 1 1
|
||||
topRoom = set rmPmnts topplmnts $ roomRect 200 200 1 1
|
||||
botplmnts =
|
||||
@@ -171,7 +171,7 @@ miniRoom3 = do
|
||||
,sPS cp (pi/8+7*pi/4) b
|
||||
,sPS (V2 (w/2) (h/2)) 0 putLamp
|
||||
]
|
||||
fmap connectRoom $ randomiseOutLinks $ set rmPmnts plmnts $ roomRectAutoLinks w h
|
||||
fmap singleUseAll $ randomiseOutLinks $ set rmPmnts plmnts $ roomRectAutoLinks w h
|
||||
|
||||
rot90Around :: Point2 -> Point2 -> Point2
|
||||
rot90Around cen p = cen +.+ vNormal (p -.- cen)
|
||||
@@ -179,17 +179,9 @@ rot90Around cen p = cen +.+ vNormal (p -.- cen)
|
||||
-- So, the idea is to attach outer children to the bottommost right nodes
|
||||
-- inside an inner tree
|
||||
roomMiniIntro :: RandomGen g => State g (SubCompTree Room)
|
||||
roomMiniIntro = fmap (g . expandTreeBy f) $ sequence $ treeFromPost
|
||||
[return $ connectRoom door
|
||||
,join $ takeOne [miniTree2,glassLesson]
|
||||
]
|
||||
$ connectRoom <$> randomiseOutLinks corridor
|
||||
where
|
||||
f (Node (UseAll x) xs) = Node (UseAll (UseAll x)) $ map f xs
|
||||
f (Node (PassDown x) xs) = Node (PassDown (PassDown x)) $ map f xs
|
||||
g (Node (UseAll x) []) = Node (UseAll x) []
|
||||
g (Node (UseAll x) xs) = Node (PassDown x) $ map g xs
|
||||
g (Node y ys) = Node y $ map g ys
|
||||
roomMiniIntro = do
|
||||
midroom <- join $ takeOne [miniTree2,glassLesson]
|
||||
return $ chainUses $ [return $ UseAll door, midroom,return $ UseAll corridor]
|
||||
|
||||
roomCenterPillar :: RandomGen g => State g Room
|
||||
roomCenterPillar = changeLinkTo ((\p -> dist p (V2 120 0) < 10) . fst)
|
||||
@@ -272,7 +264,7 @@ weaponEmptyRoom = do
|
||||
,mntLightLnkCond unusedLnkToPS
|
||||
]
|
||||
treeFromTrunk [PassDown corridor]
|
||||
<$> ((fmap connectRoom . randomiseOutLinks) =<<
|
||||
<$> ((fmap singleUseAll . randomiseOutLinks) =<<
|
||||
changeLinkTo ((\p -> dist p (V2 (w/2) 0) < 10) . fst) (set rmPmnts plmnts $ roomRect w h 2 2)
|
||||
)
|
||||
|
||||
@@ -285,14 +277,14 @@ weaponUnderCrits = do
|
||||
]
|
||||
let continuationRoom = treeFromTrunk
|
||||
[PassDown corridorN,PassDown corridorN]
|
||||
(connectRoom (set rmPmnts plmnts corridorN))
|
||||
(singleUseAll (set rmPmnts plmnts corridorN))
|
||||
rcp <- roomCenterPillar
|
||||
deadEndRoom' <- takeOne [roomPillars,rcp]
|
||||
junctionRoom <- takeOne [PassDown tEast,PassDown tWest]
|
||||
return $ treeFromTrunk [PassDown corridorN,PassDown corridorN]
|
||||
$ Node junctionRoom
|
||||
[continuationRoom
|
||||
,deadRoom deadEndRoom'
|
||||
,singleUseNone deadEndRoom'
|
||||
]
|
||||
|
||||
weaponBehindPillar :: RandomGen g => State g (SubCompTree Room)
|
||||
@@ -310,7 +302,7 @@ weaponBehindPillar = do
|
||||
[PassDown corridor
|
||||
,PassDown $ over rmLinks tail $ over rmPmnts (++ plmnts1) rcp
|
||||
]
|
||||
(connectRoom $ set rmPmnts [sPS (V2 20 60) (negate $ pi/2) randC1] corridorN)
|
||||
(singleUseAll $ set rmPmnts [sPS (V2 20 60) (negate $ pi/2) randC1] corridorN)
|
||||
|
||||
weaponBetweenPillars :: RandomGen g => State g (SubCompTree Room)
|
||||
weaponBetweenPillars = do
|
||||
@@ -324,7 +316,7 @@ weaponBetweenPillars = do
|
||||
,sPS crPos2 (d crPos2) randC1
|
||||
]
|
||||
theRoom = roomPillars & rmPmnts %~ (++ plmnts)
|
||||
(fmap connectRoom . randomiseOutLinks) =<< filterLinks f theRoom
|
||||
(fmap singleUseAll . randomiseOutLinks) =<< filterLinks f theRoom
|
||||
where
|
||||
f (_,a) = a == 0
|
||||
|
||||
@@ -336,8 +328,8 @@ weaponLongCorridor = do
|
||||
]
|
||||
i1 <- state $ randomR (2,5)
|
||||
i2 <- state $ randomR (2,5)
|
||||
let branch1 = treeFromTrunk (replicate i1 $ PassDown corridorN) (connectRoom $ putCrs connectingRoom)
|
||||
let branch2 = treeFromTrunk (replicate i2 $ PassDown corridorN) (deadRoom $ putWp corridor)
|
||||
let branch1 = treeFromTrunk (replicate i1 $ PassDown corridorN) (singleUseAll $ putCrs connectingRoom)
|
||||
let branch2 = treeFromTrunk (replicate i2 $ PassDown corridorN) (singleUseNone $ putWp corridor)
|
||||
return $ Node (PassDown root) [branch1,branch2]
|
||||
where
|
||||
putCrs = over rmPmnts (++ [sPS (V2 10 40) (-pi/2) randC1 ,sPS (V2 (-10) 40) (-pi/2) randC1 ])
|
||||
@@ -512,4 +504,4 @@ spawnerRoom = do
|
||||
roomWithSpawner <- roomC x y <&>
|
||||
rmPmnts %~ (spNoID (PSRoomRand 0) (PutCrit spawnerCrit) :)
|
||||
aRoom <- airlock
|
||||
return $ treeFromTrunk [PassDown aRoom,PassDown corridor] $ connectRoom roomWithSpawner
|
||||
return $ treeFromTrunk [PassDown aRoom,PassDown corridor] $ singleUseAll roomWithSpawner
|
||||
|
||||
@@ -80,11 +80,12 @@ rezThenLasTurret = do
|
||||
cenroom <- randomiseOutLinks $ centralLasTurret {_rmLabel = Just 0}
|
||||
let doorroom = switchDoorRoom {_rmTakeFrom = Just 0}
|
||||
contTree = treeFromPost [PassDown cenroom,PassDown doorroom] (UseAll door)
|
||||
return $ rbox `appendEitherTree` [contTree]
|
||||
return $ rbox `passUntilUseAll` [contTree]
|
||||
|
||||
startRoom :: RandomGen g => Int -> State g (SubCompTree Room)
|
||||
startRoom i = join $ takeOne
|
||||
[ minigunfakeout
|
||||
[-- roomMiniIntro
|
||||
minigunfakeout
|
||||
, rezBoxesWp
|
||||
, rezBoxesThenWeaponRoom
|
||||
, rezBoxThenWeaponRoom
|
||||
@@ -96,7 +97,7 @@ runPastStart :: RandomGen g => Int -> State g (SubCompTree Room)
|
||||
runPastStart i = do
|
||||
s <- rezBoxStart
|
||||
rp <- runPastRoom i
|
||||
return $ s `appendEitherTree` [rp]
|
||||
return $ s `passUntilUseAll` [rp]
|
||||
|
||||
rezBoxStart :: RandomGen g => State g (SubCompTree Room)
|
||||
rezBoxStart = do
|
||||
@@ -135,7 +136,7 @@ rezBoxesThenWeaponRoom :: RandomGen g => State g (SubCompTree Room)
|
||||
rezBoxesThenWeaponRoom = do
|
||||
rboxes <- rezBoxes
|
||||
wroom <- weaponRoom
|
||||
return $ rboxes `appendEitherTree` [wroom]
|
||||
return $ rboxes `passUntilUseAll` [wroom]
|
||||
|
||||
rezBoxThenWeaponRoom :: RandomGen g => State g (SubCompTree Room)
|
||||
rezBoxThenWeaponRoom = do
|
||||
|
||||
Reference in New Issue
Block a user