{-# 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 | 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