Introduce destructible switches

This commit is contained in:
2025-12-26 15:10:37 +00:00
parent 29394e86a3
commit 3c07069adc
7 changed files with 142 additions and 111 deletions
+27 -2
View File
@@ -3,8 +3,10 @@ module Dodge.Room.Warning (
warningRooms,
addDoorToggleTerminal,
addDoorAtNthLinkToggleTerminal,
addDoorAtNthLinkToggleInterrupt,
) where
import Dodge.Default
import Color
import Control.Monad
import qualified Data.Map.Strict as M
@@ -13,7 +15,6 @@ import qualified Data.Set as S
import Dodge.Cleat
import Dodge.Data.BlBl
import Dodge.Data.GenWorld
import Dodge.Default.Terminal
import Dodge.Placement.Instance
import Dodge.PlacementSpot
import Dodge.Room.Door
@@ -37,10 +38,34 @@ warningRooms str n = do
addDoorToggleTerminal :: [TerminalLine] -> Int -> Room -> Room
addDoorToggleTerminal = addDoorAtNthLinkToggleTerminal 0
addDoorAtNthLinkToggleInterrupt :: Int -> [String] -> Int -> Room -> Room
addDoorAtNthLinkToggleInterrupt j x i =
(rmName .++~ "doorInterrupt-")
. (rmPmnts .:~ outplace)
where
outplace =
extTrigLitPos
(atNthLnkOutShiftBy j (\(p, a) -> ((p +.+ rotateV a (V2 18.5 (-2.5)), a), S.singleton UsedPosLow)))
( Just . set plSpot (rprShift (moveToSideNthOutLink (S.singleton UsedPosLow) j))
. putInterrupt
)
& plExternalID
?~ i
putInterrupt trpl = putTerminal
(defaultMachine & mcType .~ McTrigger (fromJust $ _plMID trpl)
& mcHP .~ 100)
(simpleTermMessage x)
-- lineOutputTerminal xs --(makeColorTermLine red "WARNING" : makeTermPara str)
-- & tmToggles
-- .~ M.fromList
-- [("DOOR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))
-- ,("DOAR", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))
-- ,("TEST", TerminalToggle (fromJust $ _plMID trpl) (BlConst True))]
addDoorAtNthLinkToggleTerminal :: Int -> [TerminalLine] -> Int -> Room -> Room
addDoorAtNthLinkToggleTerminal j xs i =
(rmName .++~ "doorToggle-")
-- . (rmOutPmnt . at i ?~ outplace)
. (rmPmnts .:~ outplace)
where
outplace =