From b0f89db66e17a83918ffcaa89c9dbcab575188fb Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 26 Nov 2021 14:40:32 +0000 Subject: [PATCH] Tweak start rooms --- src/Dodge/Layout.hs | 2 -- src/Dodge/Room/RezBox.hs | 2 +- src/Dodge/Room/Room.hs | 10 +++++----- src/Dodge/Room/RunPast.hs | 9 +++++++-- src/Dodge/Room/Start.hs | 13 ++++++------- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/Dodge/Layout.hs b/src/Dodge/Layout.hs index f8b024c10..bf6c3f1a2 100644 --- a/src/Dodge/Layout.hs +++ b/src/Dodge/Layout.hs @@ -46,7 +46,6 @@ generateLevelFromRoomList gr' w . doPartialPlacements . doExtendedPlacements . doIndividualPlacements --- . flip (mapAccumR doRoomPlacements) (IM.elems rs') . setFloors . worldToGenWorld rs' $ w { _walls = wallsFromRooms rs @@ -207,7 +206,6 @@ gameRoomsFromRooms = fmap gameRoomFromRoom gameRoomFromRoom :: Room -> GameRoom gameRoomFromRoom rm = GameRoom { _grViewpoints = map doshift $ _rmViewpoints rm ++ (map fst . foldl' (flip cutWalls) [] $ _rmPolys rm) --- ++ map fst (_rmLinks rm) , _grViewpointsEx = concatMap unpos (_rmPos rm) , _grBound = map doshift $ expandPolyCorners 50 . convexHullSafe . nubBy closePoints . concat $ _rmBound rm ++ _rmPolys rm diff --git a/src/Dodge/Room/RezBox.hs b/src/Dodge/Room/RezBox.hs index c1066e9bf..b6cf140c8 100644 --- a/src/Dodge/Room/RezBox.hs +++ b/src/Dodge/Room/RezBox.hs @@ -72,7 +72,7 @@ rezBoxesWpCrit = do --horedge <- takeOne [OnEdge North,OnEdge South] let centralRoom = (roomRectAutoLinks w h) {_rmPmnts = []} onwardpassage <- - (applyToCompRoot (rmConnectsTo .~ S.singleton (OnEdge West))) <$> maybeBlockedPassage + applyToCompRoot (rmConnectsTo .~ S.singleton (OnEdge West)) <$> maybeBlockedPassage let bottomEdgeTest (V2 _ y,_) = y < 1 aroom = rezInvBox thecol let n = length $ filter bottomEdgeTest $ map lnkPosDir $ _rmLinks centralRoom diff --git a/src/Dodge/Room/Room.hs b/src/Dodge/Room/Room.hs index d8e646705..fb25524d3 100644 --- a/src/Dodge/Room/Room.hs +++ b/src/Dodge/Room/Room.hs @@ -355,11 +355,11 @@ deadEndRoom = defaultRoom {- A random Either tree with a weapon and melee monster challenge. -} weaponRoom :: RandomGen g => State g (SubCompTree Room) weaponRoom = join $ takeOne - [-- weaponEmptyRoom - weaponUnderCrits - -- weaponBehindPillar - -- weaponBetweenPillars - --, weaponLongCorridor + [ weaponEmptyRoom + , weaponUnderCrits + , weaponBehindPillar + , weaponBetweenPillars + , weaponLongCorridor ] roomCCrits :: RandomGen g => State g Room diff --git a/src/Dodge/Room/RunPast.hs b/src/Dodge/Room/RunPast.hs index 6cb650a84..da65672df 100644 --- a/src/Dodge/Room/RunPast.hs +++ b/src/Dodge/Room/RunPast.hs @@ -24,6 +24,7 @@ import Geometry.Data import Color --import Shape +import qualified Data.Set as S import Data.Tree import Control.Monad.State import Control.Lens @@ -57,8 +58,9 @@ runPastRoom i = do thels <- roomCritLS --theweapon <- join $ takeOne [randBlockBreakWeapon,return grenade] theweapon <- randBlockBreakWeapon - cenroom <- changeLinkFrom theedgetest + cenroom <- shuffleLinks $ restrictRMInLinksPD (\(V2 _ y,_) -> y < 1) $ roomRectAutoLinks 40 h & rmPmnts .~ [plRRpt 0 (PutFlIt theweapon)] + theedge <- takeOne [West,East] --let cenroom = filterSortOutLinksOn theedgetest ((\(V2 a b) -> (a,b)) . fst) let linkcor = critRoom {_rmPmnts = [ spanLS thels (V2 0 65) (V2 40 65) @@ -76,4 +78,7 @@ runPastRoom i = do critrooms :: [SubCompTree Room] critrooms = treeFromPost [PassDown switchdoor] (PassDown critroom) : replicate (n-2) (treeFromPost [PassDown switchdoor] (PassDown linkcor)) - return $ Node (PassDown cenroom) (controom : critrooms ++ [return $ PassDown aswitchroom]) + return $ Node (PassDown cenroom) + (map (applyToCompRoot $ rmConnectsTo .~ S.singleton (OnEdge theedge)) (controom : critrooms) + ++ [return $ PassDown aswitchroom] + ) diff --git a/src/Dodge/Room/Start.hs b/src/Dodge/Room/Start.hs index 68888ddaa..000c63b96 100644 --- a/src/Dodge/Room/Start.hs +++ b/src/Dodge/Room/Start.hs @@ -65,15 +65,14 @@ room2 :: RandomGen g => Int -> State g (SubCompTree Room) room2 = lasCenSensEdge startRoom :: RandomGen g => Int -> State g (SubCompTree Room) ---startRoom i = join $ takeOne -startRoom _ = join $ takeOne +startRoom i = join $ takeOne [-- roomMiniIntro --minigunfakeout --- rezBoxesWp - rezBoxesThenWeaponRoom --- , rezBoxThenWeaponRoom --- rezBoxesWpCrit --- , runPastStart i + rezBoxesWp + , rezBoxesThenWeaponRoom + , rezBoxThenWeaponRoom + , rezBoxesWpCrit + , runPastStart i ] runPastStart :: RandomGen g => Int -> State g (SubCompTree Room)