Improve carriage/stride when falling down pit
This commit is contained in:
+13
-22
@@ -368,10 +368,10 @@ muzzleWallCheck w cr = fromMaybe cr $ do
|
||||
_ -> Nothing
|
||||
|
||||
updateCreatureStrides :: World -> World
|
||||
updateCreatureStrides w = foldl' updateCreatureStride w $ w ^. cWorld . lWorld . creatures
|
||||
updateCreatureStrides = cWorld . lWorld . creatures . each %~ updateCreatureStride
|
||||
|
||||
updateCreatureStride :: World -> Creature -> World
|
||||
updateCreatureStride w cr = w & cWorld . lWorld . creatures . ix (cr ^. crID) . crStance . carriage . strideAmount +~ d
|
||||
updateCreatureStride :: Creature -> Creature
|
||||
updateCreatureStride cr = cr & crStance . carriage . strideAmount +~ d
|
||||
where
|
||||
s = fromMaybe 0 $ crMvType cr ^? mvSpeed
|
||||
d = min s . norm $ cr ^. crPos - cr ^. crOldPos
|
||||
@@ -394,7 +394,7 @@ checkTermDist w = fromMaybe w $ do
|
||||
tmid <- w ^? hud . subInventory . termID
|
||||
btid <- w ^? cWorld . lWorld . terminals . ix tmid . tmButtonID
|
||||
btpos <- w ^? cWorld . lWorld . buttons . ix btid . btPos
|
||||
guard $ dist btpos (you w ^. crPos . _xy) > 40
|
||||
guard $ dist btpos (you w ^. crPos . _xy) > closeItemDist
|
||||
return $ w & hud . subInventory .~ NoSubInventory
|
||||
|
||||
updateMouseContext :: Config -> Universe -> Universe
|
||||
@@ -408,15 +408,9 @@ updateMouseContextGame cfig u = \case
|
||||
x@OverInvDragSelect{} -> x
|
||||
MouseGameRotate x
|
||||
| ButtonRight `M.member` (w ^. input . mouseButtons) -> MouseGameRotate x
|
||||
--_ -> fromMaybe aimcontext (isrotatedrag <|> overterm <|> overinv <|> overcomb)
|
||||
_ -> fromMaybe aimcontext (overterm <|> overinv <|> overcomb)
|
||||
where
|
||||
w = u ^. uvWorld
|
||||
-- isrotatedrag = do
|
||||
-- t1 <- w ^. input . mouseButtons . at ButtonLeft
|
||||
-- t2 <- w ^. input . mouseButtons . at ButtonRight
|
||||
-- guard $ t1 > t2
|
||||
-- return $ MouseGameRotate (dist (mouseWorldPosW w) (w ^. wCam . camCenter))
|
||||
aimcontext
|
||||
| ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming
|
||||
| Display_debug `S.member` (cfig ^. debug_booleans) = getDebugMouseOver u
|
||||
@@ -513,8 +507,7 @@ updatePulseLasers w = f w & cWorld . lWorld . pulseLasers .~ pzs
|
||||
updatePlasmaBall :: World -> PlasmaBall -> (World, Maybe PlasmaBall)
|
||||
updatePlasmaBall w pb
|
||||
| Just (_, ecrwl) <- thit =
|
||||
( w
|
||||
& cWorld . lWorld %~ dodam ecrwl
|
||||
( w & cWorld . lWorld %~ dodam ecrwl
|
||||
, Nothing
|
||||
)
|
||||
| norm (pb ^. pbVel) <= 0 = (w, Nothing)
|
||||
@@ -576,11 +569,8 @@ updateTerminal tm w = fromMaybe w $ do
|
||||
return $ case tl of
|
||||
_ | _tlPause tl > 0 -> w & pointTermParams . tmFutureLines . ix 0 . tlPause -~ 1
|
||||
(TLine _ tls g) ->
|
||||
w & pointTermParams
|
||||
%~ ( (tmFutureLines %~ tail)
|
||||
. (tmDisplayedLines %~ take getMaxLinesTM . (map displayTerminalLineString tls ++))
|
||||
-- . (tmDisplayedLines %~ (map displayTerminalLineString tls ++))
|
||||
)
|
||||
w & pointTermParams . tmFutureLines %~ tail
|
||||
& pointTermParams . tmDisplayedLines %~ take getMaxLinesTM . (map displayTerminalLineString tls ++)
|
||||
& doTmWdWd g tm
|
||||
where
|
||||
pointTermParams = cWorld . lWorld . terminals . ix (_tmID tm)
|
||||
@@ -976,11 +966,12 @@ crSpring c w =
|
||||
crsNearCirc (c ^. crPos . _xy) (crRad $ c ^. crType) w
|
||||
|
||||
canSpring :: Creature -> Bool
|
||||
canSpring cr = cr ^. crPos . _z >= 0 && case cr ^. crHP of
|
||||
HP{} -> True
|
||||
CrIsCorpse{} -> True
|
||||
CrIsGibs -> False
|
||||
CrIsPitted -> False
|
||||
canSpring cr =
|
||||
cr ^. crPos . _z >= 0 && case cr ^. crHP of
|
||||
HP{} -> True
|
||||
CrIsCorpse{} -> True
|
||||
CrIsGibs -> False
|
||||
CrIsPitted -> False
|
||||
|
||||
crCrSpring :: Creature -> Creature -> World -> World
|
||||
crCrSpring c1 c2
|
||||
|
||||
Reference in New Issue
Block a user