Commit before generalising FromWest/South etc

This commit is contained in:
2022-06-14 10:37:24 +01:00
parent d17f83928a
commit 4a910566e6
14 changed files with 137 additions and 126 deletions
+10 -25
View File
@@ -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]
}
]