116 lines
2.3 KiB
Haskell
116 lines
2.3 KiB
Haskell
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE StrictData #-}
|
|
|
|
module Dodge.Data.Item.HeldUse where
|
|
|
|
import Data.Aeson
|
|
import Dodge.Combine.Data
|
|
import Dodge.Data.CamouflageStatus
|
|
import GHC.Generics
|
|
|
|
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
|
|
| FlameSpitterRepeatMod
|
|
| 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
|
|
| BurstRifleRepeatMod
|
|
| MiniGunMod Int
|
|
| SmgMod
|
|
| RevolverXMod
|
|
| RevolverXRepeatMod
|
|
| BangConeMod
|
|
deriving (Eq, Ord, Show, Read, Generic)
|
|
|
|
instance ToJSON HeldMod where
|
|
toEncoding = genericToEncoding defaultOptions
|
|
|
|
instance FromJSON HeldMod
|