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) ]