; AMC TLAM Doctrine For DWX -Reinforce Alert- Addon ver 1.41
var ALT
var ALTCRUISE
var DELTA
var DELTAX
var DIST
var Enabled
var FIRST
var Go
var Homing
var imitation
var InitTime
var lastX
var lastY
var LMPX
var LMPY
var MODE
var Old_T_alt
var otkl
var pointdost
var points
var run
var Runout
var SENON
var SUPER
var SX
var SY
var T
var TALT
var TEMP
var TG
var TimeImpact
var TRNG
var vzvod
var wkl
var ZAHVAT
var rng
var landshaft
var VLS
var TRD_Switch
var mission

IF INIT THEN {
Go = 0
TimeImpact = 0
TG = 0
INITTIME = ( TIME + 20 )
ALTCRUISE = 350
TRNG = 10000
SetSpd MaxSpd
Runout = -1
Homing = 0
Enabled = 0
FIRST = 1
MODE = 0
points = 1
SENON = 1
imitation = 0
vzvod = -1
SUPER = 0
delta = 1000000
lastX = OwnX
lastY = OwnY
old_t_alt = TERRAINALT
IF ( DBUser1Flags & 1 ) == 1 THEN { SetSnorkel On TRD_Switch = 1 } ENDIF
} ELSEif ( ( vzvod != -1 ) and ( time > vzvod ) ) or ( ownalt < TERRAINALT ) then { Detonate
} elseIF ( Runout != -1 ) AND ( run >= Runout ) THEN { SHUTDOWN
} else {

	IF FIRST THEN {
	FIRST = 0
	LMPX = WayPtX
	LMPY = WayPtY
	SX = WayPtX
	SY = WayPtY
		if runout == 1852 then { mode = 1 SUPER = 1
		} ELSEif runout == 3704 then { mode = 2 SUPER = 1
		} ELSEif runout == 5556 then { mode = 3 SUPER = 1
		} ELSEif runout == 7408 then { mode = 4 SUPER = 1
		} ELSEif runout == 9260 then { mode = 5 SUPER = 1
		} ELSEIF runout == 11112 then { mode = 0 SUPER = 0
		} ELSE { mode = 1 SUPER = 1
		} endif
		
		IF SUPER THEN {
			IF ( OwnName $= "TLAM UGM-109 D User" ) Then { Runout = 2592800 VLS = 1
			} ELSEif ( OwnName $= "SS-N-27 LAM User" ) Then { Runout = 300024
			} ELSEif ( OwnName $= "SCALP LAM User" ) Then { Runout = 1000000
			} ELSEif ( OwnName $= "3M-14E LAM User" ) Then { Runout = 300024
			} ELSEif ( OwnName $= "CJ-10 LAM" ) Then { Runout = 1500000
			} ELSEif ( OwnName $= "SS-N-21 Sampson LAM User" ) Then { Runout = 2592800
			} ENDIF
		} ENDIF

		IF NOT VLS AND ( OwnAlt > 0 ) Then { ShutDown
		} ENDIF

		IF Mode != 5 Then { DIST = 51 } ELSE { DIST = 1850
		} ENDIF
	} ENDIF
IF TRD_Switch THEN {
 	IF ( OwnAlt > -10 ) AND ( mission != 1 ) THEN {
;		DebugOut "Booster OFF"
 		SetPriority 255
 		SetSnorkel OFF
 		mission = 1
	} ENDIF
} ENDIF
SetSpd MaxSpd
DELTAX = xyrng ( OwnX - lastX ) ( OwnY - lastY )
run += DELTAX
lastX = OwnX
lastY = OwnY

	IF ( Time >= InitTime ) and ( go == 0 ) THEN {
	go = 1

		IF SUPER THEN { otkl = 1
		} ENDIF

	} ELSEIF ( Time < InitTime ) and ( ownalt > 0 ) THEN {

		if landshaft == 0 then {
		SetPriority 250 SETALT 53
		} elseif landshaft == 1 then {
		SetPriority 250 SETALT 150
		} elseif landshaft == 2 then {
		SetPriority 250 SETALT 350
		} endif

	SetPriority 250 SETCRS XYBRG ( WayPtX - OWNX ) ( WayPtY - OWNY )
	} ENDIF

	IF NEWTRACK AND NOT ( TgtClass $= "Missile" ) THEN {
		IF TgtClass $= "LAND" THEN {
			IF SUPER THEN {
				IF ( MODE == 5 ) AND ( DIST > XYRNG ( WayPtX - TGTX ) ( WayPtY - TGTY ) ) THEN { ZAHVAT = 1
				} ELSEIF pointdost AND ( DIST > XYRNG ( SX - TGTX ) ( SY - TGTY ) ) THEN { ZAHVAT = 1
				} ELSE { ZAHVAT = 0
				} ENDIF

				IF ZAHVAT THEN { TALT = TGTALT SetTactic "T_H_TLAM"
				} ELSE { SETTACTIC "SBROS"
				} ENDIF

			} ELSE { TALT = TGTALT SetTactic "T_H_TLAM"
			} ENDIF

		} ELSE { SETTACTIC "SBROS"
		} ENDIF

	} ELSEIF ( Homing == 0 ) and go THEN { SetPriority 250 TerminalHome
	} ENDIF

	IF not homing or ( trng > 4000 ) then {
	DELTA = ( TERRAINALT - old_t_alt )
	rng = 1100
	ALT = ( OWNALT - TERRAINALT )

		IF 70 < abs DELTA THEN { TG = ( TIME + 20 )
		} ENDIF

		IF tg > time then {
		landshaft = 2
		} else {
		landshaft = 1
		} endif

		IF TERRAINALT < -2000 THEN {
		landshaft = 0
		} endif

		if landshaft == 0 then {
		ALTCRUISE = 53
		} elseif landshaft == 1 then {
			IF ( TERRAINALT > 0 ) THEN {
			ALTCRUISE = ( 350 + TERRAINALT ) 
			} ELSEIF ( TERRAINALT > -200 ) THEN {
			ALTCRUISE = 350
			} ELSEIF ( TERRAINALT > -2000 ) THEN {
			ALTCRUISE = 150
			} ENDIF
		} elseif ( landshaft == 2 ) then {
			IF ( TERRAINALT > 0 ) THEN {
			ALTCRUISE = ( 700 + TERRAINALT )
			} ELSEIF ( TERRAINALT > -350 ) THEN {
			ALTCRUISE = 700
			} ELSEIF ( TERRAINALT > -2000 ) THEN {
			ALTCRUISE = 350
			} ENDIF
		} endif

	temp = XYBRG DELTA ( DELTAX * 3.28 )

		IF DELTA > 0 THEN {
			IF OWNALT > ALTCRUISE THEN {
			temp = ( 5 * DELTA - OWNALT + ALTCRUISE )
				IF temp > 0 THEN {
				temp = XYBRG temp ( DELTAX * 16.4 )
				} ELSE {
				temp = XYBRG ( -1 * temp ) ( DELTAX * 16.4 )
					IF ( landshaft < 2 ) AND ( temp > 5 ) THEN {
					temp = 5
					} ELSEIF temp > 3 THEN {
					temp = 3
					} ENDIF
				temp = ( -1 * temp )
				} ENDIF
			} ELSE {
			Temp = ( Temp * 1.6 )
			} ENDIF
		} ELSE {

		DELTA = ( ALTCRUISE - OwnAlt )
		temp = XYBRG ABS DELTA ( rng * 3.28 )

			IF ( landshaft < 2 ) AND ( temp > 5 ) THEN {
			temp = 5
			} ELSEIF temp > 3 THEN {
			temp = 3
			} ENDIF
		} ENDIF


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

	} else {
		if ownalt < talt then {
		temp = 15
		} 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 ( trng > 400 ) or ( trng == 0 ) then {
				IF ( TERRAINALT > -1500 ) OR homing then {
				SETPRIORITY 250
				SETPITCH TEMP
				} else {
				SETPRIORITY 200
				SETALT ALTCRUISE
				} endif
			} endif
		} endif
	} endif

