module Dodge.Default.Door 
    ( module Dodge.Default.Door
    , module Dodge.Default.Wall
    ) where
import Dodge.Data
import Dodge.Default.Wall
import Dodge.Block.Debris
import Color

import Control.Lens

switchWallCol :: Color -> Wall
switchWallCol col = defaultSwitchWall & wlColor .~ col

defaultAutoWall :: Wall
defaultAutoWall = defaultDoorWall'
    & wlColor .~ dim yellow
    & wlPathable .~ True
defaultSwitchWall :: Wall
defaultSwitchWall = defaultDoorWall'
    & wlColor .~ red
    & wlPathable .~ False

defaultDoor :: Door
defaultDoor = Door
    { _drID = 0
    , _drWallIDs = mempty
    , _drStatus = DoorClosed
    , _drTrigger = const False
    , _drMech   = const id
    , _drPos = (0,0)
    , _drOpenPos = (0,0)
    , _drClosePos = (0,0)
    , _drHP     = 10000
    , _drDeath  = makeDoorDebris
    , _drSpeed  = 1
    , _drPushedBy = PushesItself
    , _drPushes  = Nothing
    , _drMounts = mempty
    , _drObstructs = mempty
    , _drObstacleType = DoorObstacle
    }

