; Reinforce Alert Doctrine Captor MK 60 Mod.1 AirVariant.
; for ver. 1.41

var OrderedDepth
var RunOnceDone
var TorpFired
var mw
var PMK
var RunOnce
var TD
var TimeArrival
var InitTime
var Mode
var enginit
var mission
var DST
var Arrival
var Ready
var SonarON
var SONAROFF
var ListenCtrlON
var ListenCtrlOFF
var Lock

IF Init THEN {
	InitTime = TIME
	PMK = 1
	PREENABLE
	RunOnceDone = 0
	SetAlt - 10
	enginit = 100000
	SetSnorkel ON
	DST = 100000
	SonarOn = 1000000
	SonarOFF = -1
} ELSE {
; -------------------------------------------------------
; AutoSet Depth
	IF NOT RunOnceDone And ( OwnAlt <= 10 ) THEN {
		enginit = ( Time + 5 )
		IF ABS TerrainAlt <= 755 THEN {
			OrderedDepth = ( TerrainAlt + 25 )
			Mode = 1
		} ELSEIF ( ABS TerrainAlt > 756 ) AND ( ABS TerrainAlt < 1510 ) THEN {
			OrderedDepth = ( TerrainAlt * 0.5 )
			Mode = 2
		} ELSEIF ( ABS TerrainAlt <= 3280 ) THEN {
			OrderedDepth = -1000
			Mode = 3
		} ELSE {
			OrderedDepth = -1515
			TD = 1
;			DebugOut "Too Deep, CAPTOR must removed"
		} ENDIF
; -----------------------------------------------------------------
		RunOnceDone = 1
	IF ( ABS OrderedDepth ) > ABS ( TerrainAlt ) THEN {
		OrderedDepth = ( TerrainAlt + 25 )
	if OrderedDepth > 0 then { OrderedDepth = -10 } endif
} endif

If ( ABS TerrainAlt >= 3281 ) Then {
;	DebugOut "Too Deep, CAPTOR must removed"
	OrderedDepth = -1476
	TD = 1
} endif
} ELSE {
	IF ( Time > enginit ) AND ( mission != 1 ) THEN {
		SetPriority 255
		SetSnorkel OFF
		mission = 1
	} ENDIF
IF OwnAlt <= ( OrderedDepth + 6 ) AND NOT RunOnce THEN {
;	DebugOut "Approach To Ordered Depth"
;	TimeArrival = ( Time - InitTime )
;	DebugOut "Arrival Time (seconds):"
;	DebugValueOut TimeArrival
	Arrival = 1
If Arrival And Not Ready Then {
	DST = ( Time + 60 )
If OrderedDepth < -900 Then {
	DST = ( Time + 5 )
} endif
	Ready = 1
} endif
If Not TD AND ( Time > DST ) Then {
;	DebugOut "Anchored at Depth:"
;	DebugOut OwnName
;	DebugValueOut OwnAlt
	RunOnce = 1
	SetPersist 0
	SetSpd 0
} ELSE {
;	DebugOut "Too Deep, mine has been removed"
;	ShutDown
	} ENDIF
} ENDIF

If Not RunOnce Then {
	SETPRIORITY 255
	SetAlt OrderedDepth
} Endif
If RunOnce Then {
	SETPRIORITY 255
	SetAlt OrderedDepth
IF ( TIME > SONAROFF ) THEN {
	SonarON = ( time + 30 + ( RND 20 ) )
	ListenCtrlON = 1
	SonarOFF = ( SonarON + 300 )
	Lock = 0
} ENDIF
If ListenCtrlON And NOT ListenCtrlOFF Then {
	SensorEnable "Mk 60 Captor" 1
	ListenCtrlOFF = 1
;	DebugOut "* Captor Passive Sonar On *"
} ENDIF
	If ( Time > SonarON ) AND NOT Lock Then {
		Lock = 1
		ListenCtrlON = 0
		ListenCtrlOFF = 0
		SensorEnable "Mk 60 Captor" 0
;		DebugOut "** Captor Passive Sonar Off **"
	} Endif
} Endif
If OwnAlt < TerrainAlt Then {
;	DebugOut "Bottom hit, has been removed."
	Shutdown
} endif

IF ( NEWTRACK ) THEN {
	If ( TgtSource $= "Active Intercept" ) Then {
		If ( TargetName $= "Mi-14BT MineWeeping" )
		OR ( TargetName $= "EH-101 MineWeeping DE" )
		OR ( TargetName $= "EH-101 MineWeeping IT" )
		OR ( TargetName $= "RH-53D MineWeeper IR" )
		OR ( TargetName $= "RH-53D MineWeeping US" )
		OR ( TargetName $= "S-80M-1 MineWeeping" )
		OR ( TargetName $= "MH-53E MineWeeping" ) Then {
		mw = 1
		SETTACTIC "SBROS"
		} ENDIF
	} ELSEIF ( NEWTRACK ) THEN {
;		DebugOut "---Skip---"
	IF ( NEWTRACK AND ( TgtType $= "SUB" ) AND ( ABS TgtAlt > 3 ) ) THEN {
;		DebugOut "P M K-2  Attack:"
;		DebugOut TargetName
		SetTactic "CAPTORattack"
	} ENDIF
	} ENDIF
} ENDIF

If Mw Then {
	If ( ( TgtRng <= 100 ) AND ( TgtRng > 1 ) ) AND ( TgtSilos > 0 ) Then {
		detonate
	} ENDIF
} ENDIF
		IF TorpFired THEN {
			SETPRIORITY 255
			Shutdown
      		} ENDIF
	} ENDIF
} ENDIF
