; HARPOON Doctrine For Reinforce Alert Addon v. 1.36

var Runout
var run
var Homing
var RTESet
var InitTime
var DecoyLogic
var Spoofed
VAR TEMP
VAR ALTCRUISE
VAR TALT
VAR TRNG
var Old_T_alt
var TG
VAR ALT
var Lock
var Go
VAR WPOINT
var LMPX
var LMPY
var lastX
var lastY
var SensRon
var prast
var SON
var twykl
VAR KP
VAR NUM_TH
VAR ZZZConf
var deltax

IF INIT THEN {
	SetAlt 30
	Go = 0
	TG = 0
	old_t_alt = TERRAINALT
	INITTIME = ( TIME + 2 )
	ALTCRUISE = 30
	TRNG = 10000
	RTESet = 1
	Homing = 0
	Spoofed = ( RND 100 )
	setspd maxspd
	lastX = OwnX
	lastY = OwnY
	LMPX = WayPtX
	LMPY = WayPtY
	WPOINT = 1
	SensRon = 10000
	SON = 1
	twykl = -1
	NUM_TH = 0
	ZZZConf = 0
	Runout = -1
} ELSEif ( twykl != -1 ) and ( twykl < time ) then {
	SHUTDOWN
} ELSEIF ( Runout != -1 ) AND ( ( run - 9260 ) > Runout ) THEN {
	IF ( TERRAINALT < 0 ) THEN { SHUTDOWN } ELSE { DETONATE } ENDIF
} else {

	IF RTESet THEN {
		RTEset = 0
		LMPX = WayPtX
		LMPY = WayPtY
		if ( Runout == 149878 ) OR ( Runout == 148160 ) then { kp = 1 } else { kp = 3 } endif
		DecoyLogic = 70 SensRon = 10000 ALTCRUISE = 30
	} ENDIF
	prast = xyrng ( OwnX - WayPtx ) ( OwnY - WayPtY )
	DELTAX = xyrng ( OwnX - lastX ) ( OwnY - lastY )
	run += DELTAX
	lastX = OwnX
	lastY = OwnY
	IF ( LMPX != WayPtX ) OR ( LMPY != WayPtY ) THEN { Wpoint += 1 LMPX = WayPtX LMPY = WayPtY } endif
	IF ( Time >= InitTime ) and ( go == 0 ) THEN { go = 1 } ENDIF
	if wpoint == kp then {
		if ( ( SensRon > prast ) or ( kp == 3 ) ) and SON then {
			SON = 0
			enable
		} endif
		if ( prast < 900 ) and ( twykl == -1 ) then {
			twykl = ( OWNSPD * 0.514444 )
			TEMP = ( pitch * 0.01745 )
			TEMP = cos TEMP
			twykl = ( twykl * TEMP )
			IF twykl == 0 then { twykl = 0.00001 } endif
			twykl = ( prast / twykl )
			twykl = ( time + twykl + 5 )
		} endif
	} endif

	IF NEWTRACK THEN {
		IF ZZZCONF < TGTCONF THEN {
			Lock = 1
			IF ( TgtType $= "CM" ) AND ( Spoofed > DecoyLogic ) THEN {
				Homing = 1
				TALT = TGTALT
				SetTactic "T_H_SLAMER"
			} ELSEIF ( TgtClass $= "AIR" ) or ( ( TgtClass $= "LAND" ) AND ( TgtType $= "ROCK" ) ) THEN {
				SetTactic "SBROS"
			} ELSE {
				Homing = 1
				TALT = TGTALT
				SetTactic "T_H_SLAMER"
			} ENDIF
		} ELSE {
			SetTactic "SBROS"
		} ENDIF
	} ELSEIF ( Homing == 0 ) and go THEN { SetPriority 250 terminalhome } ENDIF

	if not homing or ( trng > 4000 ) then {
		SETPRIORITY 250 setalt ALTCRUISE
	} ENDIF

	IF LOSTTRACK THEN { Homing = 0 } endif
} endif