; Reinforce Alert v 1.41 Doctrine

var PreventingCavitation
var LegTimer
var DoctrinePriority
var OpAlt
VAR TEMP
VAR T_UKL
VAR NUM
VAR T_SBROSA
VAR PRS
var ONCE

func AvoidTgt {
; steer evasive
IF TIME > LegTimer THEN {
	IF TgtID $= "HOSTILE" THEN {
		; DebugOut "Avoiding Hostile Surf"
		LegTimer = ( 480 + RND 120 )
		IF 80 > RND 100 THEN {
			if 50 > rnd 100 then {
				temp = ( TgtBrg + ( 80 + rnd 20 ) )
			} else {
				temp = ( TgtBrg - ( 80 + rnd 20 ) )
			} endif
			temp = temp mod 360
			SetPersist LegTimer SetPriority 250 SetCrs temp
		} ELSE {
			if 50 > rnd 100 then {
				temp = ( TgtBrg + ( 100 + rnd 35 ) )
			} else {
				temp = ( TgtBrg - ( 100 + rnd 35 ) )
			} endif
			temp = temp mod 360
			SetPersist LegTimer SetPriority 250 SetCrs temp
			; SetPersist LegTimer SetPriority 250 SteerEvasive
		} ENDIF
	} ELSE {
		SetPersist LegTimer SetPriority 250 SteerAbeam
		LegTimer = ( 180 + RND 120 )
	; DebugOut "Avoiding Non-Hostile Surf"
	} ENDIF
	IF Layer != 0 THEN {
		IF 50 > RND 100 THEN {	
			IF TgtAlt < Layer THEN {
				TEMP = ( Layer / 3 )
				TEMP = ( TEMP + RND TEMP )
				IF TEMP > -100 THEN { TEMP = -100 } ENDIF
				OpAlt = TEMP
			} ELSE {
				OPAlt = ( Layer - ( 250 + RND 150 ) )
				IF MINALT < OPAlt THEN { OPAlt = ( MINALT + 10 ) } ENDIF
				If ( OpAlt <= TerrainAlt ) Then { OPAlt = TerrainAlt + 50 } Endif
			} ENDIF
		} ELSE {
			OpAlt = ownalt
		} endif
	} ELSE {
		IF 40 > RND 100 THEN {
			TEMP = ( MINALT / 2 )
			IF OWNALT > TEMP THEN {
				OPAlt = ( TEMP + RND TEMP )
				If ( OpAlt <= TerrainAlt ) Then { OPAlt = TerrainAlt + 50 } Endif
			} ELSE {
				OPAlt = ( -120 - RND 100 )
				If ( OpAlt <= TerrainAlt ) Then { OPAlt = TerrainAlt + 50 } Endif
			} ENDIF
		} ELSE {
			OpAlt = ownalt
		} endif
	} ENDIF
	SetPersist LegTimer SetPriority 250 SetAlt OpAlt
	; setmin avoid speed
	IF OWNSPD < 6 THEN {
		SETSPD ( 7 + RND 3 )
	} ELSEIF OWNSPD < 3 THEN {
		SETSPD ( 3 + RND 3 )
	} ENDIF 
		LegTimer += TIME
} ENDIF
}
IF Init THEN {
	NUM = ( time + rnd 100 )
	PreventingCavitation = true
	T_UKL = ( TIME + 60 + RND 100 )
	T_SBROSA = ( TIME + 900 + RND 200 )
	PRS = 1
} ELSEIF LostTrack THEN {
	SetEntVar "BEZ" 0
} ELSE {
	IF PRS THEN {
		PRS = 0
		AvoidTgt
	} ENDIF
	SetEntVar "BEZ" 1
	IF tgtrng < 10000 THEN {
		IF T_UKL < TIME THEN { 
			; IF ( TgtID $= "HOSTILE" ) OR ( TgtSource $= "Active Intercept" ) THEN {
			 IF TgtID $= "HOSTILE" THEN {
				IF NOT ( Order $= "Track" ) THEN {
					; DebugOut "Switching from Avoid to Attack"
						IF ( ATTACKRNG != 0 ) AND ( TGTAGE < 30 ) THEN {
;							SetTactic "SubAtkSurf"
						} ENDIF
				} ELSE {
				} ENDIF
			} ELSE {
				; IF tgtrng < 2000 THEN { AvoidTgt } ENDIF
			} ENDIF
		} ENDIF
	} ELSE {
		; AvoidTgt
	} ENDIF
} ENDIF
IF ( TIME > T_SBROSA ) AND NOT Once THEN {
	Once = 1
	DROP
} Endif