66 lines
1.5 KiB
Haskell
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
|