Scriptname _00E_ComplexSceneTriggerScript extends ObjectReference  

;=====================================================================================
;              							STATES                					 
;=====================================================================================

Auto State WaitingForTrigger

Event OnTriggerEnter(ObjectReference akActionRef)

    if ((QueststageForStart == QuestForScene.GetStage()) && !Done) || (!Done && !Config_StageRequired)
        
        if Config_NotTriggeredByPlayer == True
            if akActionRef == TriggerActor
                Done = True
                
                if Config_Force == True
                    StartScene.ForceStart()
                Else ;if Config_Force == False
                    StartScene.Start()
                EndIf
                
                if StartScene.IsPlaying()
                    GoToState("AllDone")
                EndIf
            Else
                Return
            EndIf
        Else ;If Config_NotTriggeredByPlayer == False
            if akActionRef == PlayerREF
                Done = True
                
                if Config_Force == True
                    StartScene.ForceStart()
                Else ;if Config_Force == False
                    StartScene.Start()
                EndIf
                
                GoToState("AllDone")
            Else
                Return
            EndIf
        EndIf

    Endif

EndEvent

EndState		

State AllDone

Event OnTriggerEnter(ObjectReference akActionRef)

    ; Do nothing 

EndEvent

EndState

;=====================================================================================
;              							PROPERTIES                  					 
;=====================================================================================

bool Done = False

Bool Property Config_Force = False Auto
{Shall this scene be force started? Default: FALSE}
Bool Property Config_StageRequired = True Auto
Bool Property Config_NotTriggeredByPlayer  Auto
{Default: FALSE}
Scene Property StartScene Auto
Quest Property QuestForScene Auto
{Which scene does the quest belong to?}
Int Property QueststageForStart Auto
{Which stage is necessary for the triggerbox to take effect?}
Actor Property TriggerActor Auto
{Which actor shall trigger the scene to begin? Only use if Config_NotTriggeredByPlayer is set to true!}
Actor Property PlayerREF Auto