; Air-To-Surface Missile Doctrine For v 1.41 -Reinforce Alert- Mod.

var PreenableCourse
var RunToEnable
var Runout
var Spoofed
var DecoyLogic
var lastX
var lastY
var run
var Waypoints
VAR IT
VAR TINIT
VAR ZALT
VAR NUM_TH
VAR ZZZConf
var TX
VAR TY
var talt
var temp
var Delta
var Rmv
var AltCruise
var AltCruise2
var InitAlt
var PreSet
var Typ
var ASUV
var CruiseMode
var VariableCruise
var DescentRNG
var Terminal
var FinalPhazeN
var FinalPhazeV
var vzvod
var ttt
var first
var TN
var Dual
var RTB
func Illuminate {
	IF ( CruiseMode == 0 ) and Not Dual Then {
		SensorEnable "Wep Radar High" 1
		SensorEnable "Oniks ARGS" 1
} ELSEIF ( CruiseMode == 0 ) and Dual Then {
		If RTB > 500 Then {
			SensorEnable "Wep IR" 1
		} ELSE {
			SensorEnable "Wep Radar1" 1
			SensorEnable "Wep Radar3" 1
			SensorEnable "SAM Wep Radar" 1
			SensorEnable "ARGS-35" 1
} endif
} ELSEIF CruiseMode Then {
	SensorEnable "Wep Radar High" 1
	SensorEnable "Wep Radar1" 1
	SensorEnable "Wep Radar3" 1
	SensorEnable "SAM Wep Radar" 1
	SensorEnable "ARGS-35" 1
} ENDIF
}

