79 lines
1.9 KiB
Haskell
79 lines
1.9 KiB
Haskell
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE DeriveAnyClass #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
|
|
module Dodge.Data.CreatureEffect where
|
|
|
|
import Data.Aeson
|
|
import Data.Aeson.TH
|
|
|
|
data WdCrCr = NoCreatureEffect
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data CrWdImp = NoCrWdImp
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data CrWdWd = CrWdWdId
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data IntImp = NoIntImp
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data CrImp
|
|
= NoCrImp
|
|
| TurnTowardCr Float -- turn amount
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data P2Imp = P2ImpNo
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data WdCrBl
|
|
= WdCrTrue
|
|
| WdCrBlfromCrBl CrBl
|
|
| WdCrNegate WdCrBl
|
|
| WdCrLOSTarget
|
|
| WdCrSafeDistFromTarget Float
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data CrBl
|
|
= CrCanShoot
|
|
| CrIsReloading
|
|
| CrIsAiming
|
|
| CrIsAnimate
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data MCrAc = MCrNoAction
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data CrAc
|
|
= CrTurnAround
|
|
| CrFleeFromTarget
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data P2Ac = P2NoAction
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data MP2Ac = MP2NoAction
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
data CrWdAc
|
|
= CrWdBFSThenReturn Int
|
|
| ChooseMovementSpreadGun
|
|
| ChooseMovementLtAuto
|
|
deriving (Eq, Ord, Show, Read) --Generic, Flat)
|
|
|
|
deriveJSON defaultOptions ''WdCrCr
|
|
deriveJSON defaultOptions ''CrWdImp
|
|
deriveJSON defaultOptions ''CrWdWd
|
|
deriveJSON defaultOptions ''IntImp
|
|
deriveJSON defaultOptions ''CrImp
|
|
deriveJSON defaultOptions ''P2Imp
|
|
deriveJSON defaultOptions ''WdCrBl
|
|
deriveJSON defaultOptions ''CrBl
|
|
deriveJSON defaultOptions ''MCrAc
|
|
deriveJSON defaultOptions ''CrAc
|
|
deriveJSON defaultOptions ''P2Ac
|
|
deriveJSON defaultOptions ''MP2Ac
|
|
deriveJSON defaultOptions ''CrWdAc
|