; AirEvadeMissile RA doctrine 1.41

var RunawayOffset
var CMTimer
var CMAlternate
var chaffIdx
var flareIdx
var JamFC
var JamRad
var DoctI
var EvadeCRS

IF Init THEN {
	DoctI = 1
	SetEntVar "NUM" DOCTI
	CMTimer = -1
	IF RND 10 > 5 THEN {
		RunawayOffset = 135
	} ELSE {
		RunawayOffset = 215
	} ENDIF

	chaffIdx = DBIdxFromRecNum 248
	flareIdx = DBIdxFromRecNum 247

IF GetEntVar "Chaff" == 0 Then {
	ChaffIdx = FlareIdx
} Endif
IF GetEntVar "Flare" == 0 Then {
	FlareIdx = ChaffIdx
} Endif

IF ( TargetName $= "SA-N-5 Grail SAM" ) Or ( TargetName $= "SA-N-8 Gremlin SAM" ) Or ( TargetName $= "FIM-92 SAM" ) THEN {
	CMAlternate = 1
	ChaffIdx = FlareIdx
} ENDIF
} ELSEIF Not LostTrack THEN {
If TgtSource $= "ESM" Then {
	FlareIdx = ChaffIdx
} ELSE {
	ChaffIdx = FlareIdx
} ENDIF
	IF TgtSilos < 0 THEN {
		IF TgtRng < 5556 THEN {
			SetPriority 255	SetSpd MaxSpd
			SetPriority 255 SetCrs EvadeCRS
			IF TIME > CMTimer THEN {
				IF CMAlternate THEN {
				SetPriority 255	CounterMeasureIdx flareIdx	
			} ELSE {
				SetPriority 255 CounterMeasureIdx chaffIdx	
			} ENDIF
			CMTimer = ( Time + 3 + Rnd 3 )
		} ENDIF
		} ELSEIF TgtRng <= 11112 THEN {
			SetPriority 255	SteerAway
			SetPriority 255 SetSpd MaxSpd
			EvadeCRS = ( TgtBrg + RunawayOffset mod 360 )
			IF TIME > CMTimer THEN {
			SetPriority 255	CounterMeasureIdx flareIdx	
			SetPriority 255 CounterMeasureIdx chaffIdx	
			CMTimer = ( Time + 3 + Rnd 6 )
			} ENDIF
		} ELSEIF ( ( TgtID $= "HOSTILE" ) AND ( TgtRng > 11112 ) ) THEN {
		SetPriority 255	SteerAway
		SetPriority 255 SetSpd MaxSpd
		} ENDIF
	} ENDIF
} ENDIF
IF LostTrack Then {
	DoctI = 0
	SetEntVar "NUM" DOCTI
} Endif