Files
loop/src/Dodge/Room/Tutorial.hs
T

69 lines
1.9 KiB
Haskell

module Dodge.Room.Tutorial (tutAnoTree) where
import Dodge.Room.Room
import Dodge.Annotation.Data
import Dodge.Room.Link
import Dodge.Room.Ngon
import Dodge.Room.Door
import TreeHelp
import Dodge.Tree.Compose
import Dodge.Room.RezBox
--import Control.Monad
--import qualified Data.Set as S
--import Dodge.Cleat
import Dodge.Data.GenWorld
import Dodge.Default.Terminal
--import Dodge.Item.Random
import Dodge.LevelGen.PlacementHelper
--import Dodge.LightSource
import Dodge.Placement.Instance
--import Dodge.Room.Corridor
--import Dodge.Room.Door
--import Dodge.Room.Link
import Dodge.Room.Procedural
--import Dodge.Room.RoadBlock
import Dodge.RoomLink
import Dodge.Terminal
--import Dodge.Tree
import Geometry
import LensHelp
--import Padding
import RandomHelp
import Data.List (intersperse)
tutAnoTree :: Annotation
tutAnoTree = OnwardList $
intersperse
(AnTree corDoor)
[AnTree tutRooms]
tutRooms :: State StdGen (MetaTree Room String)
tutRooms = do
x <- tutRezBox
ys <- toggleDoorTest
return $ tToBTree "TutStartRez" $ treePost $ [x,door] <> ys
tutRezBox :: State StdGen Room
tutRezBox = do
ls <- rezColor
return $
roomRect 40 60 1 1
& rmPmnts
.~ [ sPS (V2 20 1) 0 $ PutLS ls
, putImmediateMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal)
& plSpot .~ PS (V2 20 0) 0
]
& restrictInLinks (\(V2 _ h, _) -> h < 1)
& restrictOutLinks (\(V2 _ h, _) -> h > 59)
& rmName .~ "tutRezBox"
where
s = tutorialMessage1
tutorialMessage1 :: String
tutorialMessage1 = "SYNTHESIS SUCCESSFUL. MOVEMENT TEST 1 INITIATED [WASD]. INTERACTION TEST 1 IN QUEUE [SPACE]."
toggleDoorTest :: State StdGen [Room]
toggleDoorTest = do
x <- shuffleLinks $ roomNgon 6 100
return [x,door]