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