; ASURA Missile Doctrine For  -Reinforce Alert- Mod v 1.31

var PreenableCourse
var RunToEnable
var Runout
var lastX
var lastY
var run
var Waypoints
var DecoyLogic
var Spoofed
var UWD
VAR ZALT
var TINIT
VAR NUM_TH
VAR ZZZConf
var TX
VAR TY
var talt
var temp
var Delta
var AltCruise
var PreSet
var Terminal
var FinalPhazeN
var FinalPhazeV
var FarMode
var OpSpd
var Terminal
var TP
var d
var cd
var mission
func Illuminate { IF FarMode Then { SensorEnable "ADAC MkII" 1 } ELSE { SensorEnable "Wep Radar3" 1 } ENDIF }

IF INIT THEN {
	TP = -1
	cd = 1
	lastX = OwnX
	lastY = OwnY
	RunToEnable = 100
	PreSet = 1
	ZALT = ( MAXALT * 3.28 )
	TINIT = ( TIME + 0.5 )
	setsnorkel on
IF ( Pitch < 70 ) AND ( OwnAlt > 0 ) Then { ShutDown } ENDIF
} ELSEIF ( Runout != -1 ) AND ( run > Runout ) THEN {
	Runout = -1
	SHUTDOWN
} ELSEif ( tp != -1 ) and ( time > tp ) then {
	detonate
} else {
	IF PreSet THEN {
		PreSet = 0
		AltCruise = 50
		DecoyLogic = 80
		OpSpd = 1550
		FinalPhazeN = 3000
		Terminal = "TH_ST"
		Spoofed = RND 100
If RunOut >= 81488.5 Then { AltCruise = 12000 OpSpd = 1933 FarMode = 1 FinalPhazeV = 5000 Terminal = "TH_ST_L" } ENDIF
} ENDIF
 	IF ( OwnAlt > -10 ) AND ( mission != 1 ) THEN {
;		DebugOut "Booster OFF"
 		SetPriority 255
 		SetSnorkel OFF
 		mission = 1
	} ENDIF
IF OwnAlt > 0 THEN { UWD = 1 } ELSEIF ( OWnAlt < 0 ) AND UWD THEN { Shutdown } ENDIF
	run += xyrng ( OwnX - lastX ) ( OwnY - lastY )
	lastX = OwnX
	lastY = OwnY
IF ( TINIT < TIME ) AND ( OWNALT > 0 ) THEN {
		SETPRIORITY 220	PreenableCourse
		SETPRIORITY 220 SETALT AltCruise
		SETPRIORITY 220 SETSPD OPSPD
;	} ENDIF

	IF NUM_TH == 0 THEN {
		IF Waypoints THEN {
			IF ( OwnName $= "Harpoon User" ) Then { SETPRIORITY 224 TerminalHome } ELSE { SETPRIORITY 224 PreenableCourse } ENDIF
		} ELSE {
			SETPRIORITY 224 SetCrs PreenableCourse
		} ENDIF
	} else {
		temp = XYRng ( tx - ownx ) ( ty - owny )
			if d and cd then {
				cd = 0
				tp = ( ownspd * 0.5144444 )
				tp = ( time + 3 + ( temp / tp ) )
			} endif
IF temp > 1000 then {
	d = 1
	SETPRIORITY 250 steerxy ( tx - ownx ) ( ty - owny )
		if ( temp < 5000 ) or ( talt > 50 ) then {
			DELTA = ( TALT - OWNALT + 30 )
			temp = XYBRG ABS DELTA ( temp * 3.28 )
		IF DELTA < 0 then { temp = ( -1 * temp ) } endif
			SETPRIORITY 253 SetSpd OpSpd
			SETPRIORITY 253 SETPERSIST 1 SETPITCH TEMP
			} endif
		} endif
	} endif
} ENDIF

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

	IF NEWTRACK then {
		IF ( TgtType $= "PLANE" ) OR ( TgtType $= "HELO" ) THEN { Drop
		} ELSE {
			IF TgtType $= "CM" THEN {
				IF Spoofed > DecoyLogic THEN {
					SetTactic "TH_ST"
				} ELSEIF Spoofed <= DecoyLogic THEN {
					Drop
				} endif
			} ELSEIF Tgtconf > ZZZConf THEN {
				SetTactic Terminal
			} ELSE {
				SetTactic "SBROS"
			} ENDIF
		} ENDIF
	} ENDIF
} ENDIF