Continue weapon refactor, gas combinations

This commit is contained in:
2024-09-19 09:49:56 +01:00
parent 6f972bb316
commit bb18831393
21 changed files with 489 additions and 379 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import Data.Aeson.TH
data GenFloat = ConstFloat {_gfConstant :: Float}
| UniRandFloat {_gfMin :: Float, _gfMax :: Float}
deriving (Eq, Show, Read) --Generic, Flat)
deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''GenFloat
deriveJSON defaultOptions ''GenFloat
+1
View File
@@ -113,6 +113,7 @@ data AmmoMagType
| BELTMAG
| SHELLMAG
| BATTERY
| CHEMFUELPOUCH
deriving (Eq, Ord, Show, Read)
+7 -7
View File
@@ -66,17 +66,18 @@ data Luse
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data HeldMod
= PoisonSprayerMod
= PistolMod
-- | PoisonSprayerMod
| FlameSpitterMod
| FlameSpitterRepeatMod
| FlameThrowerMod
| LauncherMod
-- | FlameThrowerMod
-- | LauncherMod
-- | TeslaMod
-- | CircleLaserMod
| LasWideMod Int
| DualBeamMod
| LasMod
| LauncherXMod Int
-- | LasMod
-- | LauncherXMod Int
| ShatterMod
-- | AmmoCheckMod
-- | AmmoUseCheckMod
@@ -91,7 +92,6 @@ data HeldMod
-- | MachineGunMod
-- | ModWithDirectedTeleport HeldMod
-- | BangStickMod
| PistolMod
-- | AutoPistolMod
-- | MachinePistolMod
-- | BurstRifleMod
@@ -99,7 +99,7 @@ data HeldMod
-- | MiniGunMod Int
-- | SmgMod
-- | BangConeMod
| TractorMod --apply with AmmoCheckMod
-- | TractorMod --apply with AmmoCheckMod
| FireRemoteShellMod
| ExplodeRemoteShellMod
| DoNothingMod
-8
View File
@@ -44,7 +44,6 @@ data ItemParams
, _dbGap :: Float
}
| Attracting {_attractionPower :: Point2}
| Sprayer {_sprayNozzles :: [Nozzle]}
| AngleWalk
{ _maxWalkAngle :: Float
, _currentWalkAngle :: Float
@@ -79,13 +78,6 @@ data PreviousArcEffect = NoPreviousArcEffect | PerturbTillBreakPreviousArc
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Nozzle = Nozzle
{ _nzPressure :: Float
, _nzDir :: Float
, _nzMaxWalkAngle :: Float
, _nzCurrentWalkAngle :: Float
, _nzWalkSpeed :: Float
, _nzLength :: Float
}
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''ItemParams
+20 -6
View File
@@ -74,9 +74,19 @@ data TriggerType = AutoTrigger
data HeldParams
= DefaultHeldParams
| GasSprayParams
{_gasCreation :: GasCreate}
{_gasCreation :: GasCreate
, _recoil :: Float
, _torqueAfter :: Float
, _randomOffset :: Float
, _sidePush :: Float
, _bulGunSound :: Maybe (SoundID, Int) -- if the int is 0, play sound on new channel
-- if >0, continue playing sound for
-- given time
, _weaponInvLock :: Int
, _weaponRepeat :: [Int]
}
| BeamShooterParams
{ _bulGunSound :: (SoundID, Int) -- if the int is 0, play sound on new channel
{ _bulGunSound :: Maybe (SoundID, Int) -- if the int is 0, play sound on new channel
-- TODO remove duplicate
}
| BulletShooterParams
@@ -86,7 +96,7 @@ data HeldParams
, _torqueAfter :: Float
, _randomOffset :: Float
, _sidePush :: Float
, _bulGunSound :: (SoundID, Int) -- if the int is 0, play sound on new channel
, _bulGunSound :: Maybe (SoundID, Int) -- if the int is 0, play sound on new channel
-- if >0, continue playing sound for
-- given time
, _weaponInvLock :: Int
@@ -106,7 +116,7 @@ data AmmoParams = BulletParams {_ampBullet :: Bullet}
, _ampPjDraw :: ProjectileDraw
, _ampPjCreation :: ProjectileCreate
}
| GasParams {_ampCreateGas :: GasCreate}
| GasParams {_ampCreateGas :: GasFuel}
deriving (Eq, Show, Read) --Generic, Flat)
data ScrollAttachParams
@@ -147,8 +157,12 @@ data MuzzleEffect
| MuzzleTesla
| MuzzleTractor
| MuzzleLauncher
| MuzzleFlame
| MuzzleGas
| MuzzleNozzle
{ _nzPressure :: GenFloat
, _nzMaxWalkAngle :: Float
, _nzCurrentWalkAngle :: Float
, _nzWalkSpeed :: Float
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Muzzle = Muzzle
@@ -46,11 +46,15 @@ data AmmoType
data ForceFieldType = DefaultForceField
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data GasFuel = ChemFuel
deriving (Eq, Ord, Show, Enum, Bounded, Read) --Generic, Flat)
data GasCreate = CreatePoisonGas | CreateFlame
deriving (Eq, Ord, Show, Enum, Bounded, Read) --Generic, Flat)
makeLenses ''ProjectileUpdate
makeLenses ''AmmoType
deriveJSON defaultOptions ''GasFuel
deriveJSON defaultOptions ''ProjectileDraw
deriveJSON defaultOptions ''ProjectileCreate
deriveJSON defaultOptions ''ProjectileUpdate