Start making projectile update function rather than folded list

This commit is contained in:
2024-12-28 21:31:33 +00:00
parent e028c54948
commit 2fdc6ae557
9 changed files with 95 additions and 87 deletions
+12
View File
@@ -26,15 +26,20 @@ data Projectile
, _pjZVel :: Float
, _pjUpdates :: [ProjectileUpdate]
, _pjType :: ProjectileType
, _pjDetonatorID :: Maybe (NewInt ItmInt)
, _pjScreenID :: Maybe (NewInt ItmInt)
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data ProjectileType
= Grenade
{ _gnHitEffect :: GrenadeHitEffect
}
| Rocket
{_rkHoming :: RocketHoming
,_rkSmoke :: Maybe RocketSmoke
}
| RetiredProjectile
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data RocketHoming
@@ -43,6 +48,11 @@ data RocketHoming
| HomeUsingTargeting {_phTargetingID :: NewInt ItmInt}
deriving (Show, Eq, Ord, Read) --Generic, Flat)
data GrenadeHitEffect
= GBounce {_bounceTolerance :: Float}
| GStick
deriving (Show, Eq, Ord, Read) --Generic, Flat)
data RocketSmoke
= ReducedRocketSmoke
deriving (Show, Eq, Ord, Read) --Generic, Flat)
@@ -51,6 +61,8 @@ data RocketSmoke
makeLenses ''Projectile
makeLenses ''ProjectileType
makeLenses ''RocketHoming
makeLenses ''GrenadeHitEffect
deriveJSON defaultOptions ''GrenadeHitEffect
deriveJSON defaultOptions ''RocketHoming
deriveJSON defaultOptions ''RocketSmoke
deriveJSON defaultOptions ''ProjectileType