Files
loop/src/Dodge/Item/Craftable.hs
T

49 lines
1.2 KiB
Haskell

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