Add bullet damages field, move bullet data into own file
This commit is contained in:
@@ -1,22 +1,6 @@
|
||||
module Dodge.Particle.Damage where
|
||||
import Dodge.Data
|
||||
import Geometry
|
||||
--import LensHelp
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
|
||||
-- TODO unify particle position in a sensible manner
|
||||
spawnAtBulDams :: (Point2 -> State StdGen Particle)
|
||||
-> Bullet -> Point2 -> [Damage]
|
||||
spawnAtBulDams thespawn bt p =
|
||||
[ Damage PIERCING 50 sp p ep (DamageSpawn $ \_ dm -> thespawn (_dmAt dm))
|
||||
, Damage PUSHDAM 1 sp p ep . PushBackDamage $ 2 *.* bulVel
|
||||
]
|
||||
where
|
||||
sp = _buPos bt
|
||||
bulVel = _buVel bt
|
||||
ep = sp +.+ bulVel
|
||||
|
||||
simpleDam :: DamageType -> Int -> Particle -> Point2 -> [Damage]
|
||||
simpleDam dt amount bt p = [ Damage dt amount sp p ep NoDamageEffect ]
|
||||
@@ -31,25 +15,17 @@ simpleDam' dt amount bt p = [ Damage dt amount sp p ep NoDamageEffect ]
|
||||
bulVel = _buVel bt
|
||||
ep = sp +.+ bulVel
|
||||
|
||||
heavyBulDams :: Bullet -> Point2 -> [Damage]
|
||||
heavyBulDams bt p =
|
||||
[ Damage PIERCING 300 sp p ep NoDamageEffect
|
||||
, Damage PUSHDAM 1 sp p ep . PushBackDamage $ 2 *.* bulVel
|
||||
heavyBulDams :: [Damage]
|
||||
heavyBulDams =
|
||||
[ Damage PIERCING 300 0 0 0 NoDamageEffect
|
||||
, Damage PUSHDAM 1 0 0 0 $ PushBackDamage 2
|
||||
]
|
||||
where
|
||||
sp = _buPos bt
|
||||
bulVel = _buVel bt
|
||||
ep = sp +.+ bulVel
|
||||
|
||||
basicBulDams :: Bullet -> Point2 -> [Damage]
|
||||
basicBulDams bt p =
|
||||
[ Damage PIERCING 100 sp p ep NoDamageEffect
|
||||
, Damage PUSHDAM 1 sp p ep . PushBackDamage $ 2 *.* bulVel
|
||||
basicBulDams :: [Damage]
|
||||
basicBulDams =
|
||||
[ Damage PIERCING 100 0 0 0 NoDamageEffect
|
||||
, Damage PUSHDAM 1 0 0 0 . PushBackDamage $ 2
|
||||
]
|
||||
where
|
||||
sp = _buPos bt
|
||||
bulVel = _buVel bt
|
||||
ep = sp +.+ bulVel
|
||||
|
||||
basicSparkDams :: Particle -> Point2 -> [Damage]
|
||||
basicSparkDams bt p = [ Damage SPARKING 1 sp p ep NoDamageEffect ]
|
||||
@@ -58,18 +34,14 @@ basicSparkDams bt p = [ Damage SPARKING 1 sp p ep NoDamageEffect ]
|
||||
bulVel = _ptVel bt
|
||||
ep = sp +.+ bulVel
|
||||
|
||||
hvBulDams :: Bullet -> Point2 -> [Damage]
|
||||
hvBulDams bt p =
|
||||
[ Damage PIERCING 25 sp p ep NoDamageEffect
|
||||
, Damage PIERCING 25 sp p ep NoDamageEffect
|
||||
, Damage PIERCING 25 sp p ep NoDamageEffect
|
||||
, Damage PIERCING 25 sp p ep NoDamageEffect
|
||||
, Damage PIERCING 25 sp p ep NoDamageEffect
|
||||
, Damage PIERCING 25 sp p ep NoDamageEffect
|
||||
, Damage TORQUEDAM 1 sp p ep $ TorqueDamage 0.7
|
||||
, Damage PUSHDAM 1 sp p ep . PushBackDamage $ 3 *.* (ep -.- sp)
|
||||
hvBulDams :: [Damage]
|
||||
hvBulDams =
|
||||
[ Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||
, Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||
, Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||
, Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||
, Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||
, Damage PIERCING 25 0 0 0 NoDamageEffect
|
||||
, Damage TORQUEDAM 1 0 0 0 $ TorqueDamage 0.7
|
||||
, Damage PUSHDAM 1 0 0 0 $ PushBackDamage 3
|
||||
]
|
||||
where
|
||||
sp = _buPos bt
|
||||
bulVel = _buVel bt
|
||||
ep = sp +.+ bulVel
|
||||
|
||||
Reference in New Issue
Block a user