; Gun Self-defense -- SCX 1.3
; Compatible to RA Addon Use ver 1.36
var EvadeSpeed
var CMTimer
var GunsTrack
var GunsLocked
var SamTrack
var SamLocked
var chaffIdx
var FlareIdx
var CMDrop
var Vdrop2
var Away
var WpnIdx1
var WpnIdx2
var WpnIdx3
var WpnIdx4
var WpnIdx5
var WpnIdx6
var WpnIdx7
var WpnIdx8
var WpnIdx9
var WpnIdx10
var WpnIdx11
var WpnIdx12
var WpnIdx13
var WpnIdx14
var WpnIdx15
var WpnIdx16

IF Init THEN {
chaffIdx = DBIdxFromRecNum 827
FlareIdx = DBIdxFromRecNum 826
WpnIdx1 = DBIdxFromRecNum 1409
WpnIdx2 = DBIdxFromRecNum 1411
WpnIdx3 = DBIdxFromRecNum 1545
WpnIdx4 = DBIdxFromRecNum 1816
WpnIdx5 = DBIdxFromRecNum 1817
WpnIdx6 = DBIdxFromRecNum 1818
WpnIdx7 = DBIdxFromRecNum 1819
WpnIdx8 = DBIdxFromRecNum 1820
WpnIdx9 = DBIdxFromRecNum 1821
WpnIdx10 = DBIdxFromRecNum 1822
WpnIdx11 = DBIdxFromRecNum 1823
WpnIdx12 = DBIdxFromRecNum 2033
WpnIdx13 = DBIdxFromRecNum 3421
WpnIdx14 = DBIdxFromRecNum 3425
WpnIdx15 = DBIdxFromRecNum 3426
WpnIdx16 = DBIdxFromRecNum 1824

} ENDIF
; Watch incoming threats
IF ( TgtSilos < -400 ) AND ( ( TgtID $= "HOSTILE" ) OR ( TgtID $= "UAE" ) ) THEN {
	EvadeSpeed = MaxSpd
	SetSpd EvadeSpeed
	SteerAbeam
	; Throw CM if applicable
	IF ( ( TIME > GetEntVar "CMTimer" ) AND ( TgtClass $= "MISSILE" ) ) THEN {
		CounterMeasureIdx chaffIdx	
;		CounterMeasureIdx FlareIdx
		SetEntVar "CMTimer" ( TIME + 30 + RND 30 )
		Vdrop2 = ( Time + ( 3 + RND 4 ) )
		CMDrop = 1
	} ENDIF
If CMDrop Then {
	If ( Time > Vdrop2 ) and ( Not Away ) Then {
		CounterMeasureIdx FlareIdx
		Away = 1
} endif } endif
	; Autoengage option?
	IF ( AUTOSURFENGAGEAIR ) THEN {
		; Default Attack Air
		IF ( TgtSource $= "Radar" ) OR ( TgtSource $= "FCRadar" ) OR ( TgtSource $= "ESM" ) THEN {

			IF ( TgtSource $= "FCRadar" ) THEN {
				GunsTrack = ( GunsTrack + 1 )
				IF ( GunsTrack > 4 ) THEN {
					GunsTrack = 4
				} ENDIF
				GunsLocked = 0
			} ENDIF
IF ( TgtSource $= "Radar" ) OR ( TgtSource $= "ESM" ) THEN {
	SAMTrack = ( SAMTrack + 1 )
	IF ( SAMTrack > 4 ) THEN {
	SAMTrack = 4
} ENDIF
	SAMLocked = 0
} ENDIF
IF ( TgtRng < 8000 ) AND ( ( GunsTrack > 0 ) OR ( GunsLocked > 0 ) ) THEN {
; DebugOut "Assign CIWS"
	AttackIdx WpnIdx1
	AttackIdx WpnIdx2
	AttackIdx WpnIdx3
	AttackIdx WpnIdx4
	AttackIdx WpnIdx5
	AttackIdx WpnIdx6
	AttackIdx WpnIdx7
	AttackIdx WpnIdx8
	AttackIdx WpnIdx9
	AttackIdx WpnIdx10
	AttackIdx WpnIdx11
	AttackIdx WpnIdx12
	AttackIdx WpnIdx13
	AttackIdx WpnIdx14
	AttackIdx WpnIdx15
	AttackIdx WpnIdx16
	GunsLocked = ( GunsLocked + 1 )
IF ( GunsLocked > 2 ) THEN {
	GunsLocked = 2
} ENDIF
	GunsTrack = ( GunsTrack - 1 )
	IF ( GunsTrack < 0 ) THEN {
		GunsTrack = 0
	} ENDIF
} ENDIF
	IF ( SAMTrack > 0 ) OR ( SAMLocked > 0 ) THEN {
		; DebugOut "Assign Guns"
		AttackBest
		SAMLocked = ( SAMLocked + 1 )
		IF ( SAMLocked > 4 ) THEN {
			SAMLocked = 4
		} ENDIF
		SAMTrack = ( SAMTrack - 1 )
		IF ( SAMTrack < 0 ) THEN {
			SAMTrack = 0
		} ENDIF
	} ENDIF
} ELSE {
	SAMTrack = 0
	SAMLocked = 0
; DebugOut "No Radar Tracking"
IF ( TgtRng < ( 10000 + RND 10000 ) ) THEN {
 	SetSpd MaxSpd
	SteerEvasive
} ENDIF

IF ( TgtRng < 8000 ) AND ( ( GunsTrack > 0 ) OR ( GunsLocked > 0 ) ) THEN {
; DebugOut "Assign CIWS"
	AttackIdx WpnIdx1
	AttackIdx WpnIdx2
	AttackIdx WpnIdx3
	AttackIdx WpnIdx4
	AttackIdx WpnIdx5
	AttackIdx WpnIdx6
	AttackIdx WpnIdx7
	AttackIdx WpnIdx8
	AttackIdx WpnIdx9
	AttackIdx WpnIdx10
	AttackIdx WpnIdx11
	AttackIdx WpnIdx12
	AttackIdx WpnIdx13
	AttackIdx WpnIdx14
	AttackIdx WpnIdx15
	AttackIdx WpnIdx16
	GunsLocked = ( GunsLocked - 1 )
IF ( GunsLocked < 0 ) THEN {
	GunsLocked = 0
} ENDIF
	GunsTrack = ( GunsTrack - 1 )
	IF ( GunsTrack < 0 ) THEN {
		GunsTrack = 0
			} ENDIF
		} ENDIF
        } ENDIF
} ENDIF
} ENDIF
IF LOSTTRACK THEN {
SensorEnable "*9LV 200 Mk3" 0
SensorEnable "*AN/SPG-51_16" 0
SensorEnable "*AN/SPG-51_21" 0
SensorEnable "*AN/SPG-52_16" 0
SensorEnable "*AN/SPG-52_20" 0
SensorEnable "*AN/SPG-60_25" 0
SensorEnable "*AN/SPG-60_32" 0
SensorEnable "*AN/SPG-62_19" 0
SensorEnable "*AN/SPG-62_22" 0
SensorEnable "*AN/SPG-75_23" 0
SensorEnable "*AN/SPG-75_40" 0
SensorEnable "*AN/SPG-76_12" 0
SensorEnable "*AN/SPQ-9_20" 0
SensorEnable "*Apurna_16" 0
SensorEnable "*Band Stand_17" 0
SensorEnable "*Bass Tilt_12" 0
SensorEnable "*Bass Tilt_14" 0
SensorEnable "*CA/SPG-503" 0
SensorEnable "*Castor_22" 0
SensorEnable "*Castor_9" 0
SensorEnable "*Ceros 200_8" 0
SensorEnable "*Cross Swords_10" 0
SensorEnable "*Cross Swords_13" 0
SensorEnable "*Cross Swords_45" 0
SensorEnable "*Decca-171_6" 0
SensorEnable "*Drakon" 0
SensorEnable "*DRBC-32_12" 0
SensorEnable "*DRBC-32_15" 0
SensorEnable "*DRBC-32_22" 0
SensorEnable "*DRBC-32_30" 0
SensorEnable "*DRBC-32_40" 0
SensorEnable "*DRBC-33_16" 0
SensorEnable "*Drum Tilt_15" 0
SensorEnable "*EL/M-222_8" 0
SensorEnable "*FC Radar_15" 0
SensorEnable "*FC Radar_19" 0
SensorEnable "*FC Radar_21" 0
SensorEnable "*FC Radar_5" 0
SensorEnable "*FC Radar_9" 0
SensorEnable "*FCS-2-12_23" 0
SensorEnable "*FCS-2-21_14" 0
SensorEnable "*FCS-2-21_21" 0
SensorEnable "*FCS-2-31" 0
SensorEnable "*FCS-2B_17" 0
SensorEnable "*Fort" 0
SensorEnable "*Front Dome_18" 0
SensorEnable "*Hawk Screetch" 0
SensorEnable "*Head Light Aft" 0
SensorEnable "*Head Light Fwd" 0
SensorEnable "*HR-76_20" 0
SensorEnable "*M-44_14" 0
SensorEnable "*Mk-36_16" 0
SensorEnable "*MK-76_25" 0
SensorEnable "*MK-90_15" 0
SensorEnable "*MK-92 CAS_18" 0
SensorEnable "*MK-92 STIR" 0
SensorEnable "*MK-95_10" 0
SensorEnable "*MK-95_20" 0
SensorEnable "*MK-95_30" 0
SensorEnable "*MK-95_36" 0
SensorEnable "*MR-331" 0
SensorEnable "*MT-909_15" 0
SensorEnable "*M-Tek TDS" 0
SensorEnable "*Muff Cob_8" 0
SensorEnable "*Orion 10X_22" 0
SensorEnable "*Orion 10X_9" 0
SensorEnable "*Peel Group_12" 0
SensorEnable "*Peel Group_15" 0
SensorEnable "*Peel Group_18" 0
SensorEnable "*Peel Group_31" 0
SensorEnable "*Pollux_9" 0
SensorEnable "*PT-904_15" 0
SensorEnable "*PT-904_17" 0
SensorEnable "*PT-904_35" 0
SensorEnable "*RAN 40L_30" 0
SensorEnable "*Rice Lamp_18" 0
SensorEnable "*RTN-10X_10" 0
SensorEnable "*Sampson_28" 0
SensorEnable "*Square Tie_11" 0
SensorEnable "*STIR_15" 0
SensorEnable "*STIR_22" 0
SensorEnable "*STIR_35" 0
SensorEnable "*STIR-180" 0
SensorEnable "*Top Dome_15" 0
SensorEnable "*Top Dome_21" 0
SensorEnable "*Top Sail Aft" 0
SensorEnable "*Top Sail Fwd" 0
SensorEnable "*Triton FC_15" 0
SensorEnable "*Triton FCR_15" 0
SensorEnable "*Triton FC_17" 0
SensorEnable "*Type-1802_14" 0
SensorEnable "*Type-343_14" 0
SensorEnable "*Type-343_19" 0
SensorEnable "*Type-909_14" 0
SensorEnable "*Type-911" 0
SensorEnable "*Type-912_8" 0
SensorEnable "*WM-22_19" 0
SensorEnable "*WM-25_17" 0
SensorEnable "*WM-25_22" 0
SensorEnable "*WM-25_30" 0
SensorEnable "*WM-27_15" 0
SensorEnable "*WM-28_18" 0
SensorEnable "*WM-28_22" 0
SensorEnable "*WM-28_8" 0
SensorEnable "*Yakor'_18" 0
SensorEnable "*Yatagan A" 0
SensorEnable "*Yatagan F" 0
SensorEnable "*Yatagan_14" 0
SensorEnable "*Zenith 41_18" 0
SensorEnable "*Zenith 68_32" 0
} ENDIF