module Dodge.Item ( module Dodge.Item.Weapon, module Dodge.Item.Held, module Dodge.Item.Consumable, module Dodge.Item.Equipment, module Dodge.Item.Craftable, itemFromBase, ) where import Dodge.Item.Ammo import Dodge.Data.Item import Dodge.Item.Consumable import Dodge.Item.Craftable import Dodge.Item.Equipment import Dodge.Item.Held import Dodge.Item.Weapon import Dodge.Item.Scope itemFromBase :: ItemBaseType -> Item itemFromBase ibt = case ibt of HELD ht -> itemFromHeldType ht LEFT lt -> itemFromLeftType lt EQUIP et -> itemFromEquipType et CONSUMABLE et -> itemFromConsumableType et CRAFT cr -> makeTypeCraft cr ATTACH at -> itemFromAttachType at AMMOMAG t -> itemFromAmmoMag t itemFromAmmoMag :: AmmoMagType -> Item itemFromAmmoMag at = case at of DRUMMAG -> drumMag TINMAG -> tinMag REVOLVEMAG -> revolveMag BELTMAG -> beltMag SHELLMAG -> shellMag itemFromAttachType :: AttachType -> Item itemFromAttachType at = case at of SCROLLATTACH ZOOMSCOPE -> zoomScope TARGETATTACH tt -> targetingScope tt itemFromConsumableType :: ConsumableItemType -> Item itemFromConsumableType ct = case ct of MEDKIT i -> medkit i EXPLOSIVES -> undefined 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 TARGETINGHAT tt -> targetingHat tt HEADLAMP -> headLamp POWERLEGS -> powerLegs SPEEDLEGS -> speedLegs JUMPLEGS -> jumpLegs JETPACK -> jetPack BATTERYPACK -> batteryPack FUELPACK -> fuelPack BULLETBELTPACK -> bulletBeltPack BULLETBELTBRACER -> bulletBeltBracer AUTODETECTOR d -> autoDetector d itemFromLeftType :: LeftItemType -> Item itemFromLeftType lt = case lt of BOOSTER -> boosterGun STOPWATCH -> stopWatch REWINDWATCH -> rewindWatch SCROLLWATCH -> scrollWatch BLINKER -> blinkGun BLINKERUNSAFE -> unsafeBlinkGun SHRINKER -> shrinkGun SPAWNER -> error "need to datify creatures first"