Separate out bullet effects, allow for tweaking to change these

This commit is contained in:
2021-11-30 13:11:34 +00:00
parent e75cbdf6cb
commit 4d21c0f31a
13 changed files with 207 additions and 81 deletions
+35 -17
View File
@@ -345,6 +345,7 @@ data Item
, _itDimension :: ItemDimension
, _itCurseStatus :: CurseStatus
, _itParams :: ItemParams
, _itTweaks :: ItemTweaks
}
| Consumable
{ _itName :: String
@@ -515,31 +516,47 @@ data AmmoType
| DroneAmmo
{ _amString :: String }
| GenericAmmo
data ItemParams
= NoParams
| ShellLauncher
data ItemTweaks
= NoTweaks
| Tweakable
{ _tweakParams :: IM.IntMap TweakParam
, _tweakSel :: Int
, _shellSpinDrag :: Int
, _shellSpinAmount :: Int
, _shellThrustDelay :: Int
}
| Refracting {_phaseVel :: Float}
| MultiBarrel
{ _barrelSpread :: BarrelSpread
, _barrelNum :: Int
}
| SingleBarrel {_inaccuracy :: Float}
| AngleWalk
{ _maxWalkAngle :: Float
, _currentWalkAngle :: Float
, _walkSpeed :: Float
}
data TweakParam = TweakParam
{ _doTweak :: Int -> Item -> Item
, _curTweak :: Int
, _maxTweak :: Int
, _showTweak :: Int -> String
, _nameTweak :: String
}
data GunBarrels
= MultiBarrel
{ _brlSpread :: BarrelSpread
, _brlNum :: Int
}
| SingleBarrel {_brlInaccuracy :: Float}
data ItemParams
= NoParams
| ShellLauncher
{ _shellSpinDrag :: Int
, _shellSpinAmount :: Int
, _shellThrustDelay :: Int
}
| Refracting {_phaseV :: Float}
| BulletShooter
{ _muzVel :: Float
, _bore :: Float
, _gunBarrels :: GunBarrels
}
| Sprayer
{ _nozzleSpread :: Float
, _nozzleNum :: Int
}
| AngleWalk
{ _maxWalkAngle :: Float
, _currentWalkAngle :: Float
, _walkSpeed :: Float
}
data Modification
= ModIDTimerPoint3Bool
@@ -897,3 +914,4 @@ makeLenses ''Vocalization
makeLenses ''Universe
makeLenses ''LSParam
makeLenses ''ItemParams
makeLenses ''ItemTweaks