Start creating explicit tutorial map

This commit is contained in:
2025-08-21 16:31:04 +01:00
parent 21460ceaa8
commit befe24e038
15 changed files with 272 additions and 161 deletions
+22 -3
View File
@@ -1,9 +1,11 @@
module Dodge.Placement.Instance.Terminal (
putMessageTerminal,
putImmediateMessageTerminal,
putTerminal,
terminalColor,
) where
import Dodge.WorldEffect
import Color
import Data.Maybe
import Dodge.Data.GenWorld
@@ -13,8 +15,14 @@ import Dodge.SoundLogic
import Geometry
import LensHelp
putTerminal :: Color -> Machine -> Terminal -> Placement
putTerminal col mc tm =
putTerminalImediateAccess :: Color -> Machine -> Terminal -> Placement
putTerminalImediateAccess = putTerminalFull f
where
f tmpl _ _ = Just $ sps0 $ PutWorldUpdate $ const $ accessTerminal (tmpl ^?! plMID . _Just)
putTerminalFull ::(Placement -> Placement -> Placement -> Maybe Placement) -> Color -> Machine -> Terminal ->
Placement
putTerminalFull f col mc tm =
ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $
\tmpl -> Just $
ps0PushPS (PutButton defaultButton) $
@@ -27,7 +35,7 @@ putTerminal col mc tm =
)
defaultSensorWall
)
$ \mcpl -> Just $ sps0 $ PutWorldUpdate $ const (setids tmpl btpl mcpl)
$ \mcpl -> Just $ pt0 (PutWorldUpdate $ const (setids tmpl btpl mcpl)) (\_ -> f tmpl btpl mcpl)
where
setids tmpl btpl mcpl w =
w
@@ -40,6 +48,9 @@ putTerminal col mc tm =
btid = fromJust (_plMID btpl)
mcid = fromJust (_plMID mcpl)
putTerminal :: Color -> Machine -> Terminal -> Placement
putTerminal = putTerminalFull (\_ _ _ -> Nothing)
putMessageTerminal :: Color -> Terminal -> Placement
putMessageTerminal col =
putTerminal col $
@@ -48,5 +59,13 @@ putMessageTerminal col =
& mcType .~ McTerminal
& mcHP .~ 100
putImmediateMessageTerminal :: Color -> Terminal -> Placement
putImmediateMessageTerminal col =
putTerminalImediateAccess col $
defaultMachine
& mcColor .~ col
& mcType .~ McTerminal
& mcHP .~ 100
terminalColor :: Color
terminalColor = dark magenta