Remove explicit external terminal color record

This commit is contained in:
2025-12-07 14:24:11 +00:00
parent 1d53ff4277
commit 6e5d2f147a
16 changed files with 117 additions and 132 deletions
+3 -2
View File
@@ -11,7 +11,6 @@ module Dodge.Data.Machine (
module Dodge.Data.GenParams,
) where
import Color
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
@@ -31,7 +30,7 @@ data Machine = Machine
, _mcMaterial :: Material
, _mcPos :: Point2
, _mcDir :: Float
, _mcColor :: Color
-- , _mcColor :: Color
, _mcHP :: Int
, _mcDamage :: [Damage]
, _mcType :: MachineType
@@ -45,6 +44,8 @@ data MachineType
| McDamSensor DamageSensor
| McProxSensor ProximitySensor
| McTurret {_mctTurret :: Turret}
-- | McStorage
-- | McDistributer
data Turret = Turret
{ _tuWeapon :: Int
-1
View File
@@ -21,7 +21,6 @@ data Terminal = Terminal
, _tmBootLines :: [TerminalLine]
, _tmButtonID :: Int
, _tmMachineID :: Int
, _tmExternalColor :: Color
, _tmDisplayedLines :: [(String, Color)]
, _tmFutureLines :: [TerminalLine]
, _tmCommands :: [TCom]
-1
View File
@@ -32,7 +32,6 @@ defaultMachine =
Machine
{ _mcID = 0
, _mcWallIDs = mempty
, _mcColor = white
, _mcPos = V2 0 0
, _mcDir = 0
, _mcHP = 1000
+1 -3
View File
@@ -3,9 +3,7 @@ module Dodge.Default.Terminal
) where
import Dodge.Data.Terminal.Status
import Color
import Dodge.Data.Terminal
--import Dodge.Data.WorldEffect
defaultTerminal :: Terminal
defaultTerminal =
@@ -21,7 +19,7 @@ defaultTerminal =
, _tmStatus = TerminalOff
, _tmCommandHistory = []
, _tmToggles = mempty
, _tmExternalColor = dark magenta
-- , _tmExternalColor = dark magenta
}
--defaultTerminalInput :: TerminalInput
+11 -2
View File
@@ -46,7 +46,7 @@ terminalShape lw mc = fromMaybe mempty $ do
term <- lw ^? terminals . ix tid
return $
colorSH
(_tmExternalColor term)
(mcColor mc)
( prismBox
Medium
Typical
@@ -68,11 +68,20 @@ terminalShape lw mc = fromMaybe mempty $ do
drawBaseMachine :: Float -> Machine -> SPic
drawBaseMachine h mc =
noPic
. colorSH (_mcColor mc)
. colorSH (mcColor mc)
. upperBox Medium Typical h
. square
$ _mcWidth mc
mcColor :: Machine -> Color
mcColor mc = case mc ^. mcType of
McStatic -> blue
McTerminal -> dark magenta
McDamSensor {} -> yellow
McProxSensor {} -> aquamarine
McTurret {} -> blue
drawTurret :: LWorld -> Turret -> Machine -> SPic
drawTurret lw tu mc = fold $ do
itm <- lw ^? items . ix (tu ^. tuWeapon)
+1 -4
View File
@@ -3,7 +3,6 @@ module Dodge.Placement.Instance.Analyser (
analyserWithPrompt,
) where
import Color
import Dodge.Data.GenWorld
import Dodge.Default
import Dodge.Placement.Instance
@@ -18,7 +17,6 @@ analyserWithPrompt l pst pslight psmc = extTrigLitPos pslight $ \tp ->
Just $
plSpot .~ psmc $
putTerminal
(dark magenta)
(themachine & mcMounts . at OTTrigger .~ _plMID tp)
tparams
where
@@ -26,7 +24,6 @@ analyserWithPrompt l pst pslight psmc = extTrigLitPos pslight $ \tp ->
defaultTerminal & tmStatus .~ TerminalLineRead
& tmFutureLines .~ l
themachine =
defaultMachine & mcColor .~ aquamarine
& mcType .~ McTerminal
defaultMachine -- & mcColor .~ aquamarine
& mcHP .~ 10000
& mcType .~ McProxSensor (ProxSensor pst Nothing)
+1 -2
View File
@@ -3,7 +3,6 @@ module Dodge.Placement.Instance.Sensor (
damageSensor,
) where
import Color
import Control.Lens
import Dodge.Data.GenWorld
import Dodge.Default
@@ -18,7 +17,7 @@ damageSensor dt wdth mtrid ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1) $
PutMachine
(reverse $ square wdth)
( defaultMachine
& mcColor .~ yellow
-- & mcColor .~ yellow
& mcMounts . at OTTrigger .~ mtrid
& mcMounts . at OTLightSource ?~ lsid
& mcType
+11 -18
View File
@@ -2,10 +2,8 @@ module Dodge.Placement.Instance.Terminal (
putMessageTerminal,
putImmediateMessageTerminal,
putTerminal,
terminalColor,
) where
import Color
import Data.Maybe
import Dodge.Data.GenWorld
import Dodge.Default
@@ -14,19 +12,19 @@ import Dodge.WorldEffect
import Geometry
import LensHelp
putTerminalImediateAccess :: Color -> Machine -> Terminal -> Placement
putTerminalImediateAccess :: Machine -> Terminal -> Placement
putTerminalImediateAccess = putTerminalFull f
where
f tmpl _ _ = Just $ sps0 $ PutWorldUpdate $ const $ const $ over gwWorld $ accessTerminal (tmpl ^?! plMID . _Just)
putTerminalFull ::
(Placement -> Placement -> Placement -> Maybe Placement) ->
Color ->
Machine ->
Terminal ->
Placement
putTerminalFull f col mc tm =
ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $
putTerminalFull f mc tm =
--ps0PushPS (PutTerminal (tm & tmExternalColor .~ col)) $
ps0PushPS (PutTerminal tm) $
\tmpl -> Just $
ps0PushPS (PutButton defaultButton) $
\btpl -> Just $
@@ -51,24 +49,19 @@ putTerminalFull f col mc tm =
btid = fromJust (_plMID btpl)
mcid = fromJust (_plMID mcpl)
putTerminal :: Color -> Machine -> Terminal -> Placement
putTerminal :: Machine -> Terminal -> Placement
putTerminal = putTerminalFull (\_ _ _ -> Nothing)
putMessageTerminal :: Color -> Terminal -> Placement
putMessageTerminal col =
putTerminal col $
putMessageTerminal :: Terminal -> Placement
putMessageTerminal =
putTerminal $
defaultMachine
& mcColor .~ col
& mcType .~ McTerminal
& mcHP .~ 100
putImmediateMessageTerminal :: Color -> Terminal -> Placement
putImmediateMessageTerminal col =
putTerminalImediateAccess col $
putImmediateMessageTerminal :: Terminal -> Placement
putImmediateMessageTerminal =
putTerminalImediateAccess $
defaultMachine
& mcColor .~ col
& mcType .~ McTerminal
& mcHP .~ 100
terminalColor :: Color
terminalColor = dark magenta
+14 -17
View File
@@ -1,24 +1,24 @@
module Dodge.Placement.Instance.Turret where
module Dodge.Placement.Instance.Turret
(putLasTurret) where
import Dodge.Item.Held.BatteryGuns
import Color
import Dodge.Data.GenWorld
import Dodge.Default
import Dodge.LevelGen.PlacementHelper
import Geometry
import LensHelp
putTurret :: Item -> Float -> Placement
putTurret itm rotSpeed =
sps0 $
PutMachine
(reverse $ square 10)
( defaultMachine
& mcColor .~ blue
& mcType .~ (turret itm & _McTurret . tuTurnSpeed .~ rotSpeed)
& mcHP .~ 50000
)
(Just itm)
--putTurret :: Item -> Float -> Placement
--putTurret itm rotSpeed =
-- sps0 $
-- PutMachine
-- (reverse $ square 10)
-- ( defaultMachine
---- & mcColor .~ blue
-- & mcType .~ (turret itm & _McTurret . tuTurnSpeed .~ rotSpeed)
-- & mcHP .~ 50000
-- )
-- (Just itm)
putLasTurret :: Float -> Placement
putLasTurret rotSpeed =
@@ -26,15 +26,12 @@ putLasTurret rotSpeed =
PutMachine
(reverse $ square 10)
( defaultMachine
& mcColor .~ blue
-- & mcColor .~ blue
& mcType .~ (lasTurret & _McTurret . tuTurnSpeed .~ rotSpeed)
& mcHP .~ 50000
)
(Just laser)
turret :: Item -> MachineType
turret _ = lasTurret
lasTurret :: MachineType
lasTurret = McTurret $
Turret
+1 -1
View File
@@ -103,7 +103,7 @@ addButtonSlowDoor x h =
where
f g y = g $ y ^. _1 . _y
theterminal =
putMessageTerminal terminalColor (simpleTermMessage themessage)
putMessageTerminal (simpleTermMessage themessage)
& plSpot
.~ rprBoolShift
(isUnusedLnkType InLink)
+1 -1
View File
@@ -33,7 +33,7 @@ rezBox ls =
roomRect 40 60 1 1
& rmPmnts
.~ [ sPS (V2 20 1) 0 $ PutLS ls
, putMessageTerminal terminalColor (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal)
, putMessageTerminal (defaultTerminal & tmBootLines .~ makeTermPara s <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdDeactivateTerminal)
& plSpot .~ PS (V2 20 0) 0
]
& restrictInLinks (\(V2 _ h, _) -> h < 1)
+1 -1
View File
@@ -63,7 +63,7 @@ sensInsideDoor senseType i rm = rm
.++~ [ psPt atFstLnkOut . PutForeground $ floorWire (V2 20 0) (V2 20 (-100))
, psPt atFstLnkOut . PutForeground $ floorWire (V2 0 (-100)) (V2 20 (-100))
, psPt atFstLnkOut . PutForeground $ verticalWire (V2 20 0) 0 80
, putMessageTerminal terminalColor
, putMessageTerminal
(textTerminal & tmCommands .:~ TCDamageCommand)
& plSpot .~ rprBoolShift isUnusedLnk (shiftInBy 10 <&> (, S.singleton UsedPosHigh))
, sensAboveDoor senseType 10 (atFstLnkOutShiftInward 100) & plExternalID ?~ i
-3
View File
@@ -96,7 +96,6 @@ tutDrop = do
t j = \gw ->
let x = gw ^? genInts . ix j
in putMessageTerminal
terminalColor
(defaultTerminal & tmBootLines .~ ss <> tlSetStatus (TerminalPressTo $ show x <> "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
& plSpot
.~ rprBoolShift
@@ -293,7 +292,6 @@ tutHub = do
ammoroom x = roomRectAutoLinks 100 100 <&> rmPmnts .:~ sps (PS 50 0) (PutFlIt x)
itemshiftterminal =
putMessageTerminal
terminalColor
(defaultTerminal & tmBootLines .~ ss' <> tlSetStatus (TerminalPressTo "QUIT") <> tlDoEffect TmWdWdPowerDownTerminal)
& plSpot
.~ rprBoolShift
@@ -366,7 +364,6 @@ tutRezBox = do
, Placement (PS 0 0) PutNothing Nothing Nothing $ \w _ ->
Just $
putImmediateMessageTerminal
terminalColor
( defaultTerminal & tmBootLines .~ s w
<> tlSetStatus (TerminalPressTo "QUIT")
<> tlDoEffect TmWdWdPowerDownTerminal
+1 -1
View File
@@ -47,7 +47,7 @@ addDoorAtNthLinkToggleTerminal j xs i =
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))
. putMessageTerminal terminalColor
. putMessageTerminal
. termMessages
)
& plExternalID