Start to move damage effects of bullets into a more sensible place
This commit is contained in:
@@ -44,6 +44,7 @@ import Dodge.GameRoom
|
||||
import Color
|
||||
import Shape
|
||||
|
||||
import qualified Data.Vector as V
|
||||
import GHC.Generics
|
||||
import Control.Lens
|
||||
import Control.Monad.State
|
||||
@@ -1002,6 +1003,47 @@ data Goal
|
||||
newtype Zone a = Zone
|
||||
{ _znObjects :: IM.IntMap (IM.IntMap a)
|
||||
}
|
||||
data DamageEffect
|
||||
= PushDamage
|
||||
{ _dePush :: Float
|
||||
, _dePushExp :: Float
|
||||
, _dePushRadius :: Float
|
||||
}
|
||||
| TorqueDamage { _deTorque :: Float }
|
||||
| PushBackDamage {_dePushBack :: Point2 }
|
||||
| BounceBullet {_bulToBounce :: Particle}
|
||||
| SparkBullet {_bulToSpark :: Particle}
|
||||
| NoDamageEffect
|
||||
-- deriving (Eq,Ord,Show)
|
||||
|
||||
data Damage = Damage
|
||||
{ _dmType :: DamageType
|
||||
, _dmAmount :: Int , _dmFrom :: Point2 , _dmAt :: Point2 , _dmTo :: Point2
|
||||
, _dmEffect :: DamageEffect
|
||||
}
|
||||
-- deriving (Eq,Ord,Show)
|
||||
|
||||
isElectrical :: Damage -> Bool
|
||||
isElectrical dm = case _dmType dm of
|
||||
Electrical{} -> True
|
||||
_ -> False
|
||||
|
||||
isMovementDam :: Damage -> Bool
|
||||
isMovementDam dm = case _dmType dm of
|
||||
TorqueDam{} -> True
|
||||
PushDam{} -> True
|
||||
_ -> False
|
||||
|
||||
data CreatureState = CrSt
|
||||
{ _crDamage :: [Damage]
|
||||
, _crPastDamage :: V.Vector [Damage]
|
||||
, _crSpState :: CrSpState
|
||||
, _crDropsOnDeath :: CreatureDropType
|
||||
}
|
||||
|
||||
makeLenses ''CreatureState
|
||||
makeLenses ''Damage
|
||||
makeLenses ''DamageEffect
|
||||
makeLenses ''World
|
||||
makeLenses ''Cloud
|
||||
makeLenses ''Creature
|
||||
|
||||
Reference in New Issue
Block a user