Scriptname _00E_MQ13c_FailsaveSC extends ObjectReference  


;=====================================================================================
;              							EVENTS                  					 
;=====================================================================================

Event OnTriggerEnter(ObjectReference akActionRef)

	If !bDone && akActionRef == PlayerREF
		
		If bYaela 
			PortToPlayerIfNotNearby(MQ13c._00E_MC_YaelaREF)
		EndIf
		
		If bRomance 
			PortToPlayerIfNotNearby(MQ13c.akCompanionRomance)
		EndIf
		
		If bKurmai 
			PortToPlayerIfNotNearby(MQ13c._00E_SC_KurmaiREF)
		EndIf
		
		If bNoRomance
			PortToPlayerIfNotNearby(MQ13c.akCompanionNoRomance)
		EndIf	
	EndIf

EndEvent

Event OnUpdate()

	If bRomance && !PlayerREF.HasLOS(MQ13c.akCompanionRomance)
		MQ13c.akCompanionRomance.MoveTo(PlayerREF)
		bDone = True
	ElseIf bNoRomance && !PlayerREF.HasLOS(MQ13c.akCompanionNoRomance)
		MQ13c.akCompanionNoRomance.MoveTo(PlayerREF)
	ElseIf bKurmai && !PlayerREF.HasLOS(MQ13c._00E_SC_KurmaiREF)
		MQ13c._00E_SC_KurmaiREF.MoveTo(PlayerREF)
	ElseIf bYaela && !PlayerREF.HasLOS(MQ13c._00E_MC_YaelaREF)
		MQ13c._00E_MC_YaelaREF.MoveTo(PlayerREF)
	Else
		RegisterForSingleUpdate(1)
	EndIf

EndEvent

;=====================================================================================
;              							FUNCTIONS                  					 
;=====================================================================================

Function PortToPlayerIfNotNearby(Actor akPortTarget)

	If !__Config_bDistanceCheck
		akPortTarget.MoveTo(PlayerREF)
		bDone = True
	Else
		If !PlayerREF.HasLOS(akPortTarget)
			akPortTarget.MoveTo(PlayerREF)
			bDone = True
		Else
			RegisterForSingleUpdate(1)
		EndIf
	EndIf
	
EndFunction


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

bool bDone

bool Property bYaela Auto
bool Property bKurmai Auto
bool Property bRomance Auto
bool Property bNoRomance Auto

bool Property __Config_bDistanceCheck = False Auto
bool Property __Config_bResetAI = False Auto
 
 float Property __Config_fPortingDistance = 650.0 Auto
 {If distance-check is true, when should the NPC be ported to the player?}
 
_00E_MQ13c_Functions Property MQ13c Auto

Actor Property PlayerREF Auto