Files
loop/src/Dodge/Data/Item/HeldUse.hs
T
2023-01-05 09:58:41 +00:00

104 lines
2.3 KiB
Haskell

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Item.HeldUse where
import Data.Aeson
import Data.Aeson.TH
import Dodge.Data.CamouflageStatus
import Dodge.Data.Item.Combine
import Control.Lens
data Huse
= 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 {_euseDetector :: Detector}
| EMagShield
| EWristShield
| EHeadLamp
| ECamouflage {_euseCamouflageStatus :: CamouflageStatus}
| EonWristShield
| EoffWristShield
| EFuelSource {_euseFuelAmount :: Int, _euseFuelMax :: Int}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
data Luse
= LDoNothing
| LRewind
| LTimePause
| LTimeScroll
| 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)
makeLenses ''Euse
deriveJSON defaultOptions ''Cuse
deriveJSON defaultOptions ''HeldMod
deriveJSON defaultOptions ''Euse
deriveJSON defaultOptions ''Huse
deriveJSON defaultOptions ''Luse