Refactor damages

This commit is contained in:
2025-06-07 14:26:00 +01:00
parent 7a192e7631
commit 81a7dcd962
24 changed files with 271 additions and 277 deletions
+15 -13
View File
@@ -6,11 +6,11 @@ module Dodge.Damage
, maxDamageType
) where
import qualified Data.Map.Strict as M
--import qualified Data.Map.Strict as M
import Dodge.Data.CrWlID
import Dodge.Data.World
import FoldableHelp
import Geometry.Vector
--import FoldableHelp
--import Geometry.Vector
import LensHelp
import qualified IntMapHelp as IM
@@ -25,14 +25,16 @@ damageCrWl dt (Left cr) = cWorld . lWorld . creatures . ix (_crID cr) . crState
damageCrWl dt (Right wl) = cWorld . lWorld . wallDamages %~ IM.insertWith (++) (_wlID wl) [dt]
damageDirection :: [Damage] -> Maybe Float
damageDirection ds = do
dm <- safeMinimumOn (negate . _dmAmount) ds
safeArgV (_dmTo dm -.- _dmFrom dm)
damageDirection _ = Nothing
--damageDirection ds = do
-- dm <- safeMinimumOn (negate . _dmAmount) ds
-- safeArgV (_dmTo dm -.- _dmFrom dm)
collectDamageTypes :: [Damage] -> M.Map DamageType Int
collectDamageTypes = foldl' (flip f) M.empty
where
f dm = M.insertWith (+) (_dmType dm) (_dmAmount dm)
maxDamageType :: [Damage] -> Maybe (DamageType, Int)
maxDamageType = safeMinimumOn (negate . snd) . M.assocs . collectDamageTypes
--collectDamageTypes :: [Damage] -> M.Map DamageType Int
--collectDamageTypes = foldl' (flip f) M.empty
-- where
-- f dm = M.insertWith (+) (_dmType dm) (_dmAmount dm)
--
maxDamageType :: [Damage] -> Maybe (Damage, Int)
maxDamageType _ = Nothing
--maxDamageType = safeMinimumOn (negate . snd) . M.assocs . collectDamageTypes