Move flame into its own datatype

This commit is contained in:
2022-07-18 22:41:40 +01:00
parent c14b3ff787
commit 54ba0fbedc
29 changed files with 444 additions and 318 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Bullet where
import Dodge.Data.DamageType
import Dodge.Data.Damage
import Geometry.Data
import Control.Lens
data Bullet = Bullet
@@ -4,26 +4,13 @@
Datatypes describing the type of damage effects that are to be applied to
creatures.
-}
module Dodge.Data.DamageType where
module Dodge.Data.Damage
( module Dodge.Data.Damage
, module Dodge.Data.Damage.Type
) where
import Dodge.Data.Damage.Type
import Geometry.Data
import Control.Lens
data DamageType
= PIERCING
| BLUNT
| CUTTING
| SPARKING
| CRUSHING
| SHATTERING
| FLAMING
| LASERING
| ELECTRICAL
| EXPLOSIVE
| CONCUSSIVE
| TORQUEDAM
| PUSHDAM
| POISONDAM
| ENTERREMENT
deriving (Eq,Ord,Show,Read)
data DamageEffect
= PushDamage
{ _dePush :: Float
+19
View File
@@ -0,0 +1,19 @@
{-# LANGUAGE StrictData #-}
module Dodge.Data.Damage.Type where
data DamageType
= PIERCING
| BLUNT
| CUTTING
| SPARKING
| CRUSHING
| SHATTERING
| FLAMING
| LASERING
| ELECTRICAL
| EXPLOSIVE
| CONCUSSIVE
| TORQUEDAM
| PUSHDAM
| POISONDAM
| ENTERREMENT
deriving (Eq,Ord,Show,Read,Enum,Bounded)
+16
View File
@@ -0,0 +1,16 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Flame where
import Control.Lens
import Geometry.Data
import Color
data Flame = Flame
{ _flVel :: Point2
, _flColor :: Color
, _flPos :: Point2
, _flWidth :: Float
, _flTimer :: Int
, _flZ :: Float
, _flOriginalVel :: Point2
}
makeLenses ''Flame
+14
View File
@@ -0,0 +1,14 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Magnet where
import Dodge.Data.Bullet
import Geometry.Data
import Control.Lens
data Magnet = Magnet
{ _mgID :: Int
, _mgUpdate :: Magnet -> Maybe Magnet
, _mgPos :: Point2
, _mgField :: Magnet -> Bullet -> Bullet
}
makeLenses ''Magnet
+1 -1
View File
@@ -2,7 +2,7 @@
{-# LANGUAGE StrictData #-}
module Dodge.Data.Sensor where
import Dodge.Combine.Data
import Dodge.Data.DamageType
import Dodge.Data.Damage.Type
import Control.Lens
data Sensor = NoSensor
+1 -1
View File
@@ -14,7 +14,7 @@ data SoundOrigin = InventorySound
| CrReloadSound Int
| Flamer
| ShellSound Int
| Flame
| FlameSound
| LasSound
| FootstepSound Int
| BlockDegradeSound Int
+2
View File
@@ -1,6 +1,7 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Spark where
import Dodge.Data.Damage.Type
import Geometry.Data
import Color
import Control.Lens
@@ -10,5 +11,6 @@ data Spark = Spark
, _skPos :: Point2
, _skOldPos :: Point2
, _skWidth :: Float
, _skDamageType :: DamageType
}
makeLenses ''Spark