old_t_alt = TERRAINALT
	if SUPER then {
		IF MODE != 5 THEN {
			IF NOT pointdost THEN {
				IF POINTS == MODE then {
				SX = WayPtX
				SY = WayPtY
				pointdost = 1
				} ENDIF
			} ELSE {
			DELTA = XYRNG ( SX - OWNX ) ( SY - OWNY )
				IF 6000 > DELTA THEN {
					if SENON THEN {
					SENON = 0
					SensorEnable "Wep Radar2" 1
					SensorEnable "Granat Visual" 1
					SensorEnable "DSMAC" 1
					SensorEnable "Wep IR" 1
					} ENDIF

					IF NOT HOMING THEN {
					imitation = 1
					trng = DELTA
						if ( vzvod == -1 ) and ( delta < 270 ) then { vzvod = ( time + 1 )
						} endif

						if delta < 80 then { Detonate
						} endif
					} ELSE { imitation = 0
					} ENDIF
				} ENDIF
			} endif
		} ELSE {
		DELTA = XYRNG ( WayPtX - OWNX ) ( WayPtY - OWNY )
			IF 6000 > DELTA THEN {
				if SENON THEN {
				SENON = 0
				wkl = 1
				SensorEnable "Wep Radar2" 1
				SensorEnable "Granat Visual" 1
				SensorEnable "DSMAC" 1
				SensorEnable "Wep IR" 1
				} ENDIF
			
				IF ( NOT HOMING ) and ( POINTS == 4 ) THEN {
				imitation = 1
				trng = DELTA
					if ( vzvod == -1 ) and ( delta < 270 ) then { vzvod = ( time + 1 )
					} endif

					if delta < 80 then { Detonate
					} endif
				} ELSE { imitation = 0
				} ENDIF
			} elseif wkl then { wkl = 0 otkl = 1
			} endif
		} ENDIF
	} endif

	IF ( LMPX != WayPtX ) OR ( LMPY != WayPtY ) THEN { points += 1 LMPX = WayPtX LMPY = WayPtY
	} endif

	if otkl then {
	otkl = 0
	SENON = 1
	SensorEnable "Wep Radar2" 0
	SensorEnable "Granat Visual" 0
	SensorEnable "DSMAC" 0
	SensorEnable "Wep IR" 0
	} endif

	IF LOSTTRACK THEN { Homing = 0
	} endif
} endif
