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]