Improve falling, remove stride advance while falling
This commit is contained in:
@@ -36,7 +36,7 @@ updateCarriage' cid cr w = \case
|
|||||||
%~ if cr ^. crPos . _z < 17 then min 0.05 . (+0.001) else max (-0.05) . subtract 0.001
|
%~ if cr ^. crPos . _z < 17 then min 0.05 . (+0.001) else max (-0.05) . subtract 0.001
|
||||||
Boosting {} -> w
|
Boosting {} -> w
|
||||||
Falling {} ->
|
Falling {} ->
|
||||||
let v = 0.9 *^ (cr ^. crOldPos - oop & _z -~ 0.5)
|
let v = 0.95 *^ (cr ^. crOldPos - oop & _z -~ 0.5)
|
||||||
ep = cr ^. crPos + v
|
ep = cr ^. crPos + v
|
||||||
in if ep ^. _z < 0 && not (any (pointInPoly (ep ^. _xy)) (w ^. cWorld . chasms))
|
in if ep ^. _z < 0 && not (any (pointInPoly (ep ^. _xy)) (w ^. cWorld . chasms))
|
||||||
then w & tocr . crPos .~ (ep & _z .~ 0)
|
then w & tocr . crPos .~ (ep & _z .~ 0)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import ShapePicture.Data
|
|||||||
-- allow for knockbacks etc to be determined as well as intended movements
|
-- allow for knockbacks etc to be determined as well as intended movements
|
||||||
updateCreature :: Creature -> World -> World
|
updateCreature :: Creature -> World -> World
|
||||||
updateCreature cr
|
updateCreature cr
|
||||||
| cr ^. crPos . _z < negate 100 = (tocr . crHP .~ CrIsPitted) . destroyAllInvItems cr
|
| cr ^. crPos . _z < negate 300 = (tocr . crHP .~ CrIsPitted) . destroyAllInvItems cr
|
||||||
| CrIsCorpse _ <- cr ^. crHP = updateCarriage (_crID cr) . chasmTestCorpse cr
|
| CrIsCorpse _ <- cr ^. crHP = updateCarriage (_crID cr) . chasmTestCorpse cr
|
||||||
| null (cr ^? crHP . _HP) = id
|
| null (cr ^? crHP . _HP) = id
|
||||||
| otherwise = updateLivingCreature cr
|
| otherwise = updateLivingCreature cr
|
||||||
|
|||||||
+3
-1
@@ -372,7 +372,9 @@ updateCreatureStrides :: World -> World
|
|||||||
updateCreatureStrides = cWorld . lWorld . creatures . each %~ updateCreatureStride
|
updateCreatureStrides = cWorld . lWorld . creatures . each %~ updateCreatureStride
|
||||||
|
|
||||||
updateCreatureStride :: Creature -> Creature
|
updateCreatureStride :: Creature -> Creature
|
||||||
updateCreatureStride cr = cr & crType . strideAmount +~ d
|
updateCreatureStride cr
|
||||||
|
| Walking <- cr ^. crStance . carriage = cr & crType . strideAmount +~ d
|
||||||
|
| otherwise = cr
|
||||||
where
|
where
|
||||||
s = 2 * fromMaybe 1 (crMvType cr ^? mvSpeed)
|
s = 2 * fromMaybe 1 (crMvType cr ^? mvSpeed)
|
||||||
-- d = min s . norm $ cr ^. crPos - cr ^. crOldPos
|
-- d = min s . norm $ cr ^. crPos - cr ^. crOldPos
|
||||||
|
|||||||
Reference in New Issue
Block a user