Make armour slow only on aiming

This commit is contained in:
jgk
2021-05-21 14:30:51 +02:00
parent 322894c513
commit 26f0ca4ab5
2 changed files with 7 additions and 5 deletions
+6 -3
View File
@@ -18,7 +18,10 @@ crMvBy
crMvBy p' cr = advanceStepCounter (magV p) $ over crPos (+.+ p) cr
where
p = (*.*) (equipFactor * aimingFactor) $ rotateV (_crDir cr) p'
equipFactor = product $ map equipSpeed $ IM.elems $ _crInv cr
equipFactor
| _posture (_crStance cr) == Aiming
= product $ map equipAimSpeed $ IM.elems $ _crInv cr
| otherwise = product $ map equipSpeed $ IM.elems $ _crInv cr
aimingFactor
| _posture (_crStance cr) == Aiming = fromMaybe 1 $ it ^? itAimingSpeed
| otherwise = 1
@@ -68,6 +71,6 @@ equipSpeed _ = 1
equipAimSpeed :: Item -> Float
equipAimSpeed NoItem = 1
equipAimSpeed it
| _itIdentity it == FrontArmour = 0.75
| _itIdentity it == FlameShield = 0.75
| _itIdentity it == FrontArmour = 0.5
| _itIdentity it == FlameShield = 0.5
| otherwise = 1
+1 -2
View File
@@ -24,8 +24,7 @@ yourControl w (f,g) cr =
, Just . mouseActionsCr (_mouseButtons w) $ wasdWithAiming w speed 0 cr
)
where
speed = 3 * equipFactor
equipFactor = product $ map equipSpeed $ IM.elems $ _crInv $ _creatures w IM.! 0
speed = 3
{- | Turn key presses into creature movement. -}
wasdWithAiming
:: World