Files
loop/src/Dodge/Item.hs
T

85 lines
2.3 KiB
Haskell

{-# LANGUAGE LambdaCase #-}
module Dodge.Item (
module Dodge.Item.Held,
module Dodge.Item.Equipment,
module Dodge.Item.Craftable,
itemFromBase,
) where
import Dodge.Data.Equipment.Misc
import Dodge.Data.Item
import Dodge.Item.Ammo
import Dodge.Item.Craftable
import Dodge.Item.Equipment
import Dodge.Item.Held
import Dodge.Item.Scope
itemFromBase :: ItemType -> Item
itemFromBase = \case
HELD ht -> itemFromHeldType ht
-- LEFT lt -> itemFromLeftType lt
EQUIP et -> itemFromEquipType et
CRAFT cr -> makeTypeCraft cr
ATTACH at -> itemFromAttachType at
AMMOMAG t -> itemFromAmmoMag t
TARGETING tt -> targetingScope tt
BULLETMOD bm -> bulletModule bm
STICKYMOD -> stickyMod
ITEMSCAN -> itemScan
INTROSCAN t -> introScan t
MAPPER -> mapper
DETECTOR d -> detector d
ARHUD -> arHUD
DROPPER x -> dropper x
CLICKER x -> clicker x
COPIER x -> copier x
NULGATE -> nulgate
UNIGATE -> unigate
BINGATE -> bingate
LASER -> laser
itemFromAmmoMag :: AmmoMagType -> Item
itemFromAmmoMag at = case at of
DRUMMAG -> drumMag
TINMAG -> tinMag
BELTMAG -> beltMag
SHELLMAG -> shellMag
BATTERY -> battery
CHEMFUELPOUCH -> chemFuelPouch
itemFromAttachType :: AttachType -> Item
itemFromAttachType = \case
UNDERBARRELSLOT -> underBarrelSlot
ZOOMSCOPE -> zoomScope
BULLETSYNTH -> bulletSynthesizer
REMOTESCREEN -> remoteScreen
JOYSTICK -> joystick
GIMBAL -> gimbal
GYROSCOPE -> gyroscope
REMOTEDETONATOR -> remoteDetonator
SMOKEREDUCER -> smokeReducer
HOMINGMODULE -> homingModule
SHELLPAYLOAD p -> shellModule p
CAPACITOR -> capacitor
itemFromEquipType :: EquipItemType -> Item
itemFromEquipType et = case et of
MAGSHIELD mt -> magShield mt
FLAMESHIELD -> flameShield
FRONTARMOUR -> frontArmour
WRISTARMOUR -> wristArmour
INVISIBILITYEQUIPMENT GoesOnWrist -> wristInvisibility
INVISIBILITYEQUIPMENT _ -> error "need to define invisibility for more than wrist"
BRAINHAT -> brainHat
HAT -> hat
HEADLAMP -> headLamp
POWERLEGS -> powerLegs
SPEEDLEGS -> speedLegs
JUMPLEGS -> jumpLegs
BATTERYPACK -> batteryPack
FUELPACK -> fuelPack
BULLETBELTPACK -> bulletBeltPack
BULLETBELTBRACER -> bulletBeltBracer
WRIST_ECG -> pulseChecker