Record whether a mouse click is continued or not

This commit is contained in:
2022-06-22 17:02:57 +01:00
parent ac0948cb64
commit 698ccb414d
18 changed files with 350 additions and 335 deletions
+8 -3
View File
@@ -1,7 +1,9 @@
module Dodge.Reloading
( crCancelReloading
, crToggleReloading
, crHoldReloading
, stepReloading
, tryStartLoading
) where
import Dodge.Data
import Dodge.Hammer
@@ -33,12 +35,15 @@ tryNextLoadAction cr = case cr ^? crInv . ix (crSel cr) . itConsumption . laProg
Just la -> cr & crInvSel . iselAction . actionProgress .~ _actionTime la
& crInvSel . iselAction . reloadAction .~ la
crToggleReloading :: Creature -> World -> World
crToggleReloading cr w = case cr ^?! crInvSel . iselAction of
ReloadAction {} -> w & creatures . ix (_crID cr) . crInvSel . iselAction .~ NoInvSelAction
_ -> w & creatures . ix (_crID cr) %~ tryStartLoading
crHoldReloading :: Creature -> World -> World
crHoldReloading cr w = w
& creatures . ix (_crID cr) . crInvSel . iselAction . actionHammer .~ HasHammer HammerDown
tryStartLoading :: Creature -> Creature
tryStartLoading cr = case ic ^? laProgress . _Just . ix 0 of
Just la -> cr & startLoadAction la
@@ -63,11 +68,11 @@ rotateActionProgress ic = case ic ^? laProgress . _Just of
doLoadAction :: LoadAction -> ItemConsumption -> ItemConsumption
doLoadAction la ic = case la of
LoadEject {} -> ic & laLoaded .~ 0
LoadEject {} -> ic & laLoaded .~ 0 & laPrimed .~ False
LoadInsert {} -> ic & laLoaded .~ _laMax ic
LoadAdd {_insertMax = x}
-> ic & laLoaded +~ min x (_laMax ic - _laLoaded ic)
LoadPrime {} -> ic
LoadPrime {} -> ic & laPrimed .~ True
--{- | Start reloading if clip is empty. -}
--crAutoReload :: Creature -> Creature