Test making walking movement slightly more floaty
This commit is contained in:
@@ -6,7 +6,7 @@ import Control.Lens
|
||||
|
||||
crMvType :: Creature -> CrMvType
|
||||
crMvType cr = case _crType cr of
|
||||
Avatar {_avMoveSpeed = s} -> MvWalking s
|
||||
Avatar {} -> MvWalking 1.5
|
||||
ChaseCrit {} -> defaultChaseMvType
|
||||
HoverCrit {} -> defaultChaseMvType & mvSpeed .~ 0.1
|
||||
SwarmCrit -> defaultChaseMvType
|
||||
|
||||
@@ -26,7 +26,8 @@ updateCarriage' cid cr w = \case
|
||||
(chooseFootSound ff)
|
||||
Nothing
|
||||
& over (cWorld . lWorld . creatures . ix cid . crType) resetStride
|
||||
_ -> w
|
||||
& tocr . crPos +~ 0.1 *^ (cr ^. crOldPos - oop)
|
||||
_ -> w & tocr . crPos +~ 0.5 *^ (cr ^. crOldPos - oop)
|
||||
Floating -> w
|
||||
Flying {_zSpeed = dz, _flyInertia = x} ->
|
||||
w & cWorld . lWorld . creatures . ix cid . crPos . _xy +~ x *^ f (cr ^. crOldPos . _xy - oop ^. _xy)
|
||||
@@ -38,11 +39,13 @@ updateCarriage' cid cr w = \case
|
||||
let v = 0.9 *^ (cr ^. crOldPos - oop & _z -~ 0.5)
|
||||
ep = cr ^. crPos + v
|
||||
in if ep ^. _z < 0 && not (any (pointInPoly (ep ^. _xy)) (w ^. cWorld . chasms))
|
||||
then w & cWorld . lWorld . creatures . ix cid . crPos .~ (ep & _z .~ 0)
|
||||
then w & tocr . crPos .~ (ep & _z .~ 0)
|
||||
& cWorld . lWorld . creatures . ix cid . crStance . carriage .~ OnGround
|
||||
else w & cWorld . lWorld . creatures . ix cid . crPos .~ ep
|
||||
OnGround {} -> w
|
||||
& tocr . crPos +~ 0.8 *^ (cr ^. crOldPos - oop)
|
||||
where
|
||||
tocr = cWorld . lWorld . creatures . ix cid
|
||||
oop = cr ^. crOldOldPos
|
||||
f v | norm v > 10 = 10 *^ signorm v
|
||||
| otherwise = v
|
||||
|
||||
@@ -53,7 +53,7 @@ updateLivingCreature cr =
|
||||
Avatar{} ->
|
||||
(cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse)
|
||||
. crUpdate cid
|
||||
. yourControl cr
|
||||
. yourControl
|
||||
LampCrit{} -> updateLampoid cr
|
||||
BarrelCrit bt -> updateBarreloid bt cr
|
||||
ChaseCrit{} -> \w ->
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
module Dodge.Creature.Vocalization (
|
||||
crWarningSounds,
|
||||
crDeathSounds,
|
||||
crVocalizationSound,
|
||||
resetCrVocCoolDown,
|
||||
) where
|
||||
|
||||
@@ -14,16 +13,6 @@ import Dodge.SoundLogic.ExternallyGeneratedSounds
|
||||
import Sound.Data
|
||||
import System.Random
|
||||
|
||||
crVocalizationSound :: Creature -> Maybe SoundID
|
||||
crVocalizationSound cr = case cr ^. crType of
|
||||
Avatar{} -> Nothing
|
||||
ChaseCrit{} -> Just seagullChatterS
|
||||
HoverCrit{} -> Just beep3QuickS
|
||||
SwarmCrit -> Nothing
|
||||
AutoCrit -> Nothing
|
||||
BarrelCrit{} -> Nothing
|
||||
LampCrit{} -> Nothing
|
||||
|
||||
crWarningSounds :: Creature -> [SoundID]
|
||||
crWarningSounds cr = case cr ^. crType of
|
||||
Avatar{} -> mempty
|
||||
|
||||
@@ -23,16 +23,12 @@ import NewInt
|
||||
import qualified SDL
|
||||
|
||||
-- | The AI equivalent for your control.
|
||||
yourControl :: Creature -> World -> World
|
||||
yourControl _ w
|
||||
yourControl :: World -> World
|
||||
yourControl w
|
||||
| inTextInputFocus w = w
|
||||
| NoSubInventory <- w ^. hud . subInventory =
|
||||
w
|
||||
& cWorld
|
||||
. lWorld
|
||||
. creatures
|
||||
. ix 0
|
||||
%~ wasdWithAiming w
|
||||
& cWorld . lWorld . creatures . ix 0 %~ wasdWithAiming w
|
||||
& tryClickUse (w ^. input . mouseButtons)
|
||||
& handleHotkeys
|
||||
| otherwise = w & cWorld . lWorld . creatures . ix 0 %~ wasdWithAiming w
|
||||
@@ -147,7 +143,7 @@ wasdMovement lw inp cam speed = theMovement . setMvAim
|
||||
movAbs = rotateV (cam ^. camRot) $ normalizeV movDir
|
||||
theMovement
|
||||
| movDir == V2 0 0 = id
|
||||
| otherwise = crMvAbsolute lw (speed *.* movAbs)
|
||||
| otherwise = crMvAbsolute lw (speed *^ movAbs)
|
||||
|
||||
aimTurn :: LWorld -> Float -> Creature -> Creature
|
||||
aimTurn lw a cr = creatureTurnTowardDir a (x * 0.2) cr
|
||||
|
||||
Reference in New Issue
Block a user