class TimedDoor : Item { @Attribute var delay = 10 @Attribute var dx = 1 @Attribute var dy = 1 var open = false override fun createAction() : Action { return Delay( delay ) then MoveBy( actor.position, 1, Vector2( dx * gridSize(), dy * gridSize()), Eases.easeInOut ) thenOnce this:>openDoor } fun openDoor() { open = true } override fun squashable( direction : int ) = open }