Add paths to procedurally generated corner rooms
This commit is contained in:
@@ -75,10 +75,10 @@ combineRooms :: Room -> Room -> Room
|
||||
combineRooms r r' = defaultRoom
|
||||
{ _rmPolys = _rmPolys r ++ _rmPolys r'
|
||||
, _rmLinks = _rmLinks r ++ _rmLinks r'
|
||||
, _rmPath = map (shiftPathBy $ _rmShift r) (_rmPath r )
|
||||
++ map (shiftPathBy $ _rmShift r') (_rmPath r')
|
||||
, _rmPS = map (shiftPlacement $ _rmShift r) (_rmPS r)
|
||||
++ map (shiftPlacement $ _rmShift r') (_rmPS r')
|
||||
, _rmPath = (_rmPath r )
|
||||
++ (_rmPath r')
|
||||
, _rmPS = map (shiftPlacement $ _rmShift r) (_rmPS r)
|
||||
++ map (shiftPlacement $ _rmShift r') (_rmPS r')
|
||||
, _rmBound = _rmBound r ++ _rmBound r'
|
||||
, _rmFloor = _rmFloor r ++ _rmFloor r'
|
||||
, _rmShift = (V2 0 0 , 0)
|
||||
@@ -106,7 +106,14 @@ quarterRoomFlat w = do
|
||||
pure $ defaultRoom
|
||||
{ _rmPolys = [ [V2 0 0,V2 w w,V2 (-w) w] ]
|
||||
, _rmLinks = [(V2 0 w, 0)]
|
||||
, _rmPath = [(V2 0 w,V2 0 0),(V2 0 0,V2 0 w)]
|
||||
, _rmPath = concatMap doublePair
|
||||
[(V2 0 w,V2 0 (w-20))
|
||||
,(V2 0 (w-20),V2 (w-20) (w-20))
|
||||
,(V2 0 (w-20),V2 (55-w) (w-20))
|
||||
,(V2 (55-w) (w-20),V2 (20-w) (w-20))
|
||||
,(V2 0 (w-20),V2 0 0)
|
||||
,(V2 (55-w) (w-20),V2 0 0)
|
||||
]
|
||||
, _rmPS = b
|
||||
, _rmBound = [[V2 0 0,V2 w w,V2 (-w) w]]
|
||||
}
|
||||
@@ -136,8 +143,17 @@ fourthCornerWall w = do
|
||||
[(V2 (w/2) (3*w/2), negate $ pi/4)
|
||||
,(V2 (negate $ w/2) (3*w/2), pi/4)
|
||||
]
|
||||
, _rmPath = [(V2 0 0,V2 w 0)
|
||||
,(V2 0 0,V2 w w)
|
||||
, _rmPath = concatMap doublePair
|
||||
[(V2 (0.5*w) (1.5*w),V2 (0.5*w-20) (1.5*w-20))
|
||||
,(V2 (-0.5*w) (1.5*w),V2 (-0.5*w+20) (1.5*w-20))
|
||||
,(V2 0 (2*w-40),V2 (-0.5*w+20) (1.5*w-20))
|
||||
,(V2 0 (2*w-40),V2 (0.5*w-20) (1.5*w-20))
|
||||
,(V2 (w-20) (w-20),V2 (0.5*w-20) (1.5*w-20))
|
||||
,(V2 (20-w) (w-20),V2 (-0.5*w+20) (1.5*w-20))
|
||||
--,(V2 (40-w) (w),V2 0 (w-40))
|
||||
,(V2 (20-w) (w-20),V2 0 (w-40))
|
||||
,(V2 0 0,V2 0 (w-40))
|
||||
-- ,(V2 (20-w) (w-20),V2 (40-w) (w))
|
||||
]
|
||||
, _rmPS = b
|
||||
, _rmBound = [map toV2 [(w,w),(0,2*w),(-w,w)]]
|
||||
@@ -166,7 +182,8 @@ randomFourCornerRoom :: RandomGen g => State g Room
|
||||
randomFourCornerRoom = do
|
||||
corners <- replicateM 4 . join $ takeOne [quarterRoomFlat 100, fourthCornerWall 100]
|
||||
nItms <- state $ randomR (1,2)
|
||||
itms <- takeN nItms $ fmap PutFlIt $ [autoRadar,autoSonar,remoteLauncher,jetPack,blinkGun] ++ replicate 5 (medkit 500)
|
||||
itms <- takeN nItms $ fmap PutFlIt $ [autoRadar,autoSonar,remoteLauncher,jetPack,blinkGun]
|
||||
++ replicate 5 (medkit 500)
|
||||
nCrits <- state $ randomR (1,3)
|
||||
crits <- takeN nCrits $ fmap PutCrit $ [spreadGunCrit,pistolCrit,autoCrit,armourChaseCrit]
|
||||
++ replicate 20 chaseCrit
|
||||
|
||||
Reference in New Issue
Block a user