Commit before tweaking placementn/room generation
This commit is contained in:
@@ -90,9 +90,27 @@ analyserByNthLink n proxreq i rm =
|
||||
where
|
||||
sensorshift (p, a) = (p +.+ rotateV a (V2 (-30) (-10)), a)
|
||||
|
||||
analyserByNthLinkWithPrompt
|
||||
:: Int -> [TerminalLine] -> ProximityRequirement -> Int -> Room -> Room
|
||||
analyserByNthLinkWithPrompt n l proxreq i rm =
|
||||
rm
|
||||
& rmPmnts
|
||||
.++~ [ psPt (atNthLinkOut n) $ PutForeground $ verticalWire (V2 20 0) 0 80
|
||||
]
|
||||
& rmOutPmnt . at i ?~
|
||||
analyserWithPrompt l
|
||||
(SensorWithRequirement proxreq)
|
||||
(atNthLnkOutShiftBy n (\(p, a) -> (p +.+ rotateV a (V2 18.5 (-2.5)), a)))
|
||||
(atNthLnkOutShiftBy n sensorshift)
|
||||
where
|
||||
sensorshift (p, a) = (p +.+ rotateV a (V2 (-30) (-10)), a)
|
||||
|
||||
analyserByDoor :: ProximityRequirement -> Int -> Room -> Room
|
||||
analyserByDoor = analyserByNthLink 0
|
||||
|
||||
analyserByDoorWithPrompt :: [TerminalLine] -> ProximityRequirement -> Int -> Room -> Room
|
||||
analyserByDoorWithPrompt = analyserByNthLinkWithPrompt 0
|
||||
|
||||
healthTest :: RandomGen g => Int -> State g (Tree Room)
|
||||
healthTest n = do
|
||||
cenroom <- shuffleLinks =<< healthAnalyserByDoor n <$> roomNgon 8 200
|
||||
|
||||
@@ -8,6 +8,7 @@ module Dodge.Room.Room (
|
||||
pistolerRoom,
|
||||
spawnerRoom,
|
||||
corDoor,
|
||||
weaponBehindPillar,
|
||||
) where
|
||||
|
||||
import qualified Data.Set as S
|
||||
|
||||
+61
-31
@@ -1,5 +1,6 @@
|
||||
module Dodge.Room.Tutorial where
|
||||
|
||||
import Dodge.Room.Room
|
||||
import Dodge.Annotation.Data
|
||||
import Dodge.Cleat
|
||||
--import Control.Monad
|
||||
@@ -26,7 +27,6 @@ import Dodge.Room.Ngon
|
||||
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
|
||||
@@ -49,6 +49,9 @@ tutAnoTree =
|
||||
[ AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
|
||||
, AnTree corDoor
|
||||
, AnTree $ tutRooms
|
||||
, AnTree corDoor
|
||||
, AnTree $ tToBTree "critroom" <$> weaponBehindPillar
|
||||
, AnTree corDoor
|
||||
, AnTree $ tutDrop
|
||||
, AnTree $ return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
---- , AnTree $ pickupTut
|
||||
@@ -73,7 +76,18 @@ tutDrop = do
|
||||
& plSpot .~ rprBoolShift isUnusedLnk
|
||||
(\(p, a) -> (p + 10 *.* unitVectorAtAngle (a - pi/2), a))
|
||||
ss =
|
||||
[ makeTermLine "USE [F] OR CLICK AND DRAG TO DROP ITEMS"
|
||||
[makeTermLine "--------------------------------------------"
|
||||
,makeTermLine "YOU CAN ONLY CARRY A LIMITED AMOUNT OF ITEMS"
|
||||
,makeTermLine "--------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
|
||||
[ makeTermLine "USE [F] TO DROP SINGLE ITEMS"
|
||||
,makeTermLine "--------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
|
||||
[ makeTermLine "YOU CAN SELECT AND MOVE MULTIPLE ITEMS"
|
||||
, makeTermLine " WITH THE MOUSE"
|
||||
, makeTermLine "-------------------------------------------"
|
||||
]
|
||||
|
||||
tutRooms :: State LayoutVars (MetaTree Room String)
|
||||
@@ -81,7 +95,7 @@ tutRooms = do
|
||||
i <- nextLayoutInt
|
||||
j <- nextLayoutInt
|
||||
x <-
|
||||
shuffleLinks =<< analyserByDoor (RequireEquipment (AMMOMAG DRUMMAG)) i
|
||||
shuffleLinks =<< analyserByDoorWithPrompt sensorTut (RequireEquipment (AMMOMAG DRUMMAG)) i
|
||||
<$> addDoorAtNthLinkToggleTerminal 1 ss j
|
||||
<$> roomNgon 6 100
|
||||
bcor <- blockedCorridor
|
||||
@@ -97,13 +111,15 @@ tutRooms = do
|
||||
]
|
||||
where
|
||||
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 "YOU CAN INTERACT WITH SOME TERMINALS 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 ""
|
||||
]
|
||||
r x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x)
|
||||
@@ -114,27 +130,34 @@ tutRooms = do
|
||||
& plSpot .~ rprBoolShift isUnusedLnk
|
||||
(\(p, a) -> (p + 10 *.* unitVectorAtAngle (a - pi/2), a))
|
||||
ss' =
|
||||
[ makeTermLine "HOLD [CAPS] AND SCROLL"
|
||||
, makeTermLine " OR CLICK AND DRAG TO REARRANGE INVENTORY ITEMS"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "AMMO MAGS ARE TYPICALLY LOADED BENEATH WEAPONS"
|
||||
[ makeTermLine "---------------------------------------------"
|
||||
, makeTermLine "HOLD [CAPS] AND SCROLL"
|
||||
, makeTermLine " OR CLICK AND DRAG"
|
||||
, makeTermLine " TO REARRANGE INVENTORY ITEMS"
|
||||
, makeTermLine "---------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
|
||||
[ makeTermLine "AMMO MAGS ARE NORMALLY LOADED BENEATH WEAPONS"
|
||||
, makeTermLine " .-------."
|
||||
, makeTermLine " BURSTRIFLE |DRUMMAG|"
|
||||
, makeTermLine " <------^-------^"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "HOLD [RMB] TO AIM"
|
||||
, makeTermLine "*AND* THEN TAP [LMB] TO FIRE LOADED WEAPONS"
|
||||
, makeTermLine "---------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
|
||||
[ makeTermLine "HOLD [RMB] TO AIM"
|
||||
, makeTermLine " THEN CLICK [LMB] TO FIRE LOADED WEAPONS"
|
||||
, makeTermLine "---------------------------------------------"
|
||||
]
|
||||
|
||||
sensorTut :: [TerminalLine]
|
||||
sensorTut =
|
||||
[ makeTermLine "SOME TERMINALS DETECT EXTERNAL CONDITIONS"
|
||||
, makeTermLine "WHILE WORKING THESE DISPLAY SPINNING SYMBOL"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "**CAUTION**"
|
||||
, makeTermLine "THE CONDITIONS AND ANY EFFECTS MAY BE HIDDEN"
|
||||
, makeTermLine ""
|
||||
[ makeTermLine "--------------------------------------------"
|
||||
, makeTermLine "SOME TERMINALS DETECT EXTERNAL CONDITIONS"
|
||||
, makeTermLine "WHILE ACTIVE THESE DISPLAY A SPINNING SYMBOL"
|
||||
, makeTermLine " | / - \\"
|
||||
, makeTermLine "--------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE")
|
||||
|
||||
tutRezBox :: RandomGen g => State g Room
|
||||
tutRezBox = do
|
||||
@@ -156,17 +179,24 @@ tutRezBox = do
|
||||
& restrictOutLinks (\(V2 _ h, _) -> h > 59)
|
||||
& rmName .~ "tutRezBox"
|
||||
where
|
||||
s w = tutorialMessage1 (w ^. cWorld . cwGen . cwgSeed)
|
||||
s w = tutorialMessage1 (w ^. gwWorld . cWorld . cwGen . cwgSeed)
|
||||
|
||||
tutorialMessage1 :: Int -> [TerminalLine]
|
||||
tutorialMessage1 i =
|
||||
[ makeTermLine $ "WELCOME TO ENVIRONMENT " ++ show i
|
||||
[ makeTermLine "--------------------------------------------"
|
||||
, makeTermLine $ "WELCOME TO ENVIRONMENT " ++ show i
|
||||
, makeTermLine ""
|
||||
, makeTermLine "USE [SPACE] TO INTERACT WITH NEARBY OBJECTS"
|
||||
, makeTermLine "--------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "USE [SPACE] TO INTERACT WITH NEARBY OBJECTS")
|
||||
<> [ makeTermLine "USE [SPACE] TO INTERACT WITH NEARBY OBJECTS"
|
||||
, makeTermLine ""
|
||||
, makeTermLine "USE [W]"
|
||||
, makeTermLine " [A] [S]"
|
||||
, makeTermLine " [D] TO MOVE"
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE")
|
||||
<> [ makeTermLine "USE [W]"
|
||||
, makeTermLine " [A] [S]"
|
||||
, makeTermLine " [D] TO MOVE"
|
||||
, makeTermLine "--------------------------------------------"
|
||||
]
|
||||
<> tlSetStatus (TerminalPressTo "CONTINUE") <>
|
||||
[ makeTermLine "AFTER EXITING THIS TERMINAL YOUR INVENTORY"
|
||||
, makeTermLine " AND NEARBY OBJECTS WILL BE DISPLAYED"
|
||||
, makeTermLine "--------------------------------------------"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user