; SLAM-ER AI 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 TimeImpact
var S
var Go
var LMPX
var LMPY
var lastX
var lastY
var SensRon
var prast
var SON
var twykl
VAR NUM_TH
VAR ZZZConf
var delta
VAR WPtX
VAR WPtY
var kurs
var fffff
var PreEnableCourse
var Typ
var rng
var landshaft
VAR FCRUIS
IF INIT THEN {
FCRUIS = 1
Go = 0
TimeImpact = 0
TG = 0
old_t_alt = TERRAINALT
INITTIME = ( TIME + 2 )
ALTCRUISE = 350
TRNG = 10000
Runout = -1
RTESet = 1
Homing = 0
Spoofed = ( RND 100 )
lastX = OwnX
lastY = OwnY
SensRon = 10000
SON = 1
twykl = -1
NUM_TH = 0
ZZZConf = 0
fffff = 1
} ELSEif ( twykl != -1 ) and ( twykl < time ) then { SHUTDOWN
} ELSEIF ( Runout != -1 ) AND ( run > Runout ) THEN {
IF TERRAINALT < 0 THEN { SHUTDOWN } ELSE { DETONATE } ENDIF
RunOut = -1
} else {
IF RTESet THEN { 
RTEset = 0 
IF ( OwnName $= "Kh-65 ALCM" ) THEN { Typ = 1 Runout = 3000240 DecoyLogic = 80 SensRon = 9260 S = 4
} ELSEIF ( OwnName $= "YJ-18 ALCM" ) THEN { Typ = 1 Runout = 540000 DecoyLogic = 90 SensRon = 9260 S = 4
} ELSEIF ( OwnName $= "SLAM-ER" ) OR ( OwnName $= "X-59MK ASM" ) THEN {
Runout = 285208 DecoyLogic = 99 SensRon = 10000
} ELSEIF ( OwnName $= "AGM-154 JSOW" ) THEN {
Runout = 200000 DecoyLogic = 99 SensRon = 10000
} ENDIF
} ENDIF
prast = xyrng ( OwnX - WPtX ) ( OwnY - WPtY )
run += xyrng ( OwnX - lastX ) ( OwnY - lastY )
lastX = OwnX
lastY = OwnY
IF ( Time >= InitTime ) and ( go == 0 ) THEN { go = 1 } ENDIF
if ( SensRon > prast ) and SON then {
SON = 0
If S == 1 THEN {
	SensorEnable "Wep Radar1" 1
	SensorEnable "Wep Radar2" 1
} ELSEIF S == 2 THEN {
	SensorEnable "Wep Radar1" 1
	SensorEnable "SLAM-ER IR" 1
} ELSEIF S == 3 THEN {
	SensorEnable "Wep Radar1" 1
	SensorEnable "Wep Radar2" 1
	SensorEnable "SLAM-ER IR" 1
} ELSE {
	SensorEnable "Granat Visual" 1
} endif
} 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
IF NEWTRACK THEN {
if fffff then {
fffff = 0
IF S != 4 THEN {
IF ( TgtType $= "ROCK" ) Then { S = 1 } ENDIF
IF ( TgtType $= "SHIP" ) Then { S = 2 } ENDIF
IF ( TgtType $= "Sub" ) Then { S = 1 } ENDIF
IF ( TgtType $= "FLOAT" ) Then { S = 3 } ENDIF
IF ( TgtType $= "Sub" ) Then { S = 1 } ENDIF
} ENDIF
kurs = PreEnableCourse
WPtX = TGTX
WPty = TGTY
trng = tgtrng
talt = tgtalt
SetTactic "SBROS"
} else {
IF ZZZCONF < TGTCONF THEN {
IF ( TgtClass $= "AIR" ) AND ( Spoofed > DecoyLogic ) THEN {
WPtX = TGTX
WPty = TGTY
trng = tgtrng
Homing = 1
SetTactic "T_H_SLAMER_AI"
} ELSEIF TgtClass $= "AIR" THEN { SetTactic "SBROS"
} ELSE {
WPtX = TGTX
WPty = TGTY
trng = tgtrng
Homing = 1
TALT = TGTALT
SetTactic "T_H_SLAMER_AI"
} ENDIF
} ELSE { SetTactic "SBROS" } ENDIF
} endif
} ELSEIF ( Homing == 0 ) and go THEN { SetPriority 250 SetCrs kurs } 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 temp THEN { TG = ( TIME + 20 ) } ENDIF
	if tg > time then {
		landshaft = 3
	} else {
		landshaft = 2
	} endif
} else {
	ALT = OWNALT
	IF TERRAINALT < -300 THEN {
		landshaft = 0
	} elseif TERRAINALT < -70 then {
		landshaft = 1
	} else {
		landshaft = 2
	} endif
} endif
if landshaft == 0 then {
	ALTCRUISE = 56
} elseif landshaft == 1 then {
	ALTCRUISE = 150
} elseif landshaft == 2 then {
	ALTCRUISE = 350
} elseif landshaft == 3 then {
	ALTCRUISE = 800 rng = 800
} endif
IF FCRUIS THEN {
IF alt < ( ALTCRUISE + 300 ) THEN { FCRUIS = 0 } ELSEif ( alt < 3000 ) then { rng = 4000 } endif
} ENDIF
DELTA = ( ALTCRUISE - ALT )
temp = XYBRG ABS DELTA ( rng * 3.28 )
if DELTA < 0 then { temp = ( -1 * temp ) } endif
IF landshaft == 3 THEN { IF TEMP > 0 THEN { SetSpd ( MaxSpd * 0.85 ) TEMP = ( TEMP + 7 ) } ENDIF
} ENDIF
if temp < -45 then { temp = -45 } endif
} else {
setspd maxspd
if ownalt < talt then {
temp = 20
	} else {
		DELTA = ( TALT - OWNALT + 51 )
		temp = XYBRG ABS DELTA ( trng * 3.28 )
		if DELTA < 0 then { temp = ( -1 * temp ) } endif
	} endif
} endif
if go then {
if ( ownalt < talt ) and homing then { temp = 20 } endif
if ( trng > 450 ) or ( trng == 0 ) then { SETPRIORITY 250 SETPITCH TEMP } endif
} endif
old_t_alt = TERRAINALT
IF LOSTTRACK THEN { Homing = 0 } endif
} endif