Remove DamageEffect
This commit is contained in:
@@ -68,7 +68,7 @@ unsafeBlinkAction cr w
|
||||
w
|
||||
& blinkActionFail cr
|
||||
& cWorld . lWorld . creatures . ix cid . crState . csDamage
|
||||
.:~ Damage ENTERREMENT 10000 mwp mwp mwp NoDamageEffect
|
||||
.:~ Damage ENTERREMENT 10000 mwp mwp mwp
|
||||
where
|
||||
success = fromMaybe True $ do
|
||||
wl <- snd $ collidePointWallsFilter (const True) mwp cpos w
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
module Dodge.Creature.Damage (applyCreatureDamage) where
|
||||
|
||||
import Dodge.Creature.Material
|
||||
import Dodge.Creature.Mass
|
||||
import Data.List
|
||||
import Dodge.Creature.Test
|
||||
import Dodge.Data.World
|
||||
@@ -26,26 +25,27 @@ defaultApplyDamage ds cr w =
|
||||
poisonDam = quot (max 0 (sum (map _dmAmount ps))) 10
|
||||
doPoisonDam = crHP -~ poisonDam
|
||||
|
||||
applyDamageEffect :: Damage -> DamageEffect -> Creature -> World -> World
|
||||
applyDamageEffect dm de cr = case de of
|
||||
PushDamage push pushexp pushRad ->
|
||||
cWorld . lWorld . creatures . ix (_crID cr) . crPos .+.+~ pushAmount *.* squashNormalizeV (_crPos cr -.- fromDir)
|
||||
where
|
||||
pushAmount
|
||||
| dist (_crPos cr) fromDir == 0 = 0
|
||||
| otherwise = min 5 $ (push * 5 * pushRad / (dist (_crPos cr) fromDir * crMass (_crType cr))) ** pushexp
|
||||
PushBackDamage pback ->
|
||||
cWorld . lWorld . creatures . ix (_crID cr) . crPos .+.+~ (pback / crMass (_crType cr)) *.* (_dmTo dm -.- fromDir)
|
||||
TorqueDamage rot ->
|
||||
cWorld . lWorld . creatures . ix (_crID cr) . crDir +~ rot
|
||||
NoDamageEffect -> id
|
||||
where
|
||||
fromDir = _dmFrom dm
|
||||
--applyDamageEffect :: Damage -> DamageEffect -> Creature -> World -> World
|
||||
--applyDamageEffect dm de cr = case de of
|
||||
-- PushDamage push pushexp pushRad ->
|
||||
-- cWorld . lWorld . creatures . ix (_crID cr) . crPos .+.+~ pushAmount *.* squashNormalizeV (_crPos cr -.- fromDir)
|
||||
-- where
|
||||
-- pushAmount
|
||||
-- | dist (_crPos cr) fromDir == 0 = 0
|
||||
-- | otherwise = min 5 $ (push * 5 * pushRad / (dist (_crPos cr) fromDir * crMass (_crType cr))) ** pushexp
|
||||
-- PushBackDamage pback ->
|
||||
-- cWorld . lWorld . creatures . ix (_crID cr) . crPos .+.+~ (pback / crMass (_crType cr)) *.* (_dmTo dm -.- fromDir)
|
||||
-- TorqueDamage rot ->
|
||||
-- cWorld . lWorld . creatures . ix (_crID cr) . crDir +~ rot
|
||||
-- NoDamageEffect -> id
|
||||
-- where
|
||||
-- fromDir = _dmFrom dm
|
||||
|
||||
--p = _dmAt dm
|
||||
|
||||
applyIndividualDamage :: Creature -> World -> Damage -> World
|
||||
applyIndividualDamage cr w dm = applyDamageEffect dm (_dmEffect dm) cr $ applyIndividualDamage' cr w dm
|
||||
--applyIndividualDamage cr w dm = applyDamageEffect dm (_dmEffect dm) cr $ applyIndividualDamage' cr w dm
|
||||
applyIndividualDamage cr w dm = applyIndividualDamage' cr w dm
|
||||
|
||||
applyIndividualDamage' :: Creature -> World -> Damage -> World
|
||||
applyIndividualDamage' cr w dm = case _dmType dm of
|
||||
|
||||
@@ -87,6 +87,6 @@ followImpulse cr w imp = case imp of
|
||||
rr a = randomR (- a, a) $ _randGen w
|
||||
hitCr i =
|
||||
( cWorld . lWorld . creatures . ix i . crState . csDamage
|
||||
.:~ Damage BLUNT 100 cpos (posFromID i) (posFromID i) (PushBackDamage 5)
|
||||
.:~ Damage BLUNT 100 cpos (posFromID i) (posFromID i)-- (PushBackDamage 5)
|
||||
)
|
||||
. soundStart (CrSound cid) cpos hitS Nothing
|
||||
|
||||
Reference in New Issue
Block a user