Add led/battery to tutorial

This commit is contained in:
2025-10-07 11:30:59 +01:00
parent e9178f9643
commit 709195ed6a
3 changed files with 50 additions and 53 deletions
+1
View File
@@ -2,6 +2,7 @@
module Dodge.Layout (
generateLevelFromRoomList,
tilesFromRooms,
shuffleRoomPos,
) where
import Dodge.Path.Translate
+15 -20
View File
@@ -1,5 +1,6 @@
module Dodge.Room.Tutorial where
import Dodge.Layout
import Dodge.Item.Held.Utility
import Control.Monad
import qualified Data.IntMap.Strict as IM
@@ -36,28 +37,11 @@ import RandomHelp
import ShortShow
import TreeHelp
--import Data.List (intersperse)
testf = PSPos (\x _ -> f x) (\_ -> id) Nothing
where
f x = case _rpType x of
NotLink{} -> Just (PS (_rpPos x) (_rpDir x), x)
_ -> Nothing
tutAnoTree :: State LayoutVars MTRS
tutAnoTree = do
foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor
, tToBTree "test" . return . cleatOnward <$> (roomRectAutoLinks 100 100
<&> rmPmnts <>~
[sps0 $ PutChasm $ rectNSWE 70 30 30 70
, Placement testf (PutFlIt led) Nothing Nothing (const $ const Nothing)
]
<&> rmPos .~[RoomPos 35 0 mempty (NotLink False) mempty]
-- <&> rmPos .~[]
)
, corDoor
, tutHub
, tutLight
, tutDrop
@@ -211,18 +195,29 @@ chasmSimpleMaze =
tutLight :: State LayoutVars (MetaTree Room String)
tutLight = do
x <- chasmSimpleMaze
x <- shuffleRoomPos =<< chasmSimpleMaze
y <- chasmSimpleMaze
return $
tToBTree "TutLight" $
treePost
[ x -- & rmPmnts <>~ [sps (PS 0 0) (PutFlIt torch)]
[ x & rmPmnts <>~
[sps g (PutFlIt led)
,sps g (PutFlIt battery)
]
, corridor & rmPmnts .~ mempty
, removeLights y
, corridor & rmPmnts .~ mempty
, removeLights y
, cleatOnward corridor & rmPmnts .~ mempty
]
where
g = PSPos (\x _ -> f x) (\_ -> id) Nothing
where
f x = case _rpType x of
NotLink{} | null (x ^. rpPlacementUse . at UsedPosFloor)
-> Just (PS (_rpPos x) (_rpDir x)
, x & rpPlacementUse . at UsedPosFloor ?~ ())
_ -> Nothing
removeLights :: Room -> Room
removeLights = rmPmnts %~ mapMaybe f
@@ -257,7 +252,7 @@ tutHub = do
return $
tToBTree "DoorTest" $
Node
(x & rmPmnts .:~ sps0 (PutFlIt led))
x
[ treeFromPost [triggerDoorRoom i] r1
, treeFromPost [triggerDoorRoom j] r2
, (rmClusterStatus . csLinks . at OnwardCluster .~ Nothing)
+34 -33
View File
@@ -2585,7 +2585,7 @@ addHighGirder src/Dodge/Room/Modify/Girder.hs 132;" f
addHighGirder' src/Dodge/Room/Modify/Girder.hs 142;" f
addIndefiniteArticle src/StringHelp.hs 17;" f
addNodes src/Dodge/Path.hs 115;" f
addPane src/Dodge/Placement/PlaceSpot.hs 169;" f
addPane src/Dodge/Placement/PlaceSpot.hs 172;" f
addPlmnt src/Dodge/LevelGen/PlacementHelper.hs 87;" f
addPointPolygon src/Geometry/Polygon.hs 133;" f
addPolyWall src/Dodge/LevelGen/StaticWalls.hs 141;" f
@@ -2809,7 +2809,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f
cChasm src/Dodge/Room/Tutorial.hs 109;" f
cChasm src/Dodge/Room/Tutorial.hs 124;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2843,7 +2843,7 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 176;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 191;" f
chasmTest src/Dodge/Creature/Update.hs 131;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -3612,7 +3612,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 117;" f
floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
foldMTRS src/Dodge/Room/Tutorial.hs 54;" f
foldMTRS src/Dodge/Room/Tutorial.hs 69;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 39;" f
@@ -3677,8 +3677,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f
getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 311;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 298;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 335;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 322;" f
getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3693,7 +3693,7 @@ getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1283;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 294;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 318;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -4000,7 +4000,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 475;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
lChasm src/Dodge/Room/Tutorial.hs 118;" f
lChasm src/Dodge/Room/Tutorial.hs 133;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f
@@ -4251,7 +4251,7 @@ mglCreate src/GLHelp.hs 8;" f
mglDelete src/GLHelp.hs 14;" f
midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f
midBounds src/Dodge/Room/Foreground.hs 151;" f
midChasm src/Dodge/Room/Tutorial.hs 139;" f
midChasm src/Dodge/Room/Tutorial.hs 154;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 84;" f
@@ -4311,18 +4311,18 @@ multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 674;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 177;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 183;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 186;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 180;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f
mvGust src/Dodge/Update.hs 770;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 251;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 254;" f
mvP src/Dodge/Wall/Move.hs 54;" f
mvPP src/Dodge/Placement/PlaceSpot.hs 180;" f
mvPP src/Dodge/Placement/PlaceSpot.hs 183;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 314;" f
mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 174;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 177;" f
mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 212;" f
myIntersectSegSeg src/Geometry/Intersect.hs 190;" f
@@ -4463,22 +4463,22 @@ pjRemoteSetDirection src/Dodge/Projectile/Update.hs 225;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 189;" f
plMachine' src/Dodge/Placement/PlaceSpot.hs 226;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 192;" f
plMachine' src/Dodge/Placement/PlaceSpot.hs 229;" f
plNew src/Dodge/Base/NewID.hs 19;" f
plNewID src/Dodge/Base/NewID.hs 7;" f
plNewUpID src/Dodge/Base/NewID.hs 13;" f
plNewUsing src/Dodge/Base/NewID.hs 27;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f
plTurret src/Dodge/Placement/PlaceSpot.hs 195;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 240;" f
plTurret src/Dodge/Placement/PlaceSpot.hs 198;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 243;" f
placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 42;" f
placeSpot src/Dodge/Placement/PlaceSpot.hs 32;" f
placeSpotID src/Dodge/Placement/PlaceSpot.hs 98;" f
placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 86;" f
placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 63;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 163;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 166;" f
plainRegex src/Dodge/DisplayInventory.hs 189;" f
playIfFree src/Sound.hs 137;" f
playPositionalSoundQueue src/Sound.hs 145;" f
@@ -4552,8 +4552,8 @@ pokeWall src/Shader/Poke.hs 78;" f
pokeWallsWindows src/Shader/Poke.hs 50;" f
poly3 src/Picture/Base.hs 84;" f
poly3Col src/Picture/Base.hs 88;" f
polyChasm src/Dodge/Room/Tutorial.hs 160;" f
polyChasmC src/Dodge/Room/Tutorial.hs 169;" f
polyChasm src/Dodge/Room/Tutorial.hs 175;" f
polyChasmC src/Dodge/Room/Tutorial.hs 184;" f
polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 60;" f
@@ -4744,7 +4744,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f
removeDot src/ShortShow.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 212;" f
removeLights src/Dodge/Room/Tutorial.hs 236;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4928,7 +4928,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 196;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 81;" f
sensorTut src/Dodge/Room/Tutorial.hs 320;" f
sensorTut src/Dodge/Room/Tutorial.hs 344;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f
@@ -4954,7 +4954,7 @@ setOutLinks src/Dodge/RoomLink.hs 50;" f
setOutLinksByType src/Dodge/RoomLink.hs 75;" f
setOutLinksPD src/Dodge/RoomLink.hs 95;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f
setRoomInt src/Dodge/Room/Tutorial.hs 61;" f
setRoomInt src/Dodge/Room/Tutorial.hs 76;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f
@@ -4964,7 +4964,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 76;" f
setTile src/Dodge/Layout.hs 66;" f
setTiles src/Dodge/Layout.hs 63;" f
setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 68;" f
setTreeInts src/Dodge/Room/Tutorial.hs 83;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f
@@ -5253,6 +5253,7 @@ testCrossWalls src/Dodge/Room/Path.hs 41;" f
testEvent src/Dodge/Event/Test.hs 9;" f
testInventory src/Dodge/Creature.hs 292;" f
testStringInit src/Dodge/TestString.hs 33;" f
testf src/Dodge/Room/Tutorial.hs 41;" f
text src/Picture/Base.hs 193;" f
textGrad src/Picture/Text.hs 5;" f
textInputBlurb src/Dodge/Terminal.hs 37;" f
@@ -5398,13 +5399,13 @@ tryUseParent src/Dodge/Creature/State.hs 144;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 37;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 41;" f
tutDrop src/Dodge/Room/Tutorial.hs 73;" f
tutHub src/Dodge/Room/Tutorial.hs 219;" f
tutLight src/Dodge/Room/Tutorial.hs 197;" f
tutRezBox src/Dodge/Room/Tutorial.hs 331;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 47;" f
tutDrop src/Dodge/Room/Tutorial.hs 88;" f
tutHub src/Dodge/Room/Tutorial.hs 243;" f
tutLight src/Dodge/Room/Tutorial.hs 212;" f
tutRezBox src/Dodge/Room/Tutorial.hs 355;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 355;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 379;" f
tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
@@ -5715,7 +5716,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 127;" f
zChasm src/Dodge/Room/Tutorial.hs 142;" f
zConnect src/Dodge/Render/Connectors.hs 17;" f
zConnectCol src/Dodge/Render/Connectors.hs 28;" f
zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f