Commit before generalising FromWest/South etc
This commit is contained in:
+10
-25
@@ -1,37 +1,25 @@
|
||||
module Dodge.Room.RunPast where
|
||||
module Dodge.Room.RunPast
|
||||
( lockedStart
|
||||
) where
|
||||
import Dodge.UseAll
|
||||
import Geometry.Polygon
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.LightSource
|
||||
--import Dodge.RoomLink
|
||||
import Dodge.Data
|
||||
--import Dodge.Default
|
||||
--import Dodge.Layout.Tree.Either
|
||||
import RandomHelp
|
||||
import Dodge.Room.Door
|
||||
--import Dodge.Room.Room
|
||||
import Dodge.Room.Link
|
||||
import Dodge.Room.Procedural
|
||||
import Dodge.Room.Corridor
|
||||
--import Dodge.Room.Foreground
|
||||
--import Dodge.Room.RoadBlock
|
||||
import Dodge.PlacementSpot
|
||||
import Dodge.Placement.Instance
|
||||
import Dodge.Tree
|
||||
import Dodge.Item.Random
|
||||
--import Dodge.Item.Weapon.SprayGuns
|
||||
--import Dodge.Item.Weapon.Grenade
|
||||
--import Dodge.LevelGen.Data
|
||||
import Geometry.Data
|
||||
--import Padding
|
||||
import Color
|
||||
import LensHelp
|
||||
|
||||
import qualified Data.Set as S
|
||||
--import qualified Data.IntMap.Strict as IM
|
||||
|
||||
horEdgeTest :: (Float -> Bool) -> ((Point2,Float) -> Bool)
|
||||
horEdgeTest t (V2 x _,_) = t x
|
||||
|
||||
roomCritLS :: RandomGen g => State g LightSource
|
||||
roomCritLS = do
|
||||
@@ -43,27 +31,24 @@ roomCritLS = do
|
||||
smallRoom :: Room
|
||||
smallRoom = corridorWallN & rmRandPSs .~ [psRandRanges (15,25) (30,45) (pi,2*pi)]
|
||||
|
||||
lookedStart :: RandomGen g => Int -> State g (Tree Room)
|
||||
lookedStart i = do
|
||||
lockedStart :: RandomGen g => Int -> State g (Tree Room)
|
||||
lockedStart i = do
|
||||
h <- state $ randomR (200,400::Float)
|
||||
thels <- roomCritLS
|
||||
theweapon <- randBlockBreakWeapon
|
||||
cenroom <- shuffleLinks
|
||||
$ roomRectAutoLinks 40 h & rmPmnts .~ [plRRpt 0 (PutFlIt theweapon)]
|
||||
cenroom <- shuffleLinks $ roomRectAutoLinks 40 h & rmPmnts .~ []
|
||||
theedge <- takeOne $ map OnEdge [West,East]
|
||||
let linkcor = smallRoom & rmPmnts .~ [ spanLS thels (V2 0 65) (V2 40 65) ]
|
||||
critroom = linkcor & rmPmnts .:~ plRRpt 0 randC1
|
||||
switchdoor = triggerDoorRoom i
|
||||
n = length $ filter (elem theedge . _rlType) (_rmLinks cenroom)
|
||||
doorrooms = map (treePost . (switchdoor:))
|
||||
$ [critroom]
|
||||
doorrooms = map (treePost . (triggerDoorRoom i:))
|
||||
$ [linkcor & rmPmnts .:~ plRRpt 0 randC1]
|
||||
: [linkcor,corridor,corridor,cleatOnward door]
|
||||
: replicate (n-2) [linkcor]
|
||||
return $ Node cenroom $
|
||||
map (over root $ rmConnectsTo .~ S.member theedge) doorrooms
|
||||
++ [return corridorWallN
|
||||
++ [return smallRoom
|
||||
{_rmOutPmnt = [OutPlacement (putLitButOnPosExtTrig red useUnusedLnk) i]
|
||||
,_rmPmnts = []
|
||||
,_rmPmnts = [plRRpt 0 (PutFlIt theweapon)]
|
||||
,_rmBound = [rectNSWE 70 30 0 40]
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user