From 3f7eeb871ca265a0b59237f4ebaeb4e72f0337ac Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 26 Dec 2025 15:43:21 +0000 Subject: [PATCH] Cleanup --- src/Dodge/Data/Machine/Sensor.hs | 1 - src/Dodge/Machine/Update.hs | 13 ++++-- src/Dodge/Placement/Instance/Sensor.hs | 22 ++-------- src/Dodge/Placement/Instance/Terminal.hs | 15 +++---- tags | 54 ++++++++++++------------ 5 files changed, 44 insertions(+), 61 deletions(-) diff --git a/src/Dodge/Data/Machine/Sensor.hs b/src/Dodge/Data/Machine/Sensor.hs index b4df46a26..c3475266d 100644 --- a/src/Dodge/Data/Machine/Sensor.hs +++ b/src/Dodge/Data/Machine/Sensor.hs @@ -19,7 +19,6 @@ data SensorType data DamageSensor = DamSensor { _sensAmount :: Int , _sensType :: SensorType - , _sensThreshold :: Int } data ProximitySensor = ProxSensor diff --git a/src/Dodge/Machine/Update.hs b/src/Dodge/Machine/Update.hs index 1666080d1..6847928a3 100644 --- a/src/Dodge/Machine/Update.hs +++ b/src/Dodge/Machine/Update.hs @@ -120,7 +120,7 @@ mcUseItem mc w = fromMaybe w $ do mcDamSensorTriggerUpdate :: DamageSensor -> Machine -> World -> World mcDamSensorTriggerUpdate se mc = fromMaybe id $ do trid <- mc ^? mcMounts . ix OTTrigger - bval <- mcTriggerVal se + let bval = se ^. sensAmount > damageTypeThreshold (se ^. sensType) return $ cWorld . lWorld . triggers . ix trid ||~ bval mcProxSensorTriggerUpdate :: ProximitySensor -> Machine -> World -> World @@ -129,8 +129,13 @@ mcProxSensorTriggerUpdate se mc = fromMaybe id $ do bval <- se ^? proxToggle . _Just return $ cWorld . lWorld . triggers . at trid ?~ bval -mcTriggerVal :: DamageSensor -> Maybe Bool -mcTriggerVal se = Just $ _sensAmount se > _sensThreshold se +damageTypeThreshold :: SensorType -> Int +damageTypeThreshold = \case + LaserSensor -> 1000 + ElectricSensor -> 500 + ThermalSensor -> 1000 + PhysicalSensor -> 1000 + mcPlaySound :: Machine -> World -> World mcPlaySound mc w = fromMaybe w $ do @@ -167,7 +172,7 @@ mcApplyDamage ds mc = case mc ^? mcType . _McDamSensor of mcpointer = cWorld . lWorld . machines . ix (_mcID mc) mcDamSensorUpdate :: DamageSensor -> Machine -> World -> World -mcDamSensorUpdate se = senseDamage (_sensThreshold se) (_sensType se) +mcDamSensorUpdate se = senseDamage (damageTypeThreshold (se ^. sensType)) (se ^. sensType) mcProxSensorUpdate :: ProximitySensor -> Machine -> World -> World mcProxSensorUpdate se mc = case se ^. proxSensorType of diff --git a/src/Dodge/Placement/Instance/Sensor.hs b/src/Dodge/Placement/Instance/Sensor.hs index b70348cdb..4f9e98141 100644 --- a/src/Dodge/Placement/Instance/Sensor.hs +++ b/src/Dodge/Placement/Instance/Sensor.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE LambdaCase #-} module Dodge.Placement.Instance.Sensor ( lightSensor, damageSensor, @@ -17,29 +18,12 @@ damageSensor dt wdth mtrid ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1) $ PutMachine (reverse $ square wdth) ( defaultMachine --- & mcColor .~ yellow & mcMounts . at OTTrigger .~ mtrid & mcMounts . at OTLightSource ?~ lsid & mcType - .~ McDamSensor - ( DamSensor - 0 - dt - (damageTypeThreshold dt) - ) + .~ McDamSensor ( DamSensor 0 dt) ) Nothing -damageTypeThreshold :: SensorType -> Int -damageTypeThreshold dt = case dt of - LaserSensor -> 1000 - ElectricSensor -> 500 - ThermalSensor -> 1000 - PhysicalSensor -> 1000 - -lightSensor :: - Float -> - Maybe Int -> - PlacementSpot -> - Placement +lightSensor :: Float -> Maybe Int -> PlacementSpot -> Placement lightSensor = damageSensor LaserSensor diff --git a/src/Dodge/Placement/Instance/Terminal.hs b/src/Dodge/Placement/Instance/Terminal.hs index ed87eb188..6cd57d89f 100644 --- a/src/Dodge/Placement/Instance/Terminal.hs +++ b/src/Dodge/Placement/Instance/Terminal.hs @@ -51,16 +51,11 @@ putTerminalFull f mc tm = putTerminal :: Machine -> Terminal -> Placement putTerminal = putTerminalFull (\_ _ _ -> Nothing) +tmMachine :: Machine +tmMachine = defaultMachine & mcType .~ McTerminal & mcHP .~ 100 + putMessageTerminal :: Terminal -> Placement -putMessageTerminal = - putTerminal $ - defaultMachine - & mcType .~ McTerminal - & mcHP .~ 100 +putMessageTerminal = putTerminal tmMachine putImmediateMessageTerminal :: Terminal -> Placement -putImmediateMessageTerminal = - putTerminalImediateAccess $ - defaultMachine - & mcType .~ McTerminal - & mcHP .~ 100 +putImmediateMessageTerminal = putTerminalImediateAccess tmMachine diff --git a/tags b/tags index ac8bcabe4..430dab60f 100644 --- a/tags +++ b/tags @@ -2257,7 +2257,6 @@ _seObstacles src/Dodge/Data/PathGraph.hs 45;" f _seenLocations src/Dodge/Data/LWorld.hs 136;" f _selLocation src/Dodge/Data/LWorld.hs 137;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f -_sensThreshold src/Dodge/Data/Machine/Sensor.hs 22;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f _sentinelDir src/Dodge/Data/ActionPlan.hs 152;" f @@ -2521,7 +2520,7 @@ addButtonSlowDoor src/Dodge/Room/LongDoor.hs 96;" f addCrGibs src/Dodge/Prop/Gib.hs 17;" f addDepth src/Picture/Base.hs 136;" f addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 41;" f -addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 65;" f +addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 66;" f addDoorToggleTerminal src/Dodge/Room/Warning.hs 38;" f addGib4 src/Dodge/Prop/Gib.hs 52;" f addGibAt src/Dodge/Prop/Gib.hs 63;" f @@ -2548,7 +2547,7 @@ addSideEffect src/Dodge/Concurrent.hs 29;" f addSouthPillars src/Dodge/Room/LongDoor.hs 88;" f addTermSignal src/Dodge/Event/Input.hs 31;" f addToTrunk src/TreeHelp.hs 157;" f -addWarningTerminal src/Dodge/Room/Warning.hs 87;" f +addWarningTerminal src/Dodge/Room/Warning.hs 88;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f advanceScrollAmount src/Dodge/Update.hs 422;" f @@ -3047,10 +3046,10 @@ damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f damageHP src/Dodge/Creature/Damage.hs 37;" f damageInCircle src/Dodge/Damage.hs 61;" f damageMetal src/Dodge/Material/Damage.hs 64;" f -damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f +damageSensor src/Dodge/Placement/Instance/Sensor.hs 14;" f damageStone src/Dodge/Material/Damage.hs 33;" f damageThingHit src/Dodge/Bullet.hs 180;" f -damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 33;" f +damageTypeThreshold src/Dodge/Machine/Update.hs 135;" f damageWall src/Dodge/Wall/Damage.hs 29;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f dark src/Color.hs 135;" f @@ -3601,8 +3600,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 539;" f getCommand src/Dodge/Terminal.hs 52;" f getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f -getCrsFromRooms src/Dodge/Room/Tutorial.hs 346;" f -getCrsFromRooms' src/Dodge/Room/Tutorial.hs 333;" f +getCrsFromRooms src/Dodge/Room/Tutorial.hs 349;" f +getCrsFromRooms' src/Dodge/Room/Tutorial.hs 336;" f getDebugMouseOver src/Dodge/Update.hs 392;" f getDistortions src/Dodge/Render.hs 441;" f getEdgesCrossing src/Dodge/Path.hs 37;" f @@ -3619,7 +3618,7 @@ getNodePos src/Dodge/Path.hs 34;" f getPJStabiliser src/Dodge/HeldUse.hs 1243;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRoomsFromInts src/Dodge/Room/Tutorial.hs 329;" f +getRoomsFromInts src/Dodge/Room/Tutorial.hs 332;" f getRootItemBounds src/Dodge/Render/HUD.hs 102;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f @@ -3985,7 +3984,7 @@ liShape src/Dodge/Placement/Instance/LightSource.hs 79;" f light src/Color.hs 131;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 60;" f lightSensInsideDoor src/Dodge/Room/LasTurret.hs 48;" f -lightSensor src/Dodge/Placement/Instance/Sensor.hs 40;" f +lightSensor src/Dodge/Placement/Instance/Sensor.hs 28;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f lightx4 src/Color.hs 155;" f linGrad src/Geometry/Intersect.hs 241;" f @@ -3994,7 +3993,7 @@ lineCol src/Picture/Base.hs 245;" f lineGeom src/Dodge/Base.hs 32;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOrth src/Dodge/Creature/Boid.hs 128;" f -lineOutputTerminal src/Dodge/Room/Warning.hs 92;" f +lineOutputTerminal src/Dodge/Room/Warning.hs 93;" f lineSplit src/Justify.hs 26;" f lineThick src/Picture/Base.hs 249;" f lineUp src/Dodge/Creature/Boid.hs 150;" f @@ -4136,19 +4135,19 @@ maybeOpenConsole src/Dodge/Update.hs 127;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f -mcApplyDamage src/Dodge/Machine/Update.hs 162;" f -mcBackgroundSound src/Dodge/Machine/Update.hs 151;" f +mcApplyDamage src/Dodge/Machine/Update.hs 170;" f +mcBackgroundSound src/Dodge/Machine/Update.hs 159;" f mcColor src/Dodge/Machine/Draw.hs 82;" f mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 120;" f -mcDamSensorUpdate src/Dodge/Machine/Update.hs 169;" f +mcDamSensorUpdate src/Dodge/Machine/Update.hs 177;" f mcKillBut src/Dodge/Machine/Destroy.hs 38;" f mcKillTerm src/Dodge/Machine/Destroy.hs 30;" f -mcNoItemsTest src/Dodge/Machine/Update.hs 177;" f -mcPlaySound src/Dodge/Machine/Update.hs 135;" f +mcNoItemsTest src/Dodge/Machine/Update.hs 185;" f +mcPlaySound src/Dodge/Machine/Update.hs 143;" f mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 126;" f -mcProxSensorUpdate src/Dodge/Machine/Update.hs 172;" f -mcProxTest src/Dodge/Machine/Update.hs 253;" f -mcProximitySensorUpdate src/Dodge/Machine/Update.hs 214;" f +mcProxSensorUpdate src/Dodge/Machine/Update.hs 180;" f +mcProxTest src/Dodge/Machine/Update.hs 261;" f +mcProximitySensorUpdate src/Dodge/Machine/Update.hs 222;" f mcSPic src/Dodge/Render/ShapePicture.hs 134;" f mcShootAuto src/Dodge/HeldUse.hs 1161;" f mcShootLaser src/Dodge/HeldUse.hs 1154;" f @@ -4230,7 +4229,7 @@ moveProjectile src/Dodge/Projectile/Update.hs 210;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 197;" f -moveToSideNthOutLink src/Dodge/Room/Warning.hs 95;" f +moveToSideNthOutLink src/Dodge/Room/Warning.hs 96;" f moveWall src/Dodge/Wall/Move.hs 23;" f moveWallID src/Dodge/Wall/Move.hs 18;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f @@ -4546,13 +4545,13 @@ putBlockV src/Dodge/Placement/Instance/Wall.hs 114;" f putDoor src/Dodge/Room/Airlock.hs 114;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f -putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 61;" f +putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 60;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 199;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 98;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 101;" f -putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 54;" f +putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 57;" f putShape src/Dodge/Room/Foreground.hs 134;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putStrLnAppend src/Dodge/LevelGen.hs 82;" f @@ -4822,13 +4821,13 @@ selSecYint src/Dodge/SelectionSections.hs 152;" f selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f -senseDamage src/Dodge/Machine/Update.hs 269;" f -sensorReqToString src/Dodge/Machine/Update.hs 247;" f +senseDamage src/Dodge/Machine/Update.hs 277;" f +sensorReqToString src/Dodge/Machine/Update.hs 255;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorSPic src/Dodge/Machine/Draw.hs 99;" f -sensorTut src/Dodge/Room/Tutorial.hs 355;" f -sensorTypeDamages src/Dodge/Machine/Update.hs 293;" f +sensorTut src/Dodge/Room/Tutorial.hs 358;" f +sensorTypeDamages src/Dodge/Machine/Update.hs 301;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f @@ -5192,6 +5191,7 @@ tlDoEffect src/Dodge/Terminal.hs 109;" f tlSetStatus src/Dodge/Terminal.hs 106;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 117;" f tmDistributeLines src/Dodge/Room/Room.hs 449;" f +tmMachine src/Dodge/Placement/Instance/Terminal.hs 54;" f tmUpdate src/Dodge/Update.hs 490;" f toBinary src/Dodge/Inventory/SelectionList.hs 144;" f toBothLnk src/Dodge/RoomLink.hs 136;" f @@ -5294,9 +5294,9 @@ tutAnoTree src/Dodge/Room/Tutorial.hs 47;" f tutDrop src/Dodge/Room/Tutorial.hs 94;" f tutHub src/Dodge/Room/Tutorial.hs 254;" f tutLight src/Dodge/Room/Tutorial.hs 219;" f -tutRezBox src/Dodge/Room/Tutorial.hs 366;" f +tutRezBox src/Dodge/Room/Tutorial.hs 369;" f tutRoomTree src/Dodge/Floor.hs 21;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 389;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 392;" f tweenAngles src/Geometry/Vector.hs 190;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f