69 lines
1.9 KiB
Haskell
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]
|