Defunction-ify item modules, requires more cleanup

This commit is contained in:
2022-06-08 12:28:11 +01:00
parent d91a53f76c
commit bcbfd7d2fa
48 changed files with 762 additions and 740 deletions
+56 -4
View File
@@ -1,11 +1,22 @@
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Combine.Data
(CombineType (..)
,Detector (..)
) where
where
import Dodge.Equipment.Data
import Control.Lens
import qualified Data.Map.Strict as M
-- this should probably store loaded ammo
data ItemType = ItemType
{_iyBase :: ItemBaseType
,_iyModules :: M.Map ModuleSlot ItemModuleType
}
deriving (Eq,Ord,Show)
-- TODO make this an enum somehow...?
data CombineType
data ItemBaseType
= NOTDEFINED
| EFFGUN String
| AUTOEFFGUN String
-- Weapons
| BANGSTICK Int
| PISTOL
@@ -76,6 +87,7 @@ data CombineType
| BLINKERUNSAFE
| FORCEFIELDGUN
| SHRINKER
| SPAWNER
-- Equipment
| CLICKDETECTOR Detector
| AUTODETECTOR Detector
@@ -86,6 +98,7 @@ data CombineType
| INVISIBILITYEQUIPMENT EquipSite
| BRAINHAT
| HEADLAMP
| HEADLAMP1
| POWERLEGS
| SPEEDLEGS
| JUMPLEGS
@@ -141,11 +154,50 @@ data CombineType
--
| KEYCARD Int
--
| MEDKIT Int
--
| NoCombineType
deriving (Eq,Ord,Show)
data ItemModuleType
= EMPTYMODULE
| DRUMMAG
| BELTMAG
| MAGNETMAG
| INCENDBUL
| BOUNCEBUL
| STATICBUL
| CONCUSBUL
| TARGCR
| TARGLAS
| TARGPOS
| MAGNETTRAJ
| FLECHETRAJ
| BEZIERTRAJ
| INCENDLAS
| SPLITLAS
| STATICLAS
| WEPTELE
| LAUNCHHOME
| EXTRABATTERY
deriving (Eq,Ord,Show)
data Detector
= ITEMDETECTOR
| CREATUREDETECTOR
| WALLDETECTOR
deriving (Eq,Ord,Show)
data ModuleSlot
= ModBullet
| ModRifleMag
| ModAutoMag
| ModTarget
| ModBulletTrajectory
| ModLauncherHoming
| ModBattery
| ModTeleport
| ModDualBeam
deriving (Eq,Ord,Show)
makeLenses ''ItemType