; Reinforce Alert 1.41
; doctrine ver 3.0

var relbrg
var DoctrinePriority
var PursuitCrs
var GPBACS
var PW
var Lag
var Lock
var OpSpd
var OpAlt
var LegTimer

IF Init THEN {
	Lag = 15
	LegTimer = 1000000
	OpAlt = OwnAlt
	GPBACS = GetEntVar "TowedCutSpeed"
	PW = ( GetEntVar "PassiveWashout" - 5 )
	If ( GPBACS == 50 ) Then { Lag = 32 } endif
} ELSEIF Not LostTrack THEN {
		SetPriority DoctrinePriority
		SetEntVar "SAT" TgtAge
		relbrg = RelativeBearing TgtCrs ( ( TgtBrg + 180 ) mod 360 )
	SetPriority DoctrinePriority
	IF ( ( TgtConf >= 44 ) AND ( TGTAGE <= 180 ) ) THEN {
	IF ABS relbrg > 130 THEN {
		SetCrs TgtCrs
		SetPriority 255
		SetSpd TgtSpd
	} ELSE {
		IF relbrg > 0 THEN {
			SetCrs ( ( TgtBrg + 280 ) mod 360 )
		} ELSE {
			SetCrs ( ( TgtBrg + 80 ) mod 360 )
		} ENDIF
	IF ABS relbrg < 45 THEN {
		SetSpd TgtSpd
	} ELSE {
		SetSpd 5
	} ENDIF
} ENDIF
} ELSEIF ( ( TgtConf < 40 ) OR ( TGTAGE > 180 ) ) THEN {
	IF ( RelativeBearing OwnCrs TgtBrg > 0 ) THEN {
		PursuitCrs = ( TgtBrg - Lag )
	} ELSE {
		PursuitCrs = ( TgtBrg + Lag )
	} ENDIF
	SetCrs PursuitCrs
	SetSpd ( TgtSpd + 1 )
IF ( ( TgtSilos > 5 ) OR ( TgtAge >= 60 ) ) THEN {
	OPSpd = ( OwnSpd + TgtSilos + 5 )
	If ( Time >= LegTimer ) Then { Lock = 0 } endif
	If Lock Then { OpSpd = PW } endif
	SetSpd OpSpd
	SetAlt OpAlt
If ( ( TgtAge >= 300 ) AND ( TgtAge < 305 ) ) Then {
	If Layer != 0 AND NOT Lock Then {
 		If OwnAlt <= Layer Then {
			Lock = 1
			OpAlt = ( Layer + 50 ) 
	 	} else {
			Lock = 1
			OpAlt = ( Layer - 50 ) 
	 	} endif
		LegTimer = ( Time + 240 )
	} endif
} ENDIF
} ELSE {
	SetPersist 0
	SetAlt OwnAlt
} ENDIF
} ELSE {
	SetCrs OwnCrs
	SetSpd TgtSpd
	} ENDIF
} ENDIF
