Fold aiming parameters into item use datatype
This commit is contained in:
+17
-11
@@ -10,6 +10,8 @@ import Shape
|
||||
import Geometry.Vector3D
|
||||
import Geometry
|
||||
|
||||
import Control.Lens
|
||||
|
||||
defaultAmmo :: ItemAmmo
|
||||
defaultAmmo = LoadableAmmo
|
||||
{ _aoType = GenericAmmo
|
||||
@@ -33,6 +35,7 @@ ruseRate i f ht usemods = RightUse
|
||||
}
|
||||
, _useMods = usemods
|
||||
, _useHammer = ht
|
||||
, _useAim = defaultAimParams
|
||||
}
|
||||
|
||||
ruseInstant
|
||||
@@ -45,6 +48,7 @@ ruseInstant f ht usemods = RightUse
|
||||
, _useDelay = NoDelay
|
||||
, _useMods = usemods
|
||||
, _useHammer = ht
|
||||
, _useAim = defaultAimParams
|
||||
}
|
||||
|
||||
defaultrUse :: ItemUse
|
||||
@@ -53,19 +57,27 @@ defaultrUse = RightUse
|
||||
, _useDelay = DelayRate {_rateMax = 8, _rateTime = 0}
|
||||
, _useMods = []
|
||||
, _useHammer = HasHammer HammerUp
|
||||
, _useAim = defaultAimParams
|
||||
}
|
||||
defaultlUse :: ItemUse
|
||||
defaultlUse = LeftUse
|
||||
{ _lUse = \_ _ -> id
|
||||
, _itUseDelay = DelayRate {_rateMax = 8, _rateTime = 0}
|
||||
, _itHammer = NoHammer
|
||||
, _useDelay = DelayRate {_rateMax = 8, _rateTime = 0}
|
||||
, _useHammer = NoHammer
|
||||
}
|
||||
|
||||
luseInstantNoH :: (Creature -> Int -> World -> World) -> ItemUse
|
||||
luseInstantNoH f = LeftUse
|
||||
{ _lUse = f
|
||||
, _itUseDelay = NoDelay
|
||||
, _itHammer = NoHammer
|
||||
, _useDelay = NoDelay
|
||||
, _useHammer = NoHammer
|
||||
}
|
||||
defaultAimParams :: AimParams
|
||||
defaultAimParams = AimParams
|
||||
{ _aimSpeed = 1
|
||||
, _aimRange = 0
|
||||
, _aimZoom = ItZoom 20 0.2 1
|
||||
, _aimStance = OneHand
|
||||
}
|
||||
|
||||
defaultGun :: Item
|
||||
@@ -85,10 +97,7 @@ defaultGun = Weapon
|
||||
(map (addZ 3) $ rectNESW 3 3 (-3) (-3))
|
||||
(map (addZ 0) $ rectNESW 5 3 (-5) (-7))
|
||||
)
|
||||
, _itAimingSpeed = 1
|
||||
, _itAimingRange = 0
|
||||
, _itZoom = ItZoom 20 0.2 1
|
||||
, _itAimZoom = ItZoom 20 0.2 1
|
||||
, _itEquipPict = pictureWeaponOnAim
|
||||
, _itScroll = \_ _ -> id
|
||||
, _itAttachment = NoItAttachment
|
||||
@@ -98,7 +107,6 @@ defaultGun = Weapon
|
||||
, _itInvColor = white
|
||||
, _itTargeting = Nothing
|
||||
, _itWorldTrigger = Nothing
|
||||
, _itAimStance = OneHand
|
||||
, _wpNumBarrels = 1
|
||||
, _itDimension = defaultItemDimension
|
||||
}
|
||||
@@ -113,9 +121,7 @@ defaultItemDimension = ItemDimension
|
||||
|
||||
defaultAutoGun :: Item
|
||||
defaultAutoGun = defaultGun
|
||||
{ _itInvDisplay = basicWeaponDisplay
|
||||
, _itAimStance = TwoHandTwist
|
||||
}
|
||||
& itUse . useAim . aimStance .~ TwoHandTwist
|
||||
defaultShellAmmo :: AmmoType
|
||||
defaultShellAmmo = ShellAmmo
|
||||
{ _amPayload = const id
|
||||
|
||||
Reference in New Issue
Block a user