Stun turrets with electrical damage directly

This commit is contained in:
2026-02-15 17:15:08 +00:00
parent a9e80809e8
commit 8ae58823f8
7 changed files with 42 additions and 39 deletions
+6 -3
View File
@@ -48,14 +48,17 @@ damageMachine dam x mcid w = case w ^? cWorld . lWorld . machines . ix mcid of
Just mc | Just se <- mc ^? mcType . _McDamSensor
, sensorTypeDamages (se ^. sensType) dam
-> (mempty,mcDamSensorUpdate' (_dmAmount dam) se mc w)
Just mc | McTurret{} <- mc ^. mcType
, Electrical edam <- dam
-> (mempty, w & cWorld . lWorld . machines . ix mcid . mcType . mctTurretStun %~ (min 100 . (+ edam)))
Just mc | _mcHP mc < x -> destroyMachine' mc w
_ -> (mempty, w & cWorld . lWorld . machines . ix mcid . mcHP -~ x)
mcDamSensorUpdate' :: Int -> DamageSensor -> Machine -> World -> World
mcDamSensorUpdate' x se = senseDamage' x (damageTypeThreshold' (se ^. sensType)) (se ^. sensType)
mcDamSensorUpdate' x se = senseDamage' x (damageTypeThreshold' (se ^. sensType))
senseDamage' :: Int -> Int -> SensorType -> Machine -> World -> World
senseDamage' x threshold dt mc =
senseDamage' :: Int -> Int -> Machine -> World -> World
senseDamage' x threshold mc =
(cWorld . lWorld . machines . ix mcid %~ upmc)
. updatels
where