Move bullet bouncing into separate datatype field

This commit is contained in:
2022-07-17 20:23:50 +01:00
parent b860de70a7
commit 6c6fe43bc0
9 changed files with 98 additions and 67 deletions
+16 -10
View File
@@ -529,8 +529,15 @@ data BulletState = NormalBulletState
| DelayedBullet Float
data BulletUpdateMod = NoBulletUpdateMod
data BulletEffect = DestroyBullet
| BounceBullet
| PenetrateBullet
data BulletSpawn = BulBall EnergyBall | BulSpark
data Bullet = Bullet
{ _buState :: BulletState
, _buEffect :: BulletEffect
, _buSpawn :: BulletSpawn
, _buUpdateMod :: BulletUpdateMod
, _buTrajectory :: BulletTrajectory
, _buVel :: Point2
@@ -540,11 +547,8 @@ data Bullet = Bullet
, _buWidth :: Float
, _buTimer :: Int
-- , _buEffect :: BulletEffect
, _buHitEff :: HitEffect'
-- , _buHitEff :: HitEffect'
}
data BulletEffect = BulletSpark
| BulletBounce
| BulletBall EnergyBall
data EnergyBall = IncBall | TeslaBall | ConcBall
@@ -651,10 +655,10 @@ type HitEffect = Particle
-> World
-> (World,Maybe Particle)
type HitEffect' = Bullet
-> Stream (Of (Point2, Either Creature Wall)) Identity ()
-> World
-> (World,Maybe Bullet)
--type HitEffect' = Bullet
-- -> Stream (Of (Point2, Either Creature Wall)) Identity ()
-- -> World
-- -> (World,Maybe Bullet)
data BulletTrajectory
= BasicBulletTrajectory
@@ -672,10 +676,13 @@ data AmmoType
}
| BulletAmmo
{ _amString :: String
, _amBulEff :: HitEffect'
-- , _amBulEff :: HitEffect'
, _amBulDams :: Bullet -> Point2 -> [Damage]
, _amBulWth :: Float
, _amBulVel :: Point2
, _amBulTraj :: BulletTrajectory
, _amBulEffect :: BulletEffect
, _amBulSpawn :: BulletSpawn
}
| DroneAmmo
{ _amString :: String }
@@ -1261,7 +1268,6 @@ data DamageEffect
}
| TorqueDamage { _deTorque :: Float }
| PushBackDamage {_dePushBack :: Point2 }
| BounceBullet {_bulToBounce :: Bullet}
| DamageSpawn {_spawnFunc
:: Either Creature Wall -> Damage -> State StdGen Particle}
| DamageSpawn' {_spawnFunc'