diff --git a/src/Dodge/Room/Foreground.hs b/src/Dodge/Room/Foreground.hs index 69cc98313..7a9a538fd 100644 --- a/src/Dodge/Room/Foreground.hs +++ b/src/Dodge/Room/Foreground.hs @@ -121,7 +121,7 @@ girderZ h d w x y = [ thinHighBar h xt yt , thinHighBar h xb yb ] - <> zipWith (thinHighBar (h - 1)) ps qs + <> zipWith (thinHighBar (h )) ps qs where n = w *.* normalizeV (vNormal $ y -.- x) xb = x +.+ n diff --git a/src/Dodge/Room/Modify.hs b/src/Dodge/Room/Modify.hs index 6e12ad775..159af757e 100644 --- a/src/Dodge/Room/Modify.hs +++ b/src/Dodge/Room/Modify.hs @@ -41,10 +41,7 @@ removeLights = rmPmnts %~ mapMaybe f addLightsNGon :: Room -> State LayoutVars Room addLightsNGon rm = do (i, rm') <- storeRoomID $ removeLights rm - return $ - rm' - & rmInPmnt - .:~ (0, f i) + return $ rm' & rmInPmnt .:~ (0, f i) where a = 2 * pi - (2 * pi / fromIntegral (rm ^?! rmType . rmngonSides)) y = rm ^?! rmType . rmngonSize diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 6d7eba390..701376fc5 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -2,6 +2,8 @@ module Dodge.Room.Tutorial where +import Dodge.Room.Foreground +import Data.Foldable import Control.Monad import qualified Data.IntMap.Strict as IM import qualified Data.IntSet as IS @@ -55,30 +57,30 @@ tutAnoTree = do [ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox , corDoor , chasmSpitTerminal - , return $ tToBTree "cor" $ return $ cleatOnward corridor - , corDoor - , tToBTree "sdr" . return . cleatOnward - <$> (shuffleLinks =<< distributerRoom BulletAmmo 100000) - , -- , return $ tToBTree "cor" $ return $ cleatOnward corridor - -- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom - ---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] [] - -- , return $ tToBTree "door" $ return $ cleatOnward door - -- , return $ tToBTree "cor" $ return $ cleatOnward corridor - -- , tToBTree "sdr" . return . cleatOnward <$> - -- (shuffleLinks =<< tanksPipesRoom) - -- , return $ tToBTree "cor" $ return $ cleatOnward corridor - -- , return $ tToBTree "cor" $ return $ cleatOnward corridor - -- , return $ tToBTree "cor" $ return $ cleatOnward corridor - return $ tToBTree "door" $ return $ cleatOnward door - , return $ tToBTree "cor" $ return $ cleatOnward corridor - , tutHub - , chasmSpitTerminal - , return $ tToBTree "cor" $ return $ cleatOnward corridor - , tutLight - , tutDrop - , return $ tToBTree "cor" $ return $ cleatOnward corridor - ---- , AnTree $ pickupTut - ---- , AnTree $ weaponTut +--a , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a , corDoor +--a , tToBTree "sdr" . return . cleatOnward +--a <$> (shuffleLinks =<< distributerRoom BulletAmmo 100000) +--a , -- , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a -- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom +--a ---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] [] +--a -- , return $ tToBTree "door" $ return $ cleatOnward door +--a -- , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a -- , tToBTree "sdr" . return . cleatOnward <$> +--a -- (shuffleLinks =<< tanksPipesRoom) +--a -- , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a -- , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a -- , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a return $ tToBTree "door" $ return $ cleatOnward door +--a , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a , tutHub +--a , chasmSpitTerminal +--a , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a , tutLight +--a , tutDrop +--a , return $ tToBTree "cor" $ return $ cleatOnward corridor +--a ---- , AnTree $ pickupTut +--a ---- , AnTree $ weaponTut ] foldMTRS :: @@ -289,11 +291,25 @@ chasmSpitTerminal = do i1 <- nextLayoutInt y <- midChasmSpit shp <- takeOne [vShape, lShape, jShape, liShape] - let l3 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 0 rp - l4 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 1 rp - l5 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> isOutLnkNum 2 rp + let l1 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> f rp North East + l2 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> f rp North West + l3 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> f rp East North + l4 = mntLightLnkShape shp $ resetPLUse $ rprBool $ \rp _ -> f rp East South + ls <- takeOne [[l1,l2],[l3,l4] + ,[spanLightI (V2 120 0) (V2 120 300)] + , [spanLightI (V2 0 128) (V2 300 128)] + , [spanLightI (V2 300 0) (V2 0 300), sps0 $ putShape $ thinHighBar 95 0 300] + ] + gh <- takeOne [55,97] + gird <- takeOne [girderZ gh 30 10,girder gh 30 10,girderV gh 30 10] + dec <- takeOne $ -- replicate 3 [] <> + [ + [sps0 $ putShape $ gird (V2 30 0) (V2 30 300) + ,sps0 $ putShape $ gird (V2 270 0) (V2 270 300)] + ,[sps0 $ putShape $ gird (V2 0 20) (V2 300 20)] + ] -- let y' = y & rmPmnts <>~ [l3, l4, l5] - let y' = y & rmPmnts <>~ [l3, l4] + let y' = y & rmPmnts <>~ ls <> dec return $ tToBTree "chasmTerm" $ Node @@ -302,6 +318,9 @@ chasmSpitTerminal = do , treePost [triggerDoorRoom i1, critDeadEnd] , return $ cleatOnward $ triggerDoorRoom i1 ] + where + f rp a b = FromEdge a 2 `S.member` (fold $ rp ^? rpType . rplsType) + && OnEdge b `S.member` (fold $ rp ^? rpType . rplsType) polyChasm :: Int -> Float -> State LayoutVars Room polyChasm n x = diff --git a/tags b/tags index 40146f889..ac71a3a7e 100644 --- a/tags +++ b/tags @@ -2759,7 +2759,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 247;" f burstRifle src/Dodge/Item/Held/Cane.hs 30;" f buttonFlip src/Dodge/Button/Event.hs 17;" f buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 593;" f -cChasm src/Dodge/Room/Tutorial.hs 126;" f +cChasm src/Dodge/Room/Tutorial.hs 131;" f cFilledRect src/Dodge/CharacterEnums.hs 6;" f cWireRect src/Dodge/CharacterEnums.hs 10;" f calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f @@ -2795,8 +2795,8 @@ chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f chasmRotate src/Dodge/Creature/Update.hs 173;" f -chasmSimpleMaze src/Dodge/Room/Tutorial.hs 319;" f -chasmSpitTerminal src/Dodge/Room/Tutorial.hs 281;" f +chasmSimpleMaze src/Dodge/Room/Tutorial.hs 338;" f +chasmSpitTerminal src/Dodge/Room/Tutorial.hs 288;" f chasmTestCorpse src/Dodge/Creature/Update.hs 155;" f chasmTestLiving src/Dodge/Creature/Update.hs 137;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f @@ -3547,7 +3547,7 @@ floorTo src/Geometry/Zone.hs 12;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 777;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 823;" f -foldMTRS src/Dodge/Room/Tutorial.hs 80;" f +foldMTRS src/Dodge/Room/Tutorial.hs 85;" f foldPairs src/ListHelp.hs 37;" f foldrWhileArb src/ListHelp.hs 111;" f followImpulse src/Dodge/Creature/Impulse.hs 25;" f @@ -3609,8 +3609,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 539;" f getCommand src/Dodge/Terminal.hs 61;" f getCommands src/Dodge/Terminal.hs 58;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 466;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 453;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 485;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 472;" f getDebugMouseOver src/Dodge/Update.hs 424;" f getDistortions src/Dodge/Render.hs 443;" f getEdgesCrossing src/Dodge/Path.hs 37;" f @@ -3628,7 +3628,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1268;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 449;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 468;" f getRootItemBounds src/Dodge/Render/HUD.hs 106;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3942,7 +3942,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f keyPic src/Dodge/Item/Draw/SPic.hs 438;" f keyholeCorridor src/Dodge/Room/Corridor.hs 45;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 741;" f -lChasm src/Dodge/Room/Tutorial.hs 138;" f +lChasm src/Dodge/Room/Tutorial.hs 143;" f lConnect src/Dodge/Render/Connectors.hs 43;" f lConnectCol src/Dodge/Render/Connectors.hs 46;" f lConnectMulti src/Dodge/Render/Connectors.hs 51;" f @@ -4177,9 +4177,9 @@ mglCreate src/GLHelp.hs 8;" f mglDelete src/GLHelp.hs 14;" f midBarDecoration src/Dodge/Placement/TopDecoration.hs 23;" f midBounds src/Dodge/Room/Foreground.hs 150;" f -midChasm src/Dodge/Room/Tutorial.hs 167;" f -midChasmPlatform src/Dodge/Room/Tutorial.hs 189;" f -midChasmSpit src/Dodge/Room/Tutorial.hs 248;" f +midChasm src/Dodge/Room/Tutorial.hs 172;" f +midChasmPlatform src/Dodge/Room/Tutorial.hs 194;" f +midChasmSpit src/Dodge/Room/Tutorial.hs 253;" f midPad src/Padding.hs 27;" f midPadL src/Padding.hs 33;" f midPoint src/Geometry.hs 83;" f @@ -4352,7 +4352,7 @@ pairsToSCC src/Dodge/Graph.hs 32;" f paletteToColor src/Color.hs 85;" f parseItem src/Dodge/Debug/Terminal.hs 62;" f parseNum src/Dodge/Debug/Terminal.hs 77;" f -passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 531;" f +passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 550;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathEdgeObstructed src/Dodge/Path.hs 66;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f @@ -4457,8 +4457,8 @@ pokeWall src/Shader/Poke.hs 80;" f pokeWallsWindows src/Shader/Poke.hs 52;" f poly3 src/Picture/Base.hs 76;" f poly3Col src/Picture/Base.hs 80;" f -polyChasm src/Dodge/Room/Tutorial.hs 297;" f -polyChasmC src/Dodge/Room/Tutorial.hs 309;" f +polyChasm src/Dodge/Room/Tutorial.hs 316;" f +polyChasmC src/Dodge/Room/Tutorial.hs 328;" f polyCirc src/Shape.hs 47;" f polyCircx src/Shape.hs 52;" f polyCornerDist src/Geometry/Polygon.hs 69;" f @@ -4835,7 +4835,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 242;" f sensorRoom src/Dodge/Room/SensorDoor.hs 29;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 61;" f sensorSPic src/Dodge/Machine/Draw.hs 99;" f -sensorTut src/Dodge/Room/Tutorial.hs 475;" f +sensorTut src/Dodge/Room/Tutorial.hs 494;" f sensorTypeDamages src/Dodge/Machine/Update.hs 288;" f sensorTypeDamages src/Dodge/Wall/Damage.hs 92;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f @@ -4870,7 +4870,7 @@ setSoundVolume src/Sound.hs 159;" f setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f -setTreeInts src/Dodge/Room/Tutorial.hs 87;" f +setTreeInts src/Dodge/Room/Tutorial.hs 92;" f setViewDistance src/Dodge/Update/Camera.hs 245;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewport src/Dodge/Render.hs 448;" f @@ -5050,8 +5050,8 @@ spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 11;" f spreadOut src/Dodge/Creature/Boid.hs 160;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f -sqPlatformChasm src/Dodge/Room/Tutorial.hs 218;" f -sqSpitChasm src/Dodge/Room/Tutorial.hs 233;" f +sqPlatformChasm src/Dodge/Room/Tutorial.hs 223;" f +sqSpitChasm src/Dodge/Room/Tutorial.hs 238;" f square src/Geometry/Polygon.hs 56;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 116;" f @@ -5319,13 +5319,13 @@ tryThrust src/Dodge/Projectile/Update.hs 126;" f tryUseParent src/Dodge/Creature/State.hs 145;" f turnTo src/Dodge/Movement/Turn.hs 8;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 22;" f -tutAnoTree src/Dodge/Room/Tutorial.hs 52;" f -tutDrop src/Dodge/Room/Tutorial.hs 92;" f -tutHub src/Dodge/Room/Tutorial.hs 373;" f -tutLight src/Dodge/Room/Tutorial.hs 341;" f -tutRezBox src/Dodge/Room/Tutorial.hs 486;" f +tutAnoTree src/Dodge/Room/Tutorial.hs 53;" f +tutDrop src/Dodge/Room/Tutorial.hs 97;" f +tutHub src/Dodge/Room/Tutorial.hs 392;" f +tutLight src/Dodge/Room/Tutorial.hs 360;" f +tutRezBox src/Dodge/Room/Tutorial.hs 505;" f tutRoomTree src/Dodge/Floor.hs 20;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 511;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 530;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f @@ -5646,7 +5646,7 @@ yourInv src/Dodge/Base/You.hs 28;" f yourRootItem src/Dodge/Base/You.hs 22;" f yourSelectedItem src/Dodge/Base/You.hs 16;" f yourStatsInfo src/Dodge/Creature/Info.hs 27;" f -zChasm src/Dodge/Room/Tutorial.hs 151;" f +zChasm src/Dodge/Room/Tutorial.hs 156;" f zConnect src/Dodge/Render/Connectors.hs 18;" f zConnectCol src/Dodge/Render/Connectors.hs 29;" f zConnectColMidX src/Dodge/Render/Connectors.hs 32;" f