module Dodge.Item.Craftable where import Dodge.Default.Item import Control.Lens import Dodge.Data.Item makeTypeCraftNum :: Int -> CraftType -> [Item] makeTypeCraftNum i ct = replicate i $ defaultCraftItem & itInvSize .~ 0.5 & itCurseStatus .~ Uncursed -- & itUse . useAmount .~ fromIntegral i & itType . iyBase .~ CRAFT ct makeTypeCraft :: CraftType -> Item makeTypeCraft = head . makeTypeCraftNum 1 energyBallCraft :: EnergyBallType -> Item energyBallCraft ebt = makeTypeCraft (ENERGYBALLCRAFT ebt) & itInvSize .~ 1 incendiaryModule :: Item incendiaryModule = energyBallCraft IncBall bulletBodyCraft :: BulletEffect -> Item bulletBodyCraft ebt = makeTypeCraft (BULBODYCRAFT ebt) & itInvSize .~ 1 bounceModule :: Item bounceModule = bulletBodyCraft BounceBullet teleportModule :: Item teleportModule = makeTypeCraft TELEPORTMODULE & itInvSize .~ 1 timeModule :: Item timeModule = makeTypeCraft TIMEMODULE & itInvSize .~ 1 sizeModule :: Item sizeModule = makeTypeCraft SIZEMODULE & itInvSize .~ 1 gravityModule :: Item gravityModule = makeTypeCraft GRAVITYMODULE & itInvSize .~ 1 pipe :: Item pipe = makeTypeCraft PIPE plateCraft :: Item plateCraft = makeTypeCraft PLATE