30 lines
625 B
Haskell
30 lines
625 B
Haskell
module Dodge.Wall.ForceField where
|
|
import Dodge.Data
|
|
import Dodge.Default.Wall
|
|
import Color
|
|
import Picture
|
|
import ShapePicture
|
|
|
|
forceField :: Wall
|
|
forceField = defaultWall
|
|
{_wlColor = orange
|
|
,_wlOpacity = DrawnWall drawForceField
|
|
,_wlPathable = True
|
|
,_wlWalkable = True
|
|
,_wlFireThrough = True
|
|
,_wlReflect = True
|
|
,_wlDraw = True
|
|
,_wlRotateTo = False
|
|
,_wlStructure = StandaloneWall
|
|
}
|
|
|
|
drawForceField :: Wall -> SPic
|
|
drawForceField wl = (mempty
|
|
, setLayer BloomLayer
|
|
. setDepth 20
|
|
. color (_wlColor wl)
|
|
$ thickLine 5 [a,b]
|
|
)
|
|
where
|
|
(a,b) = _wlLine wl
|