21 lines
753 B
Haskell
21 lines
753 B
Haskell
module Dodge.Creature.HandPos where
|
|
import Dodge.Data
|
|
--import Geometry
|
|
import Control.Lens
|
|
import Data.Maybe
|
|
|
|
-- the position of a weapon handle
|
|
aimingWeaponHandlePos :: Creature -> Item -> Float
|
|
aimingWeaponHandlePos cr it = case it ^? itUse. useAim . aimStance of
|
|
Just TwoHandTwist -> -5
|
|
Just OneHand -> 14
|
|
Just TwoHandFlat -> 1.2 * _crRad cr
|
|
Just LeaveHolstered -> 0
|
|
Nothing -> 0
|
|
aimingWeaponZeroPos :: Creature -> Item -> Float
|
|
aimingWeaponZeroPos cr it = aimingWeaponHandlePos cr it
|
|
- fromMaybe 0 (it ^? itDimension . dimPortage . handlePos)
|
|
aimingMuzzlePos :: Creature -> Item -> Float
|
|
aimingMuzzlePos cr it = aimingWeaponZeroPos cr it
|
|
+ fromMaybe 0 (it ^? itDimension . dimPortage . muzPos)
|