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