Partial (not working) refactor of damages, energyballs
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
module Dodge.Creature.Damage (applyCreatureDamage) where
|
||||
|
||||
import Dodge.Creature.Material
|
||||
import Data.List
|
||||
import Dodge.Creature.Mass
|
||||
import Dodge.Creature.Material
|
||||
import Dodge.Creature.Test
|
||||
import Dodge.Data.World
|
||||
import Dodge.Spark
|
||||
@@ -49,14 +50,17 @@ applyIndividualDamage cr w dm = applyIndividualDamage' cr w dm
|
||||
|
||||
applyIndividualDamage' :: Creature -> World -> Damage -> World
|
||||
applyIndividualDamage' cr w dm = case _dmType dm of
|
||||
PIERCING -> applyPiercingDamage cr dm w
|
||||
Piercing{} -> applyPiercingDamage cr dm w
|
||||
_ -> w & damageHP cr (_dmAmount dm)
|
||||
|
||||
applyPiercingDamage :: Creature -> Damage -> World -> World
|
||||
applyPiercingDamage cr dm
|
||||
| crIsArmouredFrom p cr = makeSpark NormalSpark p1 (argV (p1 -.- p))
|
||||
| otherwise = damageHP cr $ _dmAmount dm
|
||||
| crIsArmouredFrom p cr = f . makeSpark NormalSpark p1 (argV (p1 -.- p))
|
||||
| otherwise = f . (damageHP cr $ _dmAmount dm)
|
||||
where
|
||||
f = cWorld . lWorld . creatures . ix (_crID cr) . crPos -~ _dmVector dm
|
||||
/ V2 x x
|
||||
x = crMass (_crType cr)
|
||||
p = _dmAt dm
|
||||
p1 = p +.+ 2 *.* squashNormalizeV (p -.- _crPos cr)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user