Add Binary instances

This commit is contained in:
2022-08-21 10:58:19 +01:00
parent 386a2b4732
commit 1ce7d4a72d
95 changed files with 345 additions and 3 deletions
+7
View File
@@ -8,6 +8,7 @@ module Dodge.Data.Bullet
, module Dodge.Data.Damage
)where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -31,22 +32,27 @@ data Bullet = Bullet
, _buDamages :: [Damage]
}
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary Bullet
data EnergyBallType = IncBall | TeslaBall | ConcBall
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary EnergyBallType
data BulletUpdateMod = NoBulletUpdateMod
| ABulletUpdateMod -- hack for template splicing
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary BulletUpdateMod
data BulletEffect
= DestroyBullet
| BounceBullet
| PenetrateBullet
deriving (Eq, Ord, Show, Read, Enum, Bounded, Generic, Flat)
instance Binary BulletEffect
data BulletSpawn = BulBall EnergyBallType | BulSpark
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary BulletSpawn
data BulletTrajectory
= BasicBulletTrajectory
@@ -54,6 +60,7 @@ data BulletTrajectory
| FlechetteTrajectory Point2
| MagnetTrajectory Point2
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary BulletTrajectory
makeLenses ''Bullet
deriveJSON defaultOptions ''Bullet