48 lines
1.5 KiB
Haskell
48 lines
1.5 KiB
Haskell
module Dodge.Module (
|
|
-- moduleSizes,
|
|
-- moduleStrings,
|
|
-- moduleName,
|
|
) where
|
|
|
|
import qualified Data.Map.Strict as M
|
|
import Dodge.Data.Item
|
|
import Dodge.Module.Info
|
|
|
|
--moduleSizes :: Item -> Int
|
|
--moduleSizes = sum . fmap moduleSize . _iyModules . _itType
|
|
--
|
|
--moduleSize :: ItemModuleType -> Int
|
|
--moduleSize imt = case imt of
|
|
-- EMPTYMODULE -> 0
|
|
-- _ -> 1
|
|
|
|
--moduleStrings :: Item -> [String]
|
|
--moduleStrings = M.elems . M.mapMaybe moduleName . _iyModules . _itType
|
|
|
|
--moduleName :: ItemModuleType -> Maybe String
|
|
--moduleName imt = case imt of
|
|
-- EMPTYMODULE -> Nothing
|
|
---- BELTMAG -> Just "+BELT FEED"
|
|
-- MAGNETMAG -> Just "+MAGNET FEED"
|
|
-- BULPAY thepayload -> Just $ "+" ++ displayBulletPayload thepayload
|
|
-- BULBODY thebody -> Just $ "+" ++ displayBulletBody thebody
|
|
-- BULTRAJ thetraj -> Just $ "+" ++ displayBulletTraj thetraj
|
|
-- TARGET TargetRBCreature -> Just "+CREATURETARGETING"
|
|
-- TARGET TARGETLASER -> Just "+LASERTARGETING"
|
|
-- TARGET TargetRBPress -> Just "+POSTIONALTARGETING"
|
|
-- TARGET TargetCursor -> Just "+CURSORTARGETING"
|
|
-- TARGET TargetRBLine -> Just "+LINETARGETING"
|
|
-- INCENDLAS -> Just "+INCENDIARY"
|
|
-- SPLITLAS -> Just "+SPLIT"
|
|
-- STATICLAS -> Just "+STATIC"
|
|
---- WEPTELE -> Just "+DIRECTEDTELE"
|
|
-- LAUNCHHOME -> Just "+TARGET HOMING"
|
|
-- ATTACHTORCH -> Just "+TORCH"
|
|
|
|
|
|
--moduleFold :: (m -> m -> m) -> (ItemModule -> Maybe m) -> m -> Item -> m
|
|
--moduleFold g f e = foldr (g . fromMaybe e . f) e
|
|
-- . fmap fromModuleType
|
|
-- . _iyModules
|
|
-- . _itType
|