; RA Addon v 1.41 AAW Missile Doctrine.

var Aim
var Z
VAR DELTA
VAR WYSOTA
VAR TEMP
VAR TRNG
VAR TALT
VAR ZALT
VAR HOMING
VAR ZZZConf
VAR NUM_TH
VAR RUN
VAR OFRUN
var lastX
var lastY
var firstT
var CH_A
var Fvkl
var F_CM
var Legtimer
var Spoofed
var DecoyLogic

IF INIT Then {
Z = ( 9260 - ( RND 5556 ) )
; ZALT = ( MAXALT / 0.3048 )
ZALT = ( MAXALT )
WYSOTA = 500
temp = 30
TRNG = 5000
Aim = 1
IF ( OwnName $= "AIM-9 Sidewinder AAM" ) THEN { DecoyLogic = 25 OFRUN = 18000 } ENDIF
IF ( OwnName $= "AIM-120 AMRAAM AAM" ) THEN { DecoyLogic = 75 OFRUN = 50000 } ENDIF
IF ( OwnName $= "AA-8 Aphid AAM" ) THEN { DecoyLogic = 25 OFRUN = 14816 } ENDIF
IF ( OwnName $= "AA-10 Alamo AAM" ) THEN { DecoyLogic = 50 OFRUN = 79636 } ENDIF
IF ( OwnName $= "AA-11 Archer AAM" ) THEN { DecoyLogic = 50 OFRUN = 29632 } ENDIF
IF ( OwnName $= "AA-12 Adder AAM" ) THEN { DecoyLogic = 50 OFRUN = 79636 } ENDIF
IF ( OwnName $= "R-550 Magic AAM" ) THEN { DecoyLogic = 50 OFRUN = 14816 } ENDIF
IF ( OwnName $= "R-530 AAM" ) THEN { DecoyLogic = 50 OFRUN = 25002 } ENDIF
IF ( OwnName $= "R-33 AAM" ) THEN { DecoyLogic = 75 OFRUN = 100008 } ENDIF
IF ( OwnName $= "R-40 AAM" ) THEN { DecoyLogic = 50 OFRUN = 30002 } ENDIF
IF ( OwnName $= "Phoenix AAM" ) THEN { DecoyLogic = 50 OFRUN = 150200 } ENDIF
IF ( OwnName $= "PL-7 AAM" ) THEN { DecoyLogic = 25 OFRUN = 13890 } ENDIF
IF ( OwnName $= "PL-2 AAM" ) THEN { DecoyLogic = 50 OFRUN = 7965 } ENDIF
IF ( OwnName $= "V3C Darter AAM" ) THEN { DecoyLogic = 25 OFRUN = 12500 } ENDIF
IF ( OwnName $= "V4R Darter AAM" ) THEN { DecoyLogic = 25 OFRUN = 75000 } ENDIF
IF ( OwnName $= "Skyflash AAM" ) THEN { DecoyLogic = 75 OFRUN = 50000 } ENDIF
IF ( OwnName $= "AIM-7M Sparrow AAM" ) THEN { DecoyLogic = 35 OFRUN = 35000 } ENDIF

lastX = OwnX
lastY = OwnY
firstT = 1
F_CM = 1
Legtimer = -1
} ELSEIF ( OWNALT > ZALT ) OR ( OWNALT < -60 ) OR ( RUN > OFRUN ) or ( ( Legtimer != -1 ) and ( Time >= LegTimer ) ) THEN {
; DEBUGOUT "Missile is not functional"
SHUTDOWN
} else {
run += xyrng ( OwnX - lastX ) ( OwnY - lastY )
lastX = OwnX
lastY = OwnY

IF NEWTRACK THEN {
	if firstT then {
		firstT = 0
		if TgtClass $= "Surf" then { CH_A = 1 } endif
	} endif
IF not ( TgtID $= "FRIEND" ) THEN {
	if CH_A then {
		SetTactic "T_H_GU"

        } ELSEIF F_CM Then {
	IF ( ( TgtClass $= "AIR" ) AND ( TgtType $= "CM" ) ) OR ( TargetName $= "Granit CM" ) then {
		Spoofed = RND 100
If Spoofed > DecoyLogic Then {
;		DEBUGOUT "Countermeasure has been very effective - engage"
		F_CM = 0
		SetPersist 0 SetPriority 255 Intercept
	        SetPersist 0 SetPriority 254 SetAlt TgtAlt
		Legtimer = ( ( OwnSpd + TgtSpd ) * 0.514444 )
		Legtimer = ( TgtRng / Legtimer )
		LegTimer += TIME
		TimedDetonateTgt LegTimer
		} endif
	} endif
} endif

} ENDIF
} ELSEif aim then {
	IF TGTRNG != 0 THEN {
		IF TgtRng <= Z THEN {
			Aim = 0
			if CH_A then {
				Fvkl = 1
			} else {
;				DEBUGOUT "Sensor Enabled"
;				DebugOut OwnName
				enable
			} endif
		} endif
	} endif
} endif

IF TGTRNG != 0 THEN {
SetPriority 252 SetSpd MaxSpd

if F_CM then {
	if CH_A then {
		IF NOT HOMING THEN { SETPRIORITY 251 intercept } ENDIF
	} else {
		TRNG = TgtRng
		TALT = TgtALT
		if tgtrng > 4050 then { SETPRIORITY 251 intercept } else { SETPRIORITY 252 TerminalHome } endif
	} endif

	IF TRNG > 4050 THEN {

		if NOT CH_A then {
			WYSOTA = talt
		} ELSEIF ( TRNG < 8000 ) AND ( TRNG != 5000 ) THEN {
			WYSOTA = ( talt + 50 )
		} endif

		DELTA = ( WYSOTA - OWNALT )
		if CH_A AND ( TRNG > 10000 ) then { 
			temp = XYBRG ABS DELTA 10000
		} ELSE {
			temp = XYBRG ABS DELTA ( TRNG * 3.28 )
		} ENDIF
		if DELTA < 0 then { temp = ( 0 - temp ) } endif
		SETPRIORITY 255 setpitch temp
	} ENDIF
} ENDIF
} endif
} ENDIF
