Fold aiming parameters into item use datatype

This commit is contained in:
2021-11-27 18:10:05 +00:00
parent 8639b2d428
commit 652af6b0a9
24 changed files with 135 additions and 155 deletions
+12 -16
View File
@@ -301,13 +301,22 @@ data ItemUse
, _useDelay :: UseDelay
, _useMods :: [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
, _useHammer :: HammerType
, _useAim :: AimParams
}
| LeftUse
{ _lUse :: Creature -> Int -> World -> World
, _itUseDelay :: UseDelay
, _itHammer :: HammerType
, _useDelay :: UseDelay
, _useHammer :: HammerType
}
| NoUse
data AimParams = AimParams
{ _aimSpeed :: Float
, _aimRange :: Float
, _aimZoom :: ItZoom
, _aimStance :: AimStance
}
_itUseAimStance :: Item -> AimStance
_itUseAimStance = _aimStance . _useAim . _itUse
data ItemAmmo
= LoadableAmmo
{ _aoType :: AmmoType
@@ -333,10 +342,7 @@ data Item
, _wpSpread :: Float
, _wpRange :: Float
, _itFloorPict :: Item -> SPic
, _itAimingSpeed :: Float
, _itAimingRange :: Float
, _itZoom :: ItZoom
, _itAimZoom :: ItZoom
, _itEquipPict :: Creature -> Int -> SPic
, _itScroll :: Float -> Creature -> Item -> Item
, _itIdentity :: ItemIdentity
@@ -347,7 +353,6 @@ data Item
, _itInvColor :: Color
, _itTargeting :: Maybe (World -> Maybe Point2, Int -> Item -> Creature -> World -> Picture)
, _itWorldTrigger :: Maybe (Int -> World -> Bool)
, _itAimStance :: AimStance
, _wpNumBarrels :: Int
, _itDimension :: ItemDimension
, _itCurseStatus :: CurseStatus
@@ -364,7 +369,6 @@ data Item
, _itInvDisplay :: Item -> String
, _itInvColor :: Color
, _itEffect :: ItEffect
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
, _itDimension :: ItemDimension
}
@@ -378,7 +382,6 @@ data Item
, _itID :: Maybe Int
, _itInvDisplay :: Item -> String
, _itInvColor :: Color
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
, _itDimension :: ItemDimension
}
@@ -389,13 +392,9 @@ data Item
, _itIdentity :: ItemIdentity
, _itEffect :: ItEffect
, _itID :: Maybe Int
, _itAimingSpeed :: Float
, _itAimingRange :: Float
, _itZoom :: ItZoom
, _itAimZoom :: ItZoom
, _itInvDisplay :: Item -> String
, _itInvColor :: Color
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
, _itDimension :: ItemDimension
}
@@ -407,10 +406,7 @@ data Item
, _twMaxRange :: Float
, _twAccuracy :: Float
, _itUse :: ItemUse
, _itAimingSpeed :: Float
, _itAimingRange :: Float
, _itZoom :: ItZoom
, _itAimZoom :: ItZoom
, _itEquipPict :: Creature -> Int -> SPic
, _itIdentity :: ItemIdentity
, _itID :: Maybe Int
@@ -419,7 +415,6 @@ data Item
, _itInvColor :: Color
, _itEffect :: ItEffect
, _itScroll :: Float -> Creature -> Item -> Item
, _itAimStance :: AimStance
, _itCurseStatus :: CurseStatus
, _itDimension :: ItemDimension
}
@@ -894,3 +889,4 @@ makeLenses ''Zone
makeLenses ''ItemDimension
makeLenses ''Vocalization
makeLenses ''UseDelay
makeLenses ''AimParams