Files
loop/src/Dodge/Data/CreatureEffect.hs
T

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 ''CrBl
deriveJSON defaultOptions ''WdCrBl
deriveJSON defaultOptions ''MCrAc
deriveJSON defaultOptions ''CrAc
deriveJSON defaultOptions ''P2Ac
deriveJSON defaultOptions ''MP2Ac
deriveJSON defaultOptions ''CrWdAc