Record whether a mouse click is continued or not
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user