Cleanup
This commit is contained in:
@@ -0,0 +1,232 @@
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
module Dodge.Data.Item.Combine where
|
||||
|
||||
import Dodge.Data.Item.Use.Consumption
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
import qualified Data.Map.Strict as M
|
||||
import Dodge.Data.Equipment.Misc
|
||||
|
||||
data ItemType = ItemType
|
||||
{ _iyBase :: ItemBaseType
|
||||
, _iyModules :: M.Map ModuleSlot ItemModuleType
|
||||
, _iyStack :: Stack
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data Stack = NoStack | Stack ItAmount
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data CraftType
|
||||
= PIPE
|
||||
| TUBE
|
||||
| HARDWARE
|
||||
| SPRING
|
||||
| DUCTTAPE
|
||||
| CAN
|
||||
| TIN
|
||||
| DRUM
|
||||
| PLANK
|
||||
| SHARDGLASS
|
||||
| PUMP
|
||||
| MOTOR
|
||||
| TRANSFORMER
|
||||
| PRISM
|
||||
| THERMOMETER
|
||||
| LIGHTER
|
||||
| MAGNET
|
||||
| ANTIMATTER
|
||||
| PLATE
|
||||
| TRANSMITTER
|
||||
| MICROCHIP
|
||||
| AIUNIT
|
||||
| CAMERA
|
||||
| MINIDISPLAY -- visual display unit
|
||||
| LED
|
||||
| NAILBOX
|
||||
| IRONBAR
|
||||
| LIGHTSENSOR
|
||||
| SOUNDSENSOR
|
||||
| HEATSENSOR
|
||||
| CREATURESENSOR
|
||||
| WIRE
|
||||
| BATTERY
|
||||
| FUELCELL
|
||||
| PORTABLEFUSION
|
||||
| INCENDIARYMODULE
|
||||
| STATICMODULE
|
||||
| CONCUSSMODULE
|
||||
| FRAGMODULE
|
||||
| FLASHMODULE
|
||||
| BOUNCEMODULE
|
||||
| PENMODULE
|
||||
| TELEPORTMODULE
|
||||
| TIMEMODULE
|
||||
| SIZEMODULE
|
||||
| GRAVITYMODULE
|
||||
deriving (Eq, Ord, Show, Enum, Read)
|
||||
|
||||
data ItemBaseType
|
||||
= HELD {_ibtHeld :: HeldItemType}
|
||||
| LEFT {_ibtLeft :: LeftItemType}
|
||||
| EQUIP {_ibtEquip :: EquipItemType}
|
||||
| Consumable {_ibtConsumable :: ConsumableItemType}
|
||||
| CRAFT CraftType
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data ConsumableItemType
|
||||
= MEDKIT Int
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data EquipItemType
|
||||
= MAGSHIELD
|
||||
| FLAMESHIELD
|
||||
| FRONTARMOUR
|
||||
| WRISTARMOUR
|
||||
| INVISIBILITYEQUIPMENT EquipSite
|
||||
| BRAINHAT
|
||||
| HAT
|
||||
| HEADLAMP
|
||||
| HEADLAMP1
|
||||
| POWERLEGS
|
||||
| SPEEDLEGS
|
||||
| JUMPLEGS
|
||||
| JETPACK
|
||||
| AUTODETECTOR Detector
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data LeftItemType
|
||||
= BOOSTER
|
||||
| REWINDER
|
||||
| BLINKER
|
||||
| BLINKERUNSAFE
|
||||
| SHRINKER
|
||||
| SPAWNER
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data HeldItemType
|
||||
= BANGSTICK {_xNum :: Int}
|
||||
| PISTOL
|
||||
| REVOLVER
|
||||
| REVOLVERX {_xNum :: Int}
|
||||
| MACHINEPISTOL
|
||||
| AUTOPISTOL
|
||||
| SMG
|
||||
| BANGCONE
|
||||
| BLUNDERBUSS
|
||||
| GRAPECANNON {_xNum :: Int}
|
||||
| -- | GRENADELAUNCHER Int -- number of chambers that can be reloaded
|
||||
-- | MORTARCONE / HANDMORTAR
|
||||
MINIGUNX {_xNum :: Int}
|
||||
| VOLLEYGUN {_xNum :: Int}
|
||||
| RIFLE
|
||||
| REPEATER
|
||||
| AUTORIFLE
|
||||
| BURSTRIFLE
|
||||
| -- | FASTBURSTRIFLE
|
||||
-- | COMPLETEBURSTRIFLE
|
||||
BANGROD
|
||||
| ELEPHANTGUN
|
||||
| AMR
|
||||
| AUTOAMR
|
||||
| SNIPERRIFLE
|
||||
| MACHINEGUN
|
||||
| FLAMESPITTER
|
||||
| FLAMETHROWER
|
||||
| FLAMETORRENT
|
||||
| FLAMEWALL
|
||||
| BLOWTORCH
|
||||
| SPARKGUN
|
||||
| TESLAGUN
|
||||
| LASGUN
|
||||
| LASCIRCLE
|
||||
| -- | LASPULSE
|
||||
DUALBEAM
|
||||
| -- | LASGUNSWING
|
||||
|
||||
-- | LASGUNSWAY
|
||||
-- | LASGUNWIDEPULSE
|
||||
LASWIDE {_xNum :: Int}
|
||||
| -- | LASGUNFOCUS Int
|
||||
-- | SONICGUN
|
||||
TRACTORGUN
|
||||
| LAUNCHER
|
||||
| LAUNCHERX {_xNum :: Int}
|
||||
| -- | TRACKINGLAUNCHER
|
||||
REMOTELAUNCHER
|
||||
| POISONSPRAYER
|
||||
| DRONELAUNCHER
|
||||
| SHATTERGUN
|
||||
| FORCEFIELDGUN
|
||||
| HELDDETECTOR Detector
|
||||
| TORCH
|
||||
| FLATSHIELD
|
||||
| KEYCARD Int
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data ItemModuleType
|
||||
= EMPTYMODULE
|
||||
| DRUMMAG
|
||||
| BELTMAG
|
||||
| MAGNETMAG
|
||||
| INCENDBUL
|
||||
| BOUNCEBUL
|
||||
| PENBUL
|
||||
| STATICBUL
|
||||
| CONCUSBUL
|
||||
| TARGCR
|
||||
| TARGLAS
|
||||
| TARGPOS
|
||||
| MAGNETTRAJ
|
||||
| FLECHETRAJ
|
||||
| BEZIERTRAJ
|
||||
| INCENDLAS
|
||||
| SPLITLAS
|
||||
| STATICLAS
|
||||
| WEPTELE
|
||||
| LAUNCHHOME
|
||||
| EXTRABATTERY
|
||||
| ATTACHTORCH
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data Detector
|
||||
= ITEMDETECTOR
|
||||
| CREATUREDETECTOR
|
||||
| WALLDETECTOR
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
data ModuleSlot
|
||||
= ModBullet
|
||||
| ModBulletSpawn
|
||||
| ModRifleMag
|
||||
| ModAutoMag
|
||||
| ModTarget
|
||||
| ModBulletTrajectory
|
||||
| ModLauncherHoming
|
||||
| ModBattery
|
||||
| ModTeleport
|
||||
| ModDualBeam
|
||||
| ModHeldAttach
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
instance ToJSONKey ModuleSlot
|
||||
|
||||
instance FromJSONKey ModuleSlot
|
||||
|
||||
deriveJSON defaultOptions ''ItemType
|
||||
deriveJSON defaultOptions ''Stack
|
||||
deriveJSON defaultOptions ''CraftType
|
||||
deriveJSON defaultOptions ''ItemBaseType
|
||||
deriveJSON defaultOptions ''ConsumableItemType
|
||||
deriveJSON defaultOptions ''EquipItemType
|
||||
deriveJSON defaultOptions ''LeftItemType
|
||||
deriveJSON defaultOptions ''HeldItemType
|
||||
deriveJSON defaultOptions ''ItemModuleType
|
||||
deriveJSON defaultOptions ''Detector
|
||||
deriveJSON defaultOptions ''ModuleSlot
|
||||
makeLenses ''ItemType
|
||||
makeLenses ''ItemBaseType
|
||||
makeLenses ''HeldItemType
|
||||
Reference in New Issue
Block a user