Fix enemy stride/footsteps

This commit is contained in:
2025-10-17 22:32:40 +01:00
parent f969056912
commit f3fafc6bf2
12 changed files with 254 additions and 245 deletions
+14
View File
@@ -3,6 +3,7 @@ module Dodge.Creature.Impulse.Movement (
creatureTurnTowardDir,
crMvAbsolute,
crMvBy,
crMvByNoStride,
crMvForward,
creatureTurnTo,
) where
@@ -26,6 +27,14 @@ crMvBy ::
Creature
crMvBy p lw cr = crMvAbsolute lw (rotateV (_crDir cr) p) cr
crMvByNoStride ::
-- | Movement translation vector, will be made relative to creature direction
Point2 ->
LWorld ->
Creature ->
Creature
crMvByNoStride p lw cr = crMvAbsoluteNoStride lw (rotateV (_crDir cr) p) cr
crMvAbsolute :: LWorld -> Point2 -> Creature -> Creature
crMvAbsolute lw p' cr =
advanceStepCounter (magV p) cr
@@ -34,6 +43,11 @@ crMvAbsolute lw p' cr =
where
p = strengthFactor (getCrMoveSpeed lw cr) *.* p'
crMvAbsoluteNoStride :: LWorld -> Point2 -> Creature -> Creature
crMvAbsoluteNoStride lw p' cr = cr & crPos . _xy +~ p
where
p = strengthFactor (getCrMoveSpeed lw cr) *.* p'
strengthFactor :: Int -> Float
strengthFactor i
| i > 50 = 1