Work on cleaning up item effects/attachments etc

This commit is contained in:
2022-07-27 16:39:58 +01:00
parent 8d17ce66e9
commit b52adddd5d
39 changed files with 696 additions and 844 deletions
+80 -89
View File
@@ -1,19 +1,21 @@
module Dodge.Item
( module Dodge.Item.Weapon
, module Dodge.Item.Consumable
, module Dodge.Item.Equipment
, module Dodge.Item.PassKey
, module Dodge.Item.Craftable
, itemFromBase
) where
import Dodge.Data
import Dodge.Item.Weapon
import Dodge.Item.Equipment
import Dodge.Item.Consumable
import Dodge.Item.PassKey
import Dodge.Item.Craftable
module Dodge.Item (
module Dodge.Item.Weapon,
module Dodge.Item.Held,
module Dodge.Item.Consumable,
module Dodge.Item.Equipment,
module Dodge.Item.PassKey,
module Dodge.Item.Craftable,
itemFromBase,
) where
import Dodge.Data
import Dodge.Item.Consumable
import Dodge.Item.Craftable
import Dodge.Item.Equipment
import Dodge.Item.Held
import Dodge.Item.PassKey
import Dodge.Item.Weapon
-- this is not ideal, should fold the itemtype into a stackable/unstackable type
itemFromBase :: ItemBaseType -> Item
itemFromBase ibt = case ibt of
HELD ht -> itemFromHeldType ht
@@ -21,94 +23,83 @@ itemFromBase ibt = case ibt of
EQUIP et -> itemFromEquipType et
Consumable et -> itemFromConsumableType et
CRAFT cr -> makeTypeCraft cr
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
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
HEADLAMP1 -> headLamp1
POWERLEGS -> powerLegs
SPEEDLEGS -> speedLegs
JUMPLEGS -> jumpLegs
JETPACK -> jetPack
AUTODETECTOR d -> autoDetector d
BRAINHAT -> brainHat
HAT -> hat
HEADLAMP -> headLamp
POWERLEGS -> powerLegs
SPEEDLEGS -> speedLegs
JUMPLEGS -> jumpLegs
JETPACK -> jetPack
AUTODETECTOR d -> autoDetector d
itemFromLeftType :: LeftItemType -> Item
itemFromLeftType lt = case lt of
BOOSTER -> boosterGun
REWINDER -> rewindGun
BLINKER -> blinkGun
BLINKERUNSAFE -> unsafeBlinkGun
SHRINKER -> shrinkGun
SPAWNER -> error "need to datify creatures first"
-- Equipment
REWINDER -> rewindGun
BLINKER -> blinkGun
BLINKERUNSAFE -> unsafeBlinkGun
SHRINKER -> shrinkGun
SPAWNER -> error "need to datify creatures first"
-- Equipment
itemFromHeldType :: HeldItemType -> Item
itemFromHeldType ht = case ht of
KEYCARD i -> keyCard i
TORCH -> torch
SHATTERGUN -> shatterGun
TORCH -> torch
SHATTERGUN -> shatterGun
BANGSTICK i -> bangStick i
PISTOL -> pistol
REVOLVER -> revolver
REVOLVERX i -> revolverX i
MACHINEPISTOL -> machinePistol
AUTOPISTOL -> autoPistol
SMG -> smg
BANGCONE -> bangCone
BLUNDERBUSS -> blunderbuss
GRAPECANNON i -> grapeCannon i
--GRENADELAUNCHER Int -- number of chambers that can be reloaded
-- --| MORTARCONE / HANDMORTAR
MINIGUNX i -> miniGunX i
VOLLEYGUN i -> volleyGun i
RIFLE -> rifle
REPEATER -> repeater
AUTORIFLE -> autoRifle
BURSTRIFLE -> burstRifle
-- FASTBURSTRIFLE -> fastBurstRifle
-- COMPLETEBURSTRIFLE -> completeBurstRifle
BANGROD -> bangRod
ELEPHANTGUN -> elephantGun
AMR -> amr
AUTOAMR -> autoAmr
SNIPERRIFLE -> sniperRifle
MACHINEGUN -> machineGun
FLAMESPITTER -> flameSpitter
FLAMETHROWER -> flameThrower
FLAMETORRENT -> flameTorrent
FLAMEWALL -> flameWall
BLOWTORCH -> blowTorch
-- SPREADGUN -> spreadGun
-- MULTGUN -> multGun
SPARKGUN -> sparkGun
TESLAGUN -> teslaGun
LASGUN -> lasGun
LASCIRCLE -> lasCircle
--LASPULSE -> lasPulse
DUALBEAM -> dualBeam
--LASGUNSWING -> lasSwing
--LASGUNSWAY -> lasSway
-- LASGUNWIDEPULSE -> lasWidePulse
LASWIDE i -> lasWide i
--LASGUNFOCUS i -> lasFocus i
-- SONICGUN -> sonicGun
TRACTORGUN -> tractorGun
LAUNCHER -> launcher
LAUNCHERX i -> launcherX i
-- --| TRACKINGLAUNCHER
PISTOL -> pistol
REVOLVER -> revolver
REVOLVERX i -> revolverX i
MACHINEPISTOL -> machinePistol
AUTOPISTOL -> autoPistol
SMG -> smg
BANGCONE -> bangCone
BLUNDERBUSS -> blunderbuss
GRAPECANNON i -> grapeCannon i
MINIGUNX i -> miniGunX i
VOLLEYGUN i -> volleyGun i
RIFLE -> rifle
REPEATER -> repeater
AUTORIFLE -> autoRifle
BURSTRIFLE -> burstRifle
BANGROD -> bangRod
ELEPHANTGUN -> elephantGun
AMR -> amr
AUTOAMR -> autoAmr
SNIPERRIFLE -> sniperRifle
MACHINEGUN -> machineGun
FLAMESPITTER -> flameSpitter
FLAMETHROWER -> flameThrower
FLAMETORRENT -> flameTorrent
FLAMEWALL -> flameWall
BLOWTORCH -> blowTorch
SPARKGUN -> sparkGun
TESLAGUN -> teslaGun
LASGUN -> lasGun
LASCIRCLE -> lasCircle
DUALBEAM -> dualBeam
LASWIDE i -> lasWide i
TRACTORGUN -> tractorGun
LAUNCHER -> launcher
LAUNCHERX i -> launcherX i
REMOTELAUNCHER -> remoteLauncher
POISONSPRAYER -> poisonSprayer
DRONELAUNCHER -> droneLauncher
FORCEFIELDGUN -> forceFieldGun
POISONSPRAYER -> poisonSprayer
DRONELAUNCHER -> droneLauncher
FORCEFIELDGUN -> forceFieldGun
HELDDETECTOR d -> clickDetector d
FLATSHIELD -> flatShield
FLATSHIELD -> flatShield