Slow your turn when moving and not aiming

This commit is contained in:
2021-06-06 16:33:25 +02:00
parent 0b8ac97fe9
commit eb7c4a8067
3 changed files with 40 additions and 6 deletions
+4 -1
View File
@@ -34,11 +34,14 @@ wasdWithAiming
-> Creature
wasdWithAiming w speed i cr
| isAiming = set crDir mouseDir $ crMvBy (speed *.* mov) cr
| isMoving = crMvForward speed $ over crDir (`fromMaybe` dir) cr
| isMoving = crMvAbsolute (speed *.* movAbs) $ turnAction cr
-- | isMoving = crMvForward speed $ over crDir (`fromMaybe` dir) cr
| otherwise = cr
where
(mov',dir') = wasdComp (view keys w) w
dir = fmap (_cameraRot w +) dir'
turnAction cr' = maybe cr (\d -> creatureTurnTowardDir d 0.2 cr') dir
movAbs = rotateV (_cameraRot w) mov'
mov = rotateV (negate $ _crDir cr - _cameraRot w) mov'
isAiming = _posture (_crStance cr) == Aiming
isMoving = mov' /= (0,0)