Refactor reloading to use list of required steps

This commit is contained in:
2022-06-20 19:06:02 +01:00
parent a85cf4d1fb
commit 37eb69c661
16 changed files with 79 additions and 118 deletions
+18 -13
View File
@@ -487,7 +487,8 @@ data ItemConsumption
{ _laAmmoType :: AmmoType
, _laMax :: Int
, _laLoaded :: Int
, _laLoadType :: LoadType
, _laCycle :: [LoadAction]
, _laProgress :: LoadProgress
}
| ChargeableAmmo
{ _wpMaxCharge :: Int
@@ -545,19 +546,22 @@ data ItemPortage
| WornItem
| NoPortage
data LoadProgress
= NoTransfer
| Eject {_ejectProgress :: Int}
| Insert {_insertProgress :: Int, _insertAmount :: Int }
data LoadActionProgress = LoadActionProgress
{ _actionProgress :: Int
, _actionType :: LoadAction
}
deriving (Eq,Ord,Show)
data LoadType
= ActiveEject
{_ejectTime :: Int, _insertTime :: Int,_loadProgress :: LoadProgress }
| ActivePartial
{_insertTime :: Int, _loadAmount :: Int, _loadProgress :: LoadProgress }
| PassiveReload SoundID
deriving Eq
data LoadProgress
= InProgress { _lastAction :: Maybe LoadAction, _futureActions :: [LoadActionProgress] }
| FinishedLoading
deriving (Eq,Ord,Show)
data LoadAction
= Eject {_actionTime :: Int}
| Insert {_actionTime :: Int, _insertMax :: Maybe Int }
| Prime {_actionTime :: Int}
deriving (Eq,Ord,Show)
-- I believe this is called every frame, not sure when though
data ItEffect
@@ -1482,7 +1486,8 @@ makeLenses ''ItEffect
makeLenses ''FloorItem
makeLenses ''ItemConsumption
makeLenses ''AmmoType
makeLenses ''LoadType
makeLenses ''LoadAction
makeLenses ''LoadActionProgress
makeLenses ''LoadProgress
makeLenses ''TweakParam
makeLenses ''Prop