adc0878a28
Still not sure what to do with right click scrolling, item swapping
76 lines
2.1 KiB
Haskell
76 lines
2.1 KiB
Haskell
{-# LANGUAGE LambdaCase #-}
|
|
|
|
module Dodge.Item (
|
|
module Dodge.Item.Held,
|
|
module Dodge.Item.Equipment,
|
|
module Dodge.Item.Craftable,
|
|
itemFromBase,
|
|
) where
|
|
|
|
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
|
|
|
|
itemFromAmmoMag :: AmmoMagType -> Item
|
|
itemFromAmmoMag at = case at of
|
|
DRUMMAG -> drumMag
|
|
TINMAG -> tinMag
|
|
BELTMAG -> beltMag
|
|
SHELLMAG -> shellMag
|
|
BATTERY -> battery
|
|
CHEMFUELPOUCH -> chemFuelPouch
|
|
|
|
itemFromAttachType :: AttachType -> Item
|
|
itemFromAttachType at = case at of
|
|
UNDERBARRELSLOT -> underBarrelSlot
|
|
ZOOMSCOPE -> zoomScope
|
|
BULLETSYNTH -> bulletSynthesizer
|
|
REMOTESCREEN -> remoteScreen
|
|
JOYSTICK -> joystick
|
|
GIMBAL -> gimbal
|
|
GYROSCOPE -> gyroscope
|
|
REMOTEDETONATOR -> remoteDetonator
|
|
SMOKEREDUCER -> smokeReducer
|
|
-- ROCKETHOMER -> rocketHomer
|
|
HOMINGMODULE -> homingModule
|
|
AUGMENTEDHUD -> augmentedHUD
|
|
SHELLPAYLOAD p -> shellModule p
|
|
|
|
itemFromEquipType :: EquipItemType -> Item
|
|
itemFromEquipType et = case et of
|
|
MAGSHIELD -> magShield
|
|
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
|