diff --git a/src/Dodge/Combine.hs b/src/Dodge/Combine.hs index 5bf279916..13ad83903 100644 --- a/src/Dodge/Combine.hs +++ b/src/Dodge/Combine.hs @@ -13,7 +13,7 @@ import Dodge.Data import Dodge.Item.Amount import Dodge.Inventory.ItemSpace import Dodge.Combine.Module -import Dodge.Combine.Data +--import Dodge.Combine.Data import Multiset import SimpleTrie diff --git a/src/Dodge/Default/Item.hs b/src/Dodge/Default/Item.hs index aed6b38cb..b3eb21042 100644 --- a/src/Dodge/Default/Item.hs +++ b/src/Dodge/Default/Item.hs @@ -41,6 +41,7 @@ defaultItem = Item } {- | Displays the item name, ammo if loaded, and any selected '_itCharMode'. -} +-- TODO make work on remote launchers basicItemDisplay :: Item -> [String] basicItemDisplay it = Prelude.take (itSlotsTaken it) $ (midPadL 15 ' ' thename (' ' : thenumber) ++ theparam) diff --git a/src/Dodge/Default/Weapon.hs b/src/Dodge/Default/Weapon.hs index dd59249a1..5be62acff 100644 --- a/src/Dodge/Default/Weapon.hs +++ b/src/Dodge/Default/Weapon.hs @@ -2,7 +2,6 @@ module Dodge.Default.Weapon where import Dodge.Data import Dodge.Default.Item -import Dodge.Item.Weapon.InventoryDisplay import Dodge.Item.Draw import Picture import ShapePicture diff --git a/src/Dodge/Item/Equipment.hs b/src/Dodge/Item/Equipment.hs index 8eca9187e..d6b7b8654 100644 --- a/src/Dodge/Item/Equipment.hs +++ b/src/Dodge/Item/Equipment.hs @@ -2,7 +2,6 @@ module Dodge.Item.Equipment where import Dodge.Data import Dodge.Item.Draw import Dodge.Item.Equipment.Shape -import Dodge.Item.Weapon.InventoryDisplay import Dodge.LightSource import Dodge.Default import Dodge.Default.Wall diff --git a/src/Dodge/Item/Weapon/BulletGun/Cane.hs b/src/Dodge/Item/Weapon/BulletGun/Cane.hs index 763cfa029..4d7436ff7 100644 --- a/src/Dodge/Item/Weapon/BulletGun/Cane.hs +++ b/src/Dodge/Item/Weapon/BulletGun/Cane.hs @@ -15,7 +15,6 @@ import Dodge.Item.Weapon.BulletGun.Clip import Dodge.Data --import Dodge.ChainEffect import Dodge.Default.Weapon -import Dodge.Item.Weapon.InventoryDisplay import Dodge.Default --import Dodge.Item.Attachment --import Dodge.Item.Weapon.ExtraEffect diff --git a/src/Dodge/Item/Weapon/BulletGun/Rod.hs b/src/Dodge/Item/Weapon/BulletGun/Rod.hs index 3f6121bad..c7b84d63b 100644 --- a/src/Dodge/Item/Weapon/BulletGun/Rod.hs +++ b/src/Dodge/Item/Weapon/BulletGun/Rod.hs @@ -9,7 +9,6 @@ module Dodge.Item.Weapon.BulletGun.Rod import Dodge.Data import Dodge.Default.Item import Dodge.Item.Weapon.BulletGun.Clip -import Dodge.Item.Weapon.InventoryDisplay import Dodge.Particle.HitEffect import Dodge.Particle.Damage --import Dodge.ChainEffect diff --git a/src/Dodge/Item/Weapon/InventoryDisplay.hs b/src/Dodge/Item/Weapon/InventoryDisplay.hs deleted file mode 100644 index 219d958b6..000000000 --- a/src/Dodge/Item/Weapon/InventoryDisplay.hs +++ /dev/null @@ -1,14 +0,0 @@ -{- | -Display of weapon strings in the inventory. - -} -module Dodge.Item.Weapon.InventoryDisplay - where -import Dodge.Data -import Padding -import Dodge.Inventory.ItemSpace -import Dodge.Module - -import Data.Maybe -import Data.Sequence -import Control.Lens - diff --git a/src/Dodge/Item/Weapon/Launcher.hs b/src/Dodge/Item/Weapon/Launcher.hs index f294970e1..ff1de37d8 100644 --- a/src/Dodge/Item/Weapon/Launcher.hs +++ b/src/Dodge/Item/Weapon/Launcher.hs @@ -7,7 +7,6 @@ module Dodge.Item.Weapon.Launcher import Dodge.Data import Dodge.Default import Dodge.Default.Weapon -import Dodge.Item.Weapon.InventoryDisplay import Dodge.Item.Location import Dodge.SoundLogic.LoadSound import Dodge.WorldEvent.Explosion diff --git a/src/Dodge/Module.hs b/src/Dodge/Module.hs index df6d04189..35c245f6f 100644 --- a/src/Dodge/Module.hs +++ b/src/Dodge/Module.hs @@ -6,18 +6,28 @@ import Dodge.Data --import Dodge.Combine.Module import qualified Data.Map.Strict as M -import Control.Lens -import Data.Maybe +--import Control.Lens +--import Data.Maybe --moduleSizes :: Item -> Int --moduleSizes = moduleFold (+) (^? modSize) 0 moduleSizes :: Item -> Int -moduleSizes = length . _iyModules . _itType +moduleSizes = sum . fmap moduleSize . _iyModules . _itType + +moduleSize :: ItemModuleType -> Int +moduleSize imt = case imt of + EMPTYMODULE -> 0 + _ -> 1 --moduleStrings :: Item -> [String] --moduleStrings = moduleFold (++) (^? modName) [] moduleStrings :: Item -> [String] -moduleStrings = map show . M.elems . _iyModules . _itType +moduleStrings = map moduleName . M.elems . _iyModules . _itType + +moduleName :: ItemModuleType -> String +moduleName imt = case imt of + EMPTYMODULE -> "" + _ -> '+':show imt --moduleFold :: (m -> m -> m) -> (ItemModule -> Maybe m) -> m -> Item -> m --moduleFold g f e = foldr (g . fromMaybe e . f) e