Re-add twist when reloading, stop reload when full ammo

This commit is contained in:
2022-06-22 20:41:37 +01:00
parent 2ebad5da2a
commit fff5c87092
3 changed files with 4 additions and 1 deletions
+2 -1
View File
@@ -73,7 +73,8 @@ wasdDir = foldr ((+.+) . wasdM) (V2 0 0) . _keys
{- | Set posture according to mouse presses. -}
mouseActionsCr :: M.Map SDL.MouseButton Bool -> Creature -> Creature
mouseActionsCr pkeys cr
| rbPressed = cr & crStance . posture .~ Aiming
| rbPressed && cr ^?! crInvSel . iselAction == NoInvSelAction
= cr & crStance . posture .~ Aiming
| otherwise = cr & crStance . posture .~ AtEase
where
rbPressed = SDL.ButtonRight `M.member` pkeys
+1
View File
@@ -14,6 +14,7 @@ data InvSel = InvSel {_iselPos :: Int, _iselAction :: InvSelAction }
data InvSelAction
= NoInvSelAction
| ReloadAction { _actionProgress :: Int, _reloadAction :: LoadAction, _actionHammer :: HammerType}
deriving (Eq,Ord,Show)
makeLenses ''LoadAction
makeLenses ''InvSel
makeLenses ''InvSelAction
+1
View File
@@ -50,6 +50,7 @@ tryStartLoading cr = case ic ^? laProgress . _Just . ix 0 of
Nothing -> case ic ^? laCycle of
Nothing -> cr
Just [] -> error ("item has empty load cycle" ++ show (cr ^?! crInv . ix (crSel cr) . itType))
Just _ | _laLoaded ic >= _laMax ic -> cr
Just (la:las) -> cr & startLoadAction la
& crInv . ix (crSel cr) . itConsumption . laProgress ?~ (la:las)
where