Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+45 -46
View File
@@ -1,57 +1,56 @@
--{-# LANGUAGE TupleSections #-}
module Dodge.Room.LongRoom where
import Dodge.Cleat
import Dodge.RoomLink
import Dodge.Tree
--import Dodge.Default.Room
import Dodge.Default.Wall
import Dodge.LevelGen.Data
import Dodge.Data
import Dodge.Placement.Instance
import Dodge.Room.Link
import Dodge.Room.Door
import Dodge.Room.Corridor
import Dodge.Room.Procedural
--import Dodge.Layout.Tree.Either
--import Dodge.LevelGen.Data
--import Dodge.LevelGen.Switch
import RandomHelp
import Dodge.Creature.Inanimate
import Dodge.Creature
--import Dodge.LightSource
--import Picture
import Geometry
import LensHelp
import Data.Tile
import qualified Data.Set as S
--import qualified Data.IntMap as IM
import Data.Tile
import Dodge.Cleat
import Dodge.Creature
import Dodge.Data.GenWorld
import Dodge.Default.Wall
import Dodge.LevelGen.Data
import Dodge.Placement.Instance
import Dodge.Room.Corridor
import Dodge.Room.Door
import Dodge.Room.Link
import Dodge.Room.Procedural
import Dodge.RoomLink
import Dodge.Tree
import Geometry
import LensHelp
import RandomHelp
longRoom :: RandomGen g => State g Room
longRoom = do
h <- state $ randomR (1500,1500)
h <- state $ randomR (1500, 1500)
let w = 75
let wlsNSEWs wln wls listew = [sps0 $ PutWall (rectNSWE wln wls wallw walle) defaultCrystalWall
| (wallw,walle) <- listew ]
let ws = wlsNSEWs (h-35) (h-135) [(-10,10) , (15,35) , (40,60) , (65,85)]
let wsDefense = wlsNSEWs 95 70 [(0,25) , (50,75) ]
brlN <- state $ randomR (0,5)
brlOffsets <- replicateM brlN $ randInRect (w-20) 900
let brls = [ sPS (p +.+ V2 10 200) 0 $ PutCrit explosiveBarrel | p <- brlOffsets ]
rm <- shuffleLinks $ roomRect w (h+70) 1 1 & rmPolys .++~ [rectNSWE h (h-165) (-45) (w+45)]
& rmFloor .~ InheritFloor
return $ restrictInLinks (\x -> (sndV2 . fst) x < 40)
$ restrictOutLinks (\x -> (sndV2 . fst) x > h * 0.75)
$ rm & rmPmnts .~ ws ++ brls ++ wsDefense ++
[sPS (V2 crx (h-25)) 0 $ PutCrit longCrit
| crx <- [12.5,37.5,62.5] ] ++
[sPS (V2 25 lampy ) 0 putLamp | lampy <- [20,h-10] ]
let wlsNSEWs wln wls listew =
[ sps0 $ PutWall (rectNSWE wln wls wallw walle) defaultCrystalWall
| (wallw, walle) <- listew
]
let ws = wlsNSEWs (h -35) (h -135) [(-10, 10), (15, 35), (40, 60), (65, 85)]
let wsDefense = wlsNSEWs 95 70 [(0, 25), (50, 75)]
brlN <- state $ randomR (0, 5)
brlOffsets <- replicateM brlN $ randInRect (w -20) 900
let brls = [sPS (p +.+ V2 10 200) 0 $ PutCrit explosiveBarrel | p <- brlOffsets]
rm <-
shuffleLinks $
roomRect w (h + 70) 1 1 & rmPolys .++~ [rectNSWE h (h -165) (-45) (w + 45)]
& rmFloor .~ InheritFloor
return $
restrictInLinks (\x -> (sndV2 . fst) x < 40) $
restrictOutLinks (\x -> (sndV2 . fst) x > h * 0.75) $
rm & rmPmnts .~ ws ++ brls ++ wsDefense
++ [ sPS (V2 crx (h -25)) 0 $ PutCrit longCrit
| crx <- [12.5, 37.5, 62.5]
]
++ [sPS (V2 25 lampy) 0 putLamp | lampy <- [20, h -10]]
longRoomRunPast :: RandomGen g => State g (MetaTree Room String)
longRoomRunPast = do
r <- longRoom
rToOnward "longRoomRunPast"
$ treeFromTrunk [door] $ Node r
[ pure $ cleatOnward door
, treePost [ corridor & rmConnectsTo .~ S.member InLink, cleatLabel 0 door ]
]
rToOnward "longRoomRunPast" $
treeFromTrunk [door] $
Node
r
[ pure $ cleatOnward door
, treePost [corridor & rmConnectsTo .~ S.member InLink, cleatLabel 0 door]
]