Files
loop/src/Dodge/Data/Item/HeldUse.hs
T
2022-08-20 18:41:04 +01:00

100 lines
2.1 KiB
Haskell

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Item.HeldUse where
import Flat
import Data.Aeson
import Data.Aeson.TH
import Dodge.Data.CamouflageStatus
import Dodge.Data.Item.Combine
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, Flat)
data Cuse
= CDoNothing
| CHeal Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
data Euse
= EDoNothing
| EDetector Detector
| EMagShield
| EWristShield
| EHeadLamp
| ECamouflage CamouflageStatus
| EonWristShield
| EoffWristShield
deriving (Eq, Ord, Show, Read, Generic, Flat)
data Luse
= LDoNothing
| LRewind
| LShrink
| LBlink
| LUnsafeBlink
| LBoost
deriving (Eq, Ord, Show, Read, Generic, Flat)
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, Flat)
deriveJSON defaultOptions ''Cuse
deriveJSON defaultOptions ''HeldMod
deriveJSON defaultOptions ''Euse
deriveJSON defaultOptions ''HeldUse
deriveJSON defaultOptions ''Luse