Add support for group placements
This commit is contained in:
+12
-12
@@ -34,10 +34,10 @@ roomGlassOctogon x = Room
|
||||
, _rmPath = [((0,x),(0,-(x+40)))
|
||||
,((0,-(x+40)),(0,x))]
|
||||
, _rmPS =
|
||||
[PS (fx,fx) 0 putLamp
|
||||
,PS (-fx,fx) 0 putLamp
|
||||
,PS (fx,-fx) 0 putLamp
|
||||
,PS (-fx,-fx) 0 putLamp
|
||||
[sPS (fx,fx) 0 putLamp
|
||||
,sPS (-fx,fx) 0 putLamp
|
||||
,sPS (fx,-fx) 0 putLamp
|
||||
,sPS (-fx,-fx) 0 putLamp
|
||||
,crystalLine (-x,x/2) (negate (x/2), x)
|
||||
,crystalLine (x,x/2) (x/2, x)
|
||||
,crystalLine (x/2,-x) (x,negate (x/2))
|
||||
@@ -50,13 +50,13 @@ roomGlassOctogon x = Room
|
||||
fx = 4 * x / 5
|
||||
|
||||
bossRoom :: RandomGen g => Creature -> State g Room
|
||||
bossRoom cr = randomMediumRoom <&> rmPS %~ ( PS (0,100) (negate $ pi/2) (PutCrit cr) :)
|
||||
bossRoom cr = randomMediumRoom <&> rmPS %~ ( sPS (0,100) (negate $ pi/2) (PutCrit cr) :)
|
||||
|
||||
armouredChasers :: RandomGen g => State g (Tree Room)
|
||||
armouredChasers = do
|
||||
ps <- takeN 5 [(x,y) | x <- [-100,-80 .. 100] ,y <- [-100,-80 .. 100] ]
|
||||
as <- replicateM 5 . state $ randomR (0,2*pi)
|
||||
let theCrits = zipWith3 (\p a c -> PS p a (PutCrit c)) ps as cs
|
||||
let theCrits = zipWith3 (\p a c -> sPS p a (PutCrit c)) ps as cs
|
||||
treeFromPost [corridor,corridor] <$> (randomMediumRoom <&> rmPS %~ (++ theCrits))
|
||||
where
|
||||
cs = (armourChaseCrit & crState . crDropsOnDeath .~ DropSpecific [0])
|
||||
@@ -90,10 +90,10 @@ roomCross x y = Room
|
||||
]
|
||||
, _rmPath = []
|
||||
, _rmPS =
|
||||
[PS ( x, 0) 0 putLamp
|
||||
,PS (-x, 0) 0 putLamp
|
||||
,PS ( 0, x) 0 putLamp
|
||||
,PS ( 0,-x) 0 putLamp
|
||||
[sPS ( x, 0) 0 putLamp
|
||||
,sPS (-x, 0) 0 putLamp
|
||||
,sPS ( 0, x) 0 putLamp
|
||||
,sPS ( 0,-x) 0 putLamp
|
||||
]
|
||||
, _rmBound =
|
||||
[rectNSWE y (-y) (-x) x
|
||||
@@ -116,7 +116,7 @@ roomShuriken x y =
|
||||
{ _rmPolys = ps
|
||||
, _rmLinks = [((x-1,y-20),negate $ pi/2)]
|
||||
, _rmPath = []
|
||||
, _rmPS = [PS (x/2,x/2) 0 putLamp]
|
||||
, _rmPS = [sPS (x/2,x/2) 0 putLamp]
|
||||
, _rmBound = ps
|
||||
}
|
||||
in foldr1 combineRooms $ map (\r -> shiftRoomBy ((0,0), r) corner) [0,pi/2,pi,3*pi/2]
|
||||
@@ -140,7 +140,7 @@ roomTwistCross x y z =
|
||||
{ _rmPolys = ps
|
||||
, _rmLinks = [((z,y-20), pi/2)]
|
||||
, _rmPath = []
|
||||
, _rmPS = [PS (x/2,x/2) 0 putLamp]
|
||||
, _rmPS = [sPS (x/2,x/2) 0 putLamp]
|
||||
, _rmBound = ps
|
||||
}
|
||||
in foldr1 combineRooms $ map (\r -> shiftRoomBy ((0,0), r) corner) [0,pi/2,pi,3*pi/2]
|
||||
|
||||
Reference in New Issue
Block a user