Play around with terminal messages
This commit is contained in:
@@ -27,9 +27,11 @@ generateWorldFromSeed rdata i = do
|
||||
generateGraphs
|
||||
(roomList, bounds) <- layoutLevelFromSeed 0 i
|
||||
postGenerationProcessing rdata
|
||||
$! generateLevelFromRoomList roomList initialWorld{_randGen = mkStdGen i}
|
||||
& gwWorld . cWorld . cwGen . cwgRoomClipping .~ bounds
|
||||
& gwWorld . cWorld . cwGen . cwgSeed .~ i
|
||||
$! generateLevelFromRoomList roomList $ initialWorld{_randGen = mkStdGen i}
|
||||
& cWorld . cwGen . cwgRoomClipping .~ bounds
|
||||
& cWorld . cwGen . cwgSeed .~ i
|
||||
-- & gwWorld . cWorld . cwGen . cwgRoomClipping .~ bounds
|
||||
-- & gwWorld . cWorld . cwGen . cwgSeed .~ i
|
||||
|
||||
postGenerationProcessing :: RenderData -> GenWorld -> IO World
|
||||
postGenerationProcessing _ gw = do
|
||||
|
||||
+83
-40
@@ -1,11 +1,5 @@
|
||||
module Dodge.Room.Tutorial where
|
||||
|
||||
import Dodge.Room.Room
|
||||
import Dodge.Room.Corridor
|
||||
import Dodge.Room.Airlock
|
||||
import Dodge.Room.RoadBlock
|
||||
import Dodge.Item.Held.Cane
|
||||
import Dodge.Item.Ammo
|
||||
import Dodge.Annotation.Data
|
||||
import Dodge.Cleat
|
||||
--import Control.Monad
|
||||
@@ -13,10 +7,15 @@ import Dodge.Cleat
|
||||
--import Dodge.Cleat
|
||||
import Dodge.Data.GenWorld
|
||||
import Dodge.Default.Terminal
|
||||
import Dodge.Item.Ammo
|
||||
import Dodge.Item.Held.Cane
|
||||
--import Dodge.Item.Random
|
||||
import Dodge.LevelGen.PlacementHelper
|
||||
--import Dodge.LightSource
|
||||
import Dodge.Placement.Instance
|
||||
import Dodge.PlacementSpot
|
||||
import Dodge.Room.Airlock
|
||||
import Dodge.Room.Corridor
|
||||
import Dodge.Room.Door
|
||||
import Dodge.Room.LasTurret
|
||||
import Dodge.Room.Link
|
||||
@@ -26,6 +25,8 @@ import Dodge.Room.Ngon
|
||||
--import Dodge.Room.Link
|
||||
import Dodge.Room.Procedural
|
||||
import Dodge.Room.RezBox
|
||||
import Dodge.Room.RoadBlock
|
||||
import Dodge.Room.Room
|
||||
import Dodge.Room.Warning
|
||||
--import Dodge.Room.RoadBlock
|
||||
import Dodge.RoomLink
|
||||
@@ -42,16 +43,16 @@ import TreeHelp
|
||||
|
||||
tutAnoTree :: Annotation
|
||||
tutAnoTree =
|
||||
OnwardList
|
||||
-- [ AnTree $ return $ tToBTree "teststart" $ return $ cleatOnward corridor
|
||||
-- , AnTree $ tutDrop
|
||||
OnwardList
|
||||
-- [ AnTree $ return $ tToBTree "teststart" $ return $ cleatOnward corridor
|
||||
-- , AnTree $ tutDrop
|
||||
[ AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
|
||||
, AnTree corDoor
|
||||
, AnTree $ tutRooms
|
||||
, AnTree $ tutDrop
|
||||
, AnTree $ return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
---- , AnTree $ pickupTut
|
||||
---- , AnTree $ weaponTut
|
||||
---- , AnTree $ pickupTut
|
||||
---- , AnTree $ weaponTut
|
||||
]
|
||||
|
||||
tutDrop :: State LayoutVars (MetaTree Room String)
|
||||
@@ -60,31 +61,72 @@ tutDrop = do
|
||||
i <- nextLayoutInt
|
||||
let y = decontamRoom i
|
||||
rm <- roomRectAutoLinks 40 100
|
||||
return $ tToBTree "TutDrop" $ treePost [x,y,cleatOnward rm]
|
||||
return $
|
||||
tToBTree "TutDrop" $
|
||||
treePost
|
||||
[x & rmPmnts .:~ t, y, cleatOnward rm]
|
||||
where
|
||||
t =
|
||||
putMessageTerminal
|
||||
terminalColor
|
||||
(defaultTerminal & tmBootLines .~ ss <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
|
||||
& plSpot .~ rprBoolShift isUnusedLnk
|
||||
(\(p, a) -> (p + 10 *.* unitVectorAtAngle (a - pi/2), a))
|
||||
ss =
|
||||
[ makeTermLine "USE [F] OR CLICK AND DRAG TO DROP ITEMS"
|
||||
]
|
||||
|
||||
tutRooms :: State LayoutVars (MetaTree Room String)
|
||||
tutRooms = do
|
||||
i <- nextLayoutInt
|
||||
j <- nextLayoutInt
|
||||
x <- shuffleLinks =<< analyserByDoor (RequireEquipment (AMMOMAG DRUMMAG)) i
|
||||
<$> addDoorAtNthLinkToggleTerminal 1 ss j
|
||||
x <-
|
||||
shuffleLinks =<< analyserByDoor (RequireEquipment (AMMOMAG DRUMMAG)) i
|
||||
<$> addDoorAtNthLinkToggleTerminal 1 ss j
|
||||
<$> roomNgon 6 100
|
||||
bcor <- blockedCorridor
|
||||
r1 <-(r burstRifle)
|
||||
r2 <-(r (drumMag & itConsumables ?~ 100))
|
||||
return $ tToBTree "DoorTest" $ Node x
|
||||
[treeFromPost [triggerDoorRoom i] r1
|
||||
,treeFromPost [triggerDoorRoom j] r2
|
||||
,bcor
|
||||
]
|
||||
r1 <- (r burstRifle) <&> rmPmnts .:~ t
|
||||
r2 <- (r (drumMag & itConsumables ?~ 500))
|
||||
return $
|
||||
tToBTree "DoorTest" $
|
||||
Node
|
||||
x
|
||||
[ treeFromPost [triggerDoorRoom i] r1
|
||||
, treeFromPost [triggerDoorRoom j] r2
|
||||
, bcor
|
||||
]
|
||||
where
|
||||
ss = [makeTermLine "BE READY TO PERFORM SOME BASIC TASKS"
|
||||
ss =
|
||||
[ makeTermLine "SOME TERMINALS CAN BE INTERACTED WITH DIRECTLY"
|
||||
, makeTermLine " THESE WILL DISPLAY A PROMPT SYMBOL"
|
||||
, makeTermLine " _____"
|
||||
, makeTermLine " | | TYPE OR SCROLL TO ENTER COMMANDS"
|
||||
, makeTermLine " | > |"
|
||||
, makeTermLine " | | CLICK OR USE [RETURN] TO CONFIRM"
|
||||
, makeTermLine " ^^^^^"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "INTERACTION TEST"
|
||||
, makeTermLine "<TYPE OR SCROLL TO SELECT COMMANDS>"
|
||||
, makeTermLine "<USE CLICK OR RETURN TO ENTER COMMANDS>"
|
||||
]
|
||||
r x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x)
|
||||
t =
|
||||
putMessageTerminal
|
||||
terminalColor
|
||||
(defaultTerminal & tmBootLines .~ ss' <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
|
||||
& plSpot .~ rprBoolShift isUnusedLnk
|
||||
(\(p, a) -> (p + 10 *.* unitVectorAtAngle (a - pi/2), a))
|
||||
ss' =
|
||||
[ makeTermLine "HOLD [CAPS] AND SCROLL\\"
|
||||
, makeTermLine " OR }~ TO REARRANGE INVENTORY ITEMS"
|
||||
, makeTermLine " CLICK AND DRAG/"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "AMMO MAGS ARE TYPICALLY LOADED BENEATH WEAPONS"
|
||||
, makeTermLine " .-------."
|
||||
, makeTermLine " BURSTRIFLE |DRUMMAG|"
|
||||
, makeTermLine " <--------------'"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "HOLD [RMB]\\"
|
||||
, makeTermLine " AND TAP }~ TO FIRE LOADED WEAPONS"
|
||||
, makeTermLine " TAP [LMB]/"
|
||||
]
|
||||
|
||||
tutRezBox :: RandomGen g => State g Room
|
||||
tutRezBox = do
|
||||
@@ -93,26 +135,27 @@ tutRezBox = do
|
||||
roomRect 40 60 1 1
|
||||
& rmPmnts
|
||||
.~ [ sPS (V2 20 1) 0 $ PutLS ls
|
||||
, putImmediateMessageTerminal terminalColor
|
||||
(defaultTerminal & tmBootLines .~ s
|
||||
<> tlSetStatus (TerminalPressTo "USE [WASD] TO MOVE") <> tlDoEffect
|
||||
(TmWdWdLeaveTerminal "USE [WASD] TO MOVE"))
|
||||
, Placement (PS 0 0) PutNothing Nothing $ \w _ -> Just $ putImmediateMessageTerminal
|
||||
terminalColor
|
||||
( defaultTerminal & tmBootLines .~ s w
|
||||
<> tlSetStatus (TerminalPressTo "USE [WASD] TO MOVE")
|
||||
<> tlDoEffect
|
||||
(TmWdWdLeaveTerminal "USE [WASD] TO MOVE")
|
||||
)
|
||||
& plSpot .~ PS (V2 20 0) 0
|
||||
]
|
||||
& restrictInLinks (\(V2 _ h, _) -> h < 1)
|
||||
& restrictOutLinks (\(V2 _ h, _) -> h > 59)
|
||||
& rmName .~ "tutRezBox"
|
||||
where
|
||||
s = tutorialMessage1
|
||||
s w = tutorialMessage1 (w ^. cWorld . cwGen . cwgSeed)
|
||||
|
||||
tutorialMessage1 :: [TerminalLine]
|
||||
tutorialMessage1 =
|
||||
[makeTermLine "SYNTHESIS SUCCESSFUL..."
|
||||
,makeTermLine "WELCOME TO THE STATION!"
|
||||
,makeTermLine ""
|
||||
,makeTermLine "INTERACTION TEST"
|
||||
] <> tlSetStatus (TerminalPressTo "USE [SPACE] TO INTERACT")
|
||||
<> [makeTermLine "<USE [SPACE] TO INTERACT>"
|
||||
,makeTermLine ""
|
||||
,makeTermLine "MOBILITY TEST"
|
||||
tutorialMessage1 :: Int -> [TerminalLine]
|
||||
tutorialMessage1 i =
|
||||
[ makeTermLine $ "WELCOME TO ENVIRONMENT " ++ show i
|
||||
, makeTermLine ""
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "USE [SPACE] TO INTERACT")
|
||||
<> [ makeTermLine "USE [SPACE] TO INTERACT"
|
||||
, makeTermLine ""
|
||||
]
|
||||
|
||||
@@ -158,8 +158,7 @@ tryPickupSelected k mpos w = do
|
||||
_ -> foldl' (flip $ pickUpItem 0) w ispickup & newdisel (length (cr ^. crInv)) xs
|
||||
where
|
||||
newdisel j xs =
|
||||
hud . diSelection
|
||||
?~ Sel 0 j (IS.fromDistinctAscList [j .. j + IS.size xs -1])
|
||||
hud . diSelection ?~ Sel 0 j (IS.fromDistinctAscList [j .. j + IS.size xs -1])
|
||||
g i = do
|
||||
NInt j <- w ^? hud . closeItems . ix i
|
||||
w ^? cWorld . lWorld . items . ix j
|
||||
|
||||
Reference in New Issue
Block a user