Move bullet bouncing into separate datatype field
This commit is contained in:
@@ -2,7 +2,7 @@ module Dodge.Creature.Damage where
|
||||
import Dodge.Data
|
||||
import Dodge.Creature.Test
|
||||
import Dodge.Spark
|
||||
import Dodge.Bullet
|
||||
--import Dodge.Bullet
|
||||
import Color
|
||||
import Geometry
|
||||
import LensHelp
|
||||
@@ -42,16 +42,6 @@ applyDamageEffect dm de cr w = case de of
|
||||
& creatures . ix (_crID cr) . crPos .+.+~ (1/_crMass cr) *.* pback
|
||||
TorqueDamage rot -> w
|
||||
& creatures . ix (_crID cr) . crDir +~ rot
|
||||
BounceBullet bt | crIsArmouredFrom p cr -> w & instantBullets .:~ bouncer
|
||||
where
|
||||
bouncer = (aBulAt Nothing pOut reflectVel (_buDrag bt) (_buHitEff bt) (_buWidth bt)
|
||||
BasicBulletTrajectory
|
||||
) {_buTimer = _buTimer bt - 1}
|
||||
pOut = p +.+ 2 *.* newDir
|
||||
reflectVel = magV bulVel *.* newDir
|
||||
newDir = squashNormalizeV (p -.- _crPos cr)
|
||||
bulVel = _buVel bt
|
||||
BounceBullet _ -> w
|
||||
DamageSpawn f -> w & instantParticles .:~ thepart
|
||||
& randGen .~ g
|
||||
where
|
||||
@@ -63,7 +53,7 @@ applyDamageEffect dm de cr w = case de of
|
||||
NoDamageEffect -> w
|
||||
where
|
||||
fromDir = _dmFrom dm
|
||||
p = _dmAt dm
|
||||
--p = _dmAt dm
|
||||
|
||||
applyIndividualDamage :: Creature -> World -> Damage -> World
|
||||
applyIndividualDamage cr w dm = applyDamageEffect dm (_dmEffect dm) cr $ applyIndividualDamage' cr w dm
|
||||
|
||||
Reference in New Issue
Block a user