ScriptName DefaultInteriorDoorShutScript extends ObjectReference

bool Property SkipBehaviorDuringQuestStages Auto
{Default: false; if true, do not close and lock while quest stage is between X and Y of QuestToWatch}

Quest Property QuestToWatch Auto
{Default: None; which quest's stages to limit behavior during}

Int Property SkipBehaviorAtStage = 0 Auto
{Default: 0; which stage of QuestToWatch should we start skipping closing and locking behavior?}

int Property ResumeBehaviorAtStage = 0 Auto
{Default: 0; which stage of QuestToWatch should we resume closing and locking behavior?}

Event OnOpen(ObjectReference akActionRef)

	if SkipBehaviorDuringQuestStages == True
		int QuestStage = QuestToWatch.GetCurrentStageID() 
		if QuestStage >= SkipBehaviorAtStage && QuestStage < ResumeBehaviorAtStage
; 			debug.trace(self + "OnOpen() skipping closing and locking because quest stages prohibit.")
			Return
		EndIf
	EndIf

	If (akActionRef != (Game.GetForm(0x14) as Actor))
; 		debug.trace(self + "OnOpen() by Non-Player Actor. Waiting 3, then closing and locking.")
		Utility.Wait(3)
		Self.SetOpen(False)
		Self.Lock()
	EndIf

EndEvent