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)