95 lines
2.4 KiB
Haskell
95 lines
2.4 KiB
Haskell
module Dodge.Room.Corridor
|
|
where
|
|
import Dodge.Room.Data
|
|
import Dodge.Default.Room
|
|
import Geometry
|
|
--import Geometry.Data
|
|
import Tile
|
|
|
|
import Data.Bifunctor
|
|
{- | First exit due north, two other exits at angles next to this.
|
|
Entrance from south. -}
|
|
corridor :: Room
|
|
corridor = defaultRoom
|
|
{ _rmPolys = [poly]
|
|
, _rmLinks = lnks
|
|
, _rmPath = concatMap (doublePair . (,) (V2 20 60) . fst) lnks
|
|
, _rmPS = []
|
|
, _rmBound = [ rectNSWE 50 30 0 40 ]
|
|
, _rmFloor = [makeTileFromPoly poly 2]
|
|
}
|
|
where
|
|
poly = rectNSWE 80 0 0 40
|
|
lnks = map (first toV2)
|
|
[((20,70) ,0)
|
|
,((20,70), pi/6)
|
|
,((20,70), negate $ pi/6)
|
|
,((20,10) ,pi)
|
|
]
|
|
{- | Debug drop-in copy of corridor -}
|
|
corridorDebug :: Room
|
|
corridorDebug = defaultRoom
|
|
{ _rmPolys =
|
|
[ rectNSWE 80 0 0 40
|
|
--, [ (0,0), (0,200) , (200,100)]
|
|
--, [ (0,0), (0,20) , (20,10)]
|
|
]
|
|
, _rmLinks = lnks
|
|
, _rmPath = concatMap (doublePair . (,) (V2 20 60) . fst) lnks
|
|
, _rmPS = []
|
|
, _rmBound = [ rectNSWE 50 30 0 40 ]
|
|
}
|
|
where
|
|
lnks = map (first toV2)
|
|
[((20,70) ,0)
|
|
,((20,70), pi/6)
|
|
,((20,70), negate $ pi/6)
|
|
,((20,10) ,pi)
|
|
]
|
|
corridorN :: Room
|
|
corridorN = defaultRoom
|
|
{ _rmPolys = [rectNSWE 80 0 0 40
|
|
]
|
|
, _rmLinks = lnks
|
|
, _rmPath = pth
|
|
, _rmPS = []
|
|
, _rmBound = [ rectNSWE 50 30 0 40 ]
|
|
}
|
|
where lnks = [(V2 20 70 ,0)
|
|
,(V2 20 10 ,pi)
|
|
]
|
|
pth = doublePair (V2 20 70,V2 20 10)
|
|
|
|
tEast :: Room
|
|
tEast = defaultRoom
|
|
{ _rmPolys = [rectNSWE 80 0 (-20) 20
|
|
,rectNSWE 80 40 (-40) 40
|
|
]
|
|
, _rmLinks = lnks
|
|
, _rmPath = concatMap (doublePair . (,) (V2 0 60) . fst) lnks
|
|
, _rmPS = []
|
|
, _rmBound = [ rectNSWE 70 10 0 40 ]
|
|
}
|
|
where
|
|
lnks = map (first toV2)
|
|
[(( 30,60),-pi/2)
|
|
,((-30,60),pi/2)
|
|
,((0,10),pi)
|
|
]
|
|
tWest :: Room
|
|
tWest = defaultRoom
|
|
{ _rmPolys = [rectNSWE 80 0 (-20) 20
|
|
,rectNSWE 80 40 (-40) 40
|
|
]
|
|
, _rmLinks = lnks
|
|
, _rmPath = concatMap (doublePair . (,) (V2 0 60) . fst) lnks
|
|
, _rmPS = []
|
|
, _rmBound = [ rectNSWE 70 10 0 40 ]
|
|
}
|
|
where
|
|
lnks = map (first toV2)
|
|
[((-30,60),pi/2)
|
|
,(( 30,60),-pi/2)
|
|
,((0,10),pi)
|
|
]
|