Files
loop/src/Dodge/Data/Sensor.hs
T
2022-07-25 00:45:15 +01:00

30 lines
835 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,Show,Read)
data ProximityRequirement
= RequireHealth {_proxReqMinHealth :: Int}
| RequireEquipment {_proxReqEquipment :: ItemBaseType}
| RequireImpossible
deriving (Eq,Ord,Show,Read)
data CloseToggle = NotClose | IsClose
deriving (Eq,Ord,Show,Read)
makeLenses ''Sensor
makeLenses ''ProximityRequirement