Files
loop/src/Dodge/Item.hs
T

79 lines
2.2 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
DETECTOR d -> detector d
ARHUD -> arHUD
DROPPER x -> dropper x
CLICKER x -> clicker x
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
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