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

66 lines
1.5 KiB
Haskell

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