; SLAM-ER User Doctrine For Reinforce Alert Addon v 1.41
; skimmer ver 2.0

var Runout
var initX
var initY
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 delta
var deltax
var Typ
var rng
var landshaft
VAR FCRUIS

func MainSensor {
IF ( terrainalt > -1 ) THEN {
; DEBUGOUT "Radar Sensor Assigned"
	SensorEnable "Wep Radar2" 1
} ELSE {
 	SensorEnable "SLAM-ER IR" 1
; DEBUGOUT "IR Sensor Assigned"
} endif
}

IF INIT THEN {
FCRUIS = 1
Go = 0
TG = 0
old_t_alt = TERRAINALT
INITTIME = ( TIME + 2 )
ALTCRUISE = 350
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 {
LMPX = WayPtX
LMPY = WayPtY
RTEset = 0 

IF ( OwnName $= "Kh-65 ALCM User" ) THEN {
	Typ = 1
	SetAlt 53
	if Runout == 1215223 then { KP = 1 } else { kp = 3 } endif
	DecoyLogic = 85 SensRon = 9260
} ELSEIF ( OwnName $= "SLAM-ER User" ) THEN {
	if Runout == 285208 then { kp = 1 } else { kp = 3 } endif
	DecoyLogic = 99 SensRon = 10000
} ENDIF

} 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 ) and SON then {
SON = 0
If Typ == 0 Then { MainSensor } endif
SensorEnable "Granat Visual" 1
} endif
if ( prast < 900 ) and ( twykl == -1 ) then {
twykl = ( OWNSPD * 0.514444 )
TEMP = ( pitch * 0.01745329 )
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" ) THEN { SetTactic "SBROS"
} ELSE {
Homing = 1
TALT = TGTALT
If ( TgtClass $= "LAND" ) Then {
SetTactic "T_H_TLAM"
} ELSE {
SetTactic "T_H_SLAMER"
} Endif
} ENDIF
} ELSE { SetTactic "SBROS" } ENDIF
} ELSEIF ( Homing == 0 ) and go THEN { SetPriority 250 terminalhome } ENDIF
if not homing or ( trng > 4000 ) then {
temp = ( TERRAINALT - old_t_alt )
rng = 1100
		IF TERRAINALT > 0 THEN {
		ALT = ( OWNALT - TERRAINALT )
			IF 70 < abs DELTA THEN { TG = ( TIME + 2 )
			} ENDIF

			IF tg > time then {
			landshaft = 3
			} else {
			landshaft = 2
			} endif
		} else {
		ALT = OWNALT
			IF TERRAINALT < -500 THEN {
			landshaft = 0
			} elseif TERRAINALT < -150 then {
			landshaft = 1
			} else {
			landshaft = 2
			} endif
		} endif

		if landshaft == 0 then {
		ALTCRUISE = 36
		} elseif landshaft == 1 then {
		ALTCRUISE = 150
		} elseif landshaft == 2 then {
		ALTCRUISE = 350
		rng = 600
		} elseif landshaft == 3 then {
		ALTCRUISE = 800
;		rng = 800
		} endif

		IF TERRAINALT < 0 THEN {
			IF ( DELTA > ( ( ALT - TerrainAlt ) / 3 ) ) AND ( DELTA > 0 ) THEN {
			Temp = XYBRG DELTA DELTAX
			} ELSE {
			DELTA = ( ALTCRUISE - ALT )
			temp = XYBRG ABS DELTA ( rng * 3.28 )
				IF ( DELTA < 0 ) AND ( temp > 5 ) THEN {
				temp = 5
				} ENDIF
			} ENDIF
		} ELSE {
			IF ( DELTA > ( ALT / 4 ) ) AND ( DELTA > 0 ) THEN {
			Temp = XYBRG ABS DELTA DELTAX
			} ELSE {
			DELTA = ( ALTCRUISE - ALT )
			temp = XYBRG ABS DELTA ( rng * 3.28 )
				IF DELTA < 0 THEN {
					IF ( landshaft == 2 ) AND ( temp > 5 ) THEN {
					temp = 5
					} ELSEIF ( landshaft == 3 ) AND ( temp > 3 ) THEN {
					temp = 3
					} ENDIF
				} ENDIF
			} endif
		} ENDIF

		if DELTA < 0 then { temp = ( -1 * temp )
		} endif

		if temp < -45 then { temp = -45
		} endif

	} else {
		if ownalt < talt then {
		temp = 20
		} else {
			IF TALT == 0 THEN {
			DELTA = ( TALT - OWNALT + 30 )
			} ELSE {
			DELTA = ( TALT - OWNALT + 15 )
			} ENDIF

		temp = XYBRG ABS DELTA ( trng * 3.28 )

			if DELTA < 0 then { temp = ( -1 * temp )
			} endif
		} endif
	} ENDIF

	IF go then {
		IF ownalt > 0 then {
			IF ( ownalt < talt ) and homing then { temp = 20
			} endif
			IF ( TERRAINALT > -1500 ) OR homing then {
				SETPRIORITY 250
				SETPITCH TEMP
			} else {
				SETPRIORITY 200
				SETALT ALTCRUISE
			} endif
		} endif
	} endif
old_t_alt = TERRAINALT
IF LOSTTRACK THEN { Homing = 0 } endif
} endif
