Introduce destructible switches
This commit is contained in:
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user