Make creature update an external function

This commit is contained in:
2022-07-20 01:22:17 +01:00
parent db44d5d6ce
commit 1f79fe157f
31 changed files with 562 additions and 462 deletions
+4
View File
@@ -0,0 +1,4 @@
--{-# LANGUAGE TemplateHaskell #-}
--{-# LANGUAGE StrictData #-}
module Dodge.Data.Ammo where
+18
View File
@@ -2,6 +2,8 @@
{-# LANGUAGE StrictData #-}
module Dodge.Data.Creature where
import Sound.Data
import Geometry.Data
import Color
import Control.Lens
data CamouflageStatus
= FullyVisible
@@ -31,6 +33,22 @@ data CrMvType
, _mvTurnJit :: Float
, _mvAimSpeed :: Float -> Float
}
data HumanoidAI = YourAI | ChaseAI | InanimateAI | SpreadGunAI | PistolAI
| LtAutoAI | LauncherAI | SwarmAI | AutoAI | FlockArmourChaseAI | MiniGunAI
| LongAI | MultGunAI
data CreatureType
= Humanoid
{ _skinHead :: Color
, _skinUpper :: Color
, _skinLower :: Color
, _humanoidAI :: HumanoidAI
}
| Barreloid {_barrelType :: BarrelType}
| Lampoid {_lampHeight :: Float, _lampColor :: Point3, _lampLSID :: Maybe Int}
| Turretoid
| NonDrawnCreature
data BarrelType = PlainBarrel | ExplosiveBarrel
makeLenses ''CreatureStatistics
makeLenses ''Vocalization
makeLenses ''CrMvType
makeLenses ''CreatureType
+4
View File
@@ -0,0 +1,4 @@
--{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Payload where
data Payload = ExplosionPayload | DudPayload
+8
View File
@@ -0,0 +1,8 @@
--{-# LANGUAGE TemplateHaskell #-}
--{-# LANGUAGE StrictData #-}
module Dodge.Data.Projectile where
--import Dodge.Data.Ammo
--import Geometry.Data
--import Control.Lens
data ProjectileType = ShellType
+12
View File
@@ -0,0 +1,12 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.TeslaArc where
import Geometry.Data
import Color
import Control.Lens
data TeslaArc = TeslaArc
{ _taPoints :: [Point2]
, _taTimer :: Int
, _taColor :: Color
}
makeLenses ''TeslaArc