30 lines
815 B
Haskell
30 lines
815 B
Haskell
{-# LANGUAGE TemplateHaskell #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
module Dodge.Data.Sensor where
|
|
import Dodge.Combine.Data
|
|
import Dodge.Data.Damage.Type
|
|
import Control.Lens
|
|
|
|
data Sensor = NoSensor
|
|
| DamageSensor
|
|
{ _sensToggle :: Bool
|
|
, _sensAmount :: Int
|
|
, _sensType :: DamageType
|
|
}
|
|
| ProximitySensor
|
|
{ _proxStatus :: CloseToggle
|
|
, _proxDist :: Float
|
|
, _proxRequirement :: ProximityRequirement
|
|
, _sensToggle :: Bool
|
|
}
|
|
deriving (Eq,Ord)
|
|
data ProximityRequirement
|
|
= RequireHealth {_proxReqMinHealth :: Int}
|
|
| RequireEquipment {_proxReqEquipment :: ItemBaseType}
|
|
| RequireImpossible
|
|
deriving (Eq,Ord,Show)
|
|
data CloseToggle = NotClose | IsClose
|
|
deriving (Eq,Ord,Show)
|
|
makeLenses ''Sensor
|
|
makeLenses ''ProximityRequirement
|