Refactor, try to limit dependencies
This commit is contained in:
+6
-4
@@ -1,15 +1,17 @@
|
||||
module Dodge.Damage where
|
||||
import Dodge.Data
|
||||
|
||||
import qualified Data.Map.Strict as M
|
||||
import Dodge.Data.CrWlID
|
||||
import Dodge.Data.World
|
||||
import Dodge.Wall.Damage
|
||||
import FoldableHelp
|
||||
import Geometry.Vector
|
||||
import LensHelp
|
||||
|
||||
import qualified Data.Map.Strict as M
|
||||
damageCrWlID :: Damage -> CrWlID -> World -> World
|
||||
damageCrWlID dam crwl = case crwl of
|
||||
NothingID -> id
|
||||
CrID cid -> cWorld . creatures . ix cid . crState . csDamage .:~ dam
|
||||
CrID cid -> cWorld . creatures . ix cid . crState . csDamage .:~ dam
|
||||
WlID wlid -> cWorld . wallDamages . ix wlid .:~ dam
|
||||
|
||||
damageCrWall :: Damage -> Either Creature Wall -> World -> World
|
||||
@@ -26,5 +28,5 @@ collectDamageTypes = foldr f M.empty
|
||||
where
|
||||
f dm = M.insertWith (+) (_dmType dm) (_dmAmount dm)
|
||||
|
||||
maxDamageType :: [Damage] -> Maybe (DamageType,Int)
|
||||
maxDamageType :: [Damage] -> Maybe (DamageType, Int)
|
||||
maxDamageType = safeMinimumOn (negate . snd) . M.assocs . collectDamageTypes
|
||||
|
||||
Reference in New Issue
Block a user