IF INIT THEN {
RTB = ( RND 1000 )
first = 1
lastX = OwnX
lastY = OwnY
vzvod = -1
NUM_TH = 0
ZZZConf = 0
RunToEnable = 100
Runout = -1
RMV = 0
TINIT = ( TIME + 0.5 )
IT = ( TIME + 2 )
; IT = 0
ZALT = ( MAXALT * 3.28 )
InitAlt = OwnAlt
PreSet = 1
FinalPhazeN = 3000
FinalPhazeV = 7000
Terminal = "TH_ST"
} ELSEIF ( Runout != -1 ) AND ( run > Runout ) AND ( NUM_TH == 0 ) THEN {
Runout = -1
SHUTDOWN
} elseif vzvod != -1 then {
	if time > vzvod then { detonate } endif
} ELSE {

IF PreSet THEN {
	vzvod = -1
	PreSet = 0
	DecoyLogic = 30
	Spoofed = RND 100
IF ( OwnName $= "C 801 ASM" ) THEN { AltCruise = InitAlt VariableCruise = 1 AltCruise2 = 167 FinalPhazeV = 12000 DecoyLogic = 50 } ENDIF
IF ( OwnName $= "C 802 ASM" ) THEN { AltCruise = InitAlt VariableCruise = 1 AltCruise2 = 33 FinalPhazeV = 12000 DecoyLogic = 60 } ENDIF
IF ( OwnName $= "AS-4 Kitchen ASM" ) THEN { AltCruise = 22960 VariableCruise = 1 AltCruise2 = 656 FinalPhazeV = 12000 DecoyLogic = 50 } ENDIF
IF ( OwnName $= "AS-5 Kelt ASM" ) THEN { AltCruise = 22960 AltCruise2 = 820 VariableCruise = 1 FinalPhazeV = 12000 } ENDIF
IF ( OwnName $= "AS-6 Kingfish ASM" ) THEN { AltCruise = 22960 VariableCruise = 1 AltCruise2 = 656 FinalPhazeV = 12000 DecoyLogic = 35 } ENDIF
IF ( OwnName $= "Sea Eagle ASM" ) THEN { AltCruise2 = 49 Dual = 1 RTB = 100 DROP } ENDIF
IF ( OwnName $= "Marte ER" ) THEN { AltCruise2 = 49 Dual = 1 RTB = 100 DecoyLogic = 60 } ENDIF
IF ( OwnName $= "Sea Skua ASM" ) THEN { AltCruise2 = 33 Dual = 1 RTB = 100 } ENDIF
IF ( OwnName $= "C 611 ASM" ) THEN { AltCruise = InitAlt VariableCruise = 1 AltCruise2 = 167 } ENDIF
IF ( OwnName $= "AS-17 Krypton ASM" ) THEN { AltCruise = InitAlt VariableCruise = 1 AltCruise2 = 328 DecoyLogic = 70 } ENDIF
IF ( OwnName $= "AM.39 Exocet ASM" ) THEN { AltCruise2 = 50 Dual = 1 RTB = 100 DecoyLogic = 60 } ENDIF
IF ( OwnName $= "AS-1 Kennel" ) THEN { AltCruise2 = 9840 If ( AltCruise2 > InitAlt ) Then { AltCruise2 = InitAlt } Endif DecoyLogic = 15 } ENDIF
If ( AltCruise2 > InitAlt ) Then { AltCruise2 = InitAlt } Endif
If ( AltCruise > InitAlt ) Then { AltCruise = InitAlt } Endif
IF ( TgtClass $= "SURF" ) Then { Typ = 1 } ENDIF
IF ( ( TgtClass $= "LAND" ) AND ( TgtType $= "ROCK" ) ) Then { Typ = 2 } ENDIF
IF ( ( TgtClass $= "LAND" ) AND ( TgtType $= "SHIP" ) ) Then { Typ = 3 } ENDIF
IF ( ( TgtClass $= "LAND" ) AND ( TgtType $= "FLOAT" ) ) Then { Typ = 3 } ENDIF
	DROP
} ENDIF

IF OwnAlt > 0 THEN { Rmv = 1 } ELSEIF ( OWnAlt < 0 ) AND Rmv THEN { Shutdown } ENDIF
run += xyrng ( OwnX - lastX ) ( OwnY - lastY )
	lastX = OwnX
	lastY = OwnY
IF OwnAlt >= ( ZALT + 300 ) THEN { SETPRIORITY 255 Detonate } ENDIF
IF RUN > DescentRNG AND CruiseMode Then { VariableCruise = 0 } Endif
IF ASUV AND ( DescentRNG <= 0 ) Then { CruiseMode = 1 } ENDIF

IF RunToEnable != -1 THEN {
	IF run >= RunToEnable THEN {
		RunToEnable = -1
		Illuminate
	} ENDIF
} ENDIF

IF NEWTRACK then {
	if first then {
		first = 0
		IF ( TgtClass $= "SURF" ) Then { Typ = 1 } ENDIF
		IF ( TgtClass $= "LAND" ) AND ( TgtType $= "ROCK" ) Then { Typ = 2 } ENDIF
		IF ( TgtClass $= "LAND" ) AND ( TgtType $= "SHIP" ) Then { Typ = 3 } ENDIF
		IF ( TgtClass $= "LAND" ) AND ( TgtType $= "FLOAT" ) Then { Typ = 3 } ENDIF
		IF Typ != 2 Then {
			IF VariableCruise Then {
				ASUV = 1
				IF 5 > RND 10 THEN {
					CruiseMode = 1
					Terminal = "TH_ST"
				} ELSE {
					Terminal = "TH_ST_L"
				} ENDIF
			IF TgtRng >= 50000 Then {
				DescentRNG = ( TgtRng - 50000 )
				RunToEnable = ( TgtRNG - ( 18520 - ( RND 9260 ) ) - 10000 )
			} endif
		} endif
	} endif
	SetTactic "SBROS"
	} ELSE {
		IF TgtType $= "CM" THEN {
			IF Spoofed > DecoyLogic THEN {
				SetTactic "TH_ST"
			} ELSE {
				SetTactic "SBROS"
			} ENDIF
		} ELSE {
			SetTactic Terminal
		} ENDIF
	} ENDIF
} endif

IF NUM_TH == 0 THEN {
	if IT < TIME THEN {
		IF VariableCruise THEN {
			SETPRIORITY 220	PreenableCourse
			SETPRIORITY 220 SETALT AltCruise
			SETPRIORITY 220 SETSPD MAXSPD
		} ELSE {
			SETPRIORITY 220 SETSPD MAXSPD
			SETPRIORITY 220 SETALT AltCruise2
			SETPRIORITY 220	SetCrs PreenableCourse
		} ENDIF
	} ENDIF
} else {
	temp = XYRng ( tx - ownx ) ( ty - owny )
	ttt = temp
	if vzvod == -1 then {
		if temp < 300 then { vzvod = ( time + 2 ) } endif
	} endif
	if ttt > 1200 then { 
		SETPRIORITY 253 SETPERSIST 1 setcrs xybrg ( tx - ownx ) ( ty - owny )
		DELTA = ( TALT - OWNALT + 30 )
		temp = XYBRG ABS DELTA ( temp * 3.28 )
		if DELTA < 0 then { temp = ( -1 * temp ) } endif
		SETPRIORITY 252 SETPERSIST 1 SETPITCH TEMP
	} endif
} endif
} ENDIF