Tweak twisting when aiming
This commit is contained in:
+15
-7
@@ -7,14 +7,17 @@ import ShapePicture
|
||||
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import Control.Lens
|
||||
import Data.Maybe
|
||||
pictureWeaponOnAim
|
||||
:: Creature
|
||||
-> Int -- ^ Position of item in inventory
|
||||
-> SPic
|
||||
pictureWeaponOnAim cr i = pictureWeaponOnAimItem pic cr i
|
||||
pictureWeaponOnAim cr i = pictureWeaponOnAimItem (itSPic it) cr i
|
||||
where
|
||||
it = _crInv cr IM.! i
|
||||
pic = _itFloorPict it it
|
||||
|
||||
itSPic :: Item -> SPic
|
||||
itSPic it = _dimSPic (_itDimension it) it
|
||||
|
||||
pictureWeaponOnAim'
|
||||
:: (Item -> SPic)
|
||||
@@ -40,7 +43,7 @@ pictureWeaponOnAimItem
|
||||
-> Creature
|
||||
-> Int -- ^ Position of item in inventory
|
||||
-> SPic
|
||||
pictureWeaponOnAimItem p cr posInInv
|
||||
pictureWeaponOnAimItem p' cr posInInv
|
||||
| isSelected && _posture (_crStance cr) == Aiming && isTwisting
|
||||
= shoulderD twistWep
|
||||
| isSelected && _posture (_crStance cr) == Aiming && isOneHand
|
||||
@@ -59,15 +62,20 @@ pictureWeaponOnAimItem p cr posInInv
|
||||
handD = translateSPz 15
|
||||
isSelected = _crInvSel cr == posInInv
|
||||
drawnWep = translateSPf (1.2 * _crRad cr) 0 p
|
||||
twistWep = translateSPf (0.5 * _crRad cr) 0 p
|
||||
oneHandWep = translateSPf (1.5 * _crRad cr) 0 p
|
||||
holsteredWep = translateSPf (_crRad cr) 0 (rotateSP (strideRot cr + 1.2) p)
|
||||
twistWep = translateSPf (-5) 0 p
|
||||
oneHandWep = translateSPf 14 0 p
|
||||
holsteredWep = translateSPf (_crRad cr) 0
|
||||
(rotateSP (strideRot cr + 1.2) (translateSPf (-5) 0 twistWep))
|
||||
holsteredTwoFlat = translateSPf (_crRad cr) 0 (rotateSP (twoFlatHRot cr) p)
|
||||
holsteredOneHandWep = translateSPf (_crRad cr * 0.7 + handPos) (_crRad cr * negate 0.7) p
|
||||
holsteredOneHandWep = translateSPf (_crRad cr * 0.7 + handPos) (_crRad cr * negate 0.7)
|
||||
(translateSPf (-2) 0 p)
|
||||
handPos = case cr^? crStance . carriage of
|
||||
Just (Walking x LeftForward) -> f x * 50
|
||||
_ -> 0
|
||||
theIt = _crInv cr IM.! posInInv
|
||||
p = fromMaybe p' $ do
|
||||
x <- theIt ^? itDimension . dimPortage . handlePos
|
||||
return $translateSPf (-x) 0 p'
|
||||
isTwisting = theIt ^? itUseAimStance == Just TwoHandTwist
|
||||
isOneHand = theIt ^? itUseAimStance == Just OneHand
|
||||
isTwoHandFlat = theIt ^? itUseAimStance == Just TwoHandFlat
|
||||
|
||||
Reference in New Issue
Block a user