63 lines
2.1 KiB
Haskell
63 lines
2.1 KiB
Haskell
module Dodge.Item.Equipment
|
|
where
|
|
import Dodge.Data
|
|
import Dodge.Item.Data
|
|
import Dodge.Default
|
|
import Dodge.Picture.Layer
|
|
import Picture
|
|
import Geometry
|
|
import ShapePicture
|
|
import Shape
|
|
|
|
magShield :: Item
|
|
magShield = defaultEquipment
|
|
{ _itIdentity = MagShield
|
|
, _itName = "MAGSHIELD"
|
|
, _itMaxStack = 1
|
|
, _itAmount = 1
|
|
, _itFloorPict = SPic emptySH $ onLayer FlItLayer $ polygon $ map toV2 [(-3,-3),(-3,3),(3,3),(3,-3)]
|
|
, _itEquipPict = \_ _ -> SPic emptySH $ blank
|
|
, _itID = Nothing
|
|
}
|
|
flameShield :: Item
|
|
flameShield = defaultEquipment
|
|
{ _itIdentity = FlameShield
|
|
, _itName = "FLAMESHIELD"
|
|
, _itMaxStack = 1
|
|
, _itAmount = 1
|
|
, _itFloorPict = SPic emptySH $ onLayer FlItLayer $ polygon $ map toV2 [(-3,-3),(-3,3),(3,3),(3,-3)]
|
|
, _itEquipPict = \cr _ -> SPic emptySH $ onLayer CrLayer $ pictures [color cyan $ circle (_crRad cr+2)]
|
|
, _itID = Nothing
|
|
}
|
|
{- | Slows you down, blocks forward projectiles. -}
|
|
frontArmour :: Item
|
|
frontArmour = defaultEquipment
|
|
{ _itIdentity = FrontArmour
|
|
, _itName = "FARMOUR"
|
|
, _itMaxStack = 1
|
|
, _itAmount = 1
|
|
, _itFloorPict = SPic emptySH $ onLayer FlItLayer $ translate 0 (-5) $ pictures
|
|
[color (greyN 0.1) $ thickArc 0 (pi/2) 10 5
|
|
,color (greyN 0.1) $ thickArc (3*pi/2) (2*pi) 10 5
|
|
]
|
|
, _itEquipPict = \_ _ -> SPic emptySH $ onLayer CrLayer $ pictures
|
|
[color (greyN 0.1) $ thickArc 0 (pi/2) 10 5
|
|
,color (greyN 0.1) $ thickArc (3*pi/2) (2*pi) 10 5
|
|
]
|
|
, _itEffect = NoItEffect
|
|
, _itID = Nothing
|
|
}
|
|
{- | Increases speed, reduces friction, cannot only move forwards. -}
|
|
jetPack :: Item
|
|
jetPack = defaultEquipment
|
|
{ _itIdentity = JetPack
|
|
, _itName = "JETPACK"
|
|
, _itMaxStack = 1
|
|
, _itAmount = 1
|
|
, _itFloorPict = SPic emptySH $ onLayer FlItLayer $ color yellow $ polygon $ map toV2 [(-3,-3),(-3,3),(3,3),(3,-3)]
|
|
, _itEquipPict = \_ _ -> SPic emptySH $ onLayer CrLayer
|
|
$ pictures [color yellow $ polygon $ rectNSEW 5 (-5) (-3) (-11) ]
|
|
, _itEffect = NoItEffect
|
|
, _itID = Nothing
|
|
}
|