{-# LANGUAGE StrictData #-} {-# LANGUAGE DeriveGeneric #-} module Dodge.Data.Item.HeldUse where import GHC.Generics import Data.Aeson import Dodge.Combine.Data import Dodge.Data.CamouflageStatus data HeldUse = HeldDoNothing | HeldUseAmmoParams | HeldOverNozzlesUseGasParams | HeldPJCreation | HeldPJCreationX Int | HeldFireRemoteShell | HeldExplodeRemoteShell Int Int | HeldDetectorEffect Detector | HeldTeslaArc | HeldLaser | HeldCircleLaser | HeldDualLaser | HeldTractor | HeldForceField | HeldShatter deriving (Eq,Ord,Show,Read,Generic) instance ToJSON HeldUse where toEncoding = genericToEncoding defaultOptions instance FromJSON HeldUse data Cuse = CDoNothing | CHeal Int deriving (Eq,Ord,Show,Read,Generic) instance ToJSON Cuse where toEncoding = genericToEncoding defaultOptions instance FromJSON Cuse data Euse = EDoNothing | EDetector Detector | EMagShield | EWristShield | EHeadLamp | ECamouflage CamouflageStatus | EonWristShield | EoffWristShield deriving (Eq,Ord,Show,Read,Generic) instance ToJSON Euse where toEncoding = genericToEncoding defaultOptions instance FromJSON Euse data Luse = LDoNothing | LRewind | LShrink | LBlink | LUnsafeBlink | LBoost deriving (Eq,Ord,Show,Read,Generic) instance ToJSON Luse where toEncoding = genericToEncoding defaultOptions instance FromJSON Luse data HeldMod = HeldModNothing | PoisonSprayerMod | FlameSpitterMod | FlameThrowerMod | LauncherMod | TeslaMod | CircleLaserMod | LasWideMod Int | DualBeamMod | LasMod | LauncherXMod Int | ShatterMod | AmmoCheckMod | AmmoUseCheckMod | AmmoHammerTimeUseOneMod | BangCaneMod | VolleyGunMod | AutoRifleMod | BangRodMod | ElephantGunMod | AutoAmrMod | MachineGunMod | ModWithDirectedTeleport HeldMod | BangStickMod | PistolMod | AutoPistolMod | MachinePistolMod | BurstRifleMod | MiniGunMod Int | SmgMod | RevolverXMod | BangConeMod deriving (Eq,Ord,Show,Read,Generic) instance ToJSON HeldMod where toEncoding = genericToEncoding defaultOptions instance FromJSON HeldMod