; AMC TLAM Doctrine For DWX -Reinforce Alert- Addon ver 1.41

var ALT
var ALTCRUISE
var DELTA
var Enabled
var FIRST
var Go
var Homing
var imitation
var InitTime
var lastX
var lastY
var Old_T_alt
var otkl
var run
var Runout
var SENON
var TALT
var TEMP
var TG
var TimeImpact
var Timer
var TRNG
var vzvod
var wkl
VAR WPtX
VAR WPtY
var deltaX
var rng
var fniziny
var landshaft
var FFF
var Dist
var RTE
var TRD_Switch
var mission

IF INIT THEN {
fniziny = 1
Timer = 0
Go = 0
TimeImpact = 0
TG = 0
INITTIME = ( TIME + 20 )
ALTCRUISE = 50
TRNG = 10000
SetSpd MaxSpd
SetAlt 50
Runout = -1
Homing = 0
Enabled = 0
FIRST = 1
SENON = 1
vzvod = -1
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 ) then { Detonate
} elseIF ( Runout != -1 ) AND ( run >= Runout ) THEN { SHUTDOWN
} else {
IF FIRST THEN {
FIRST = 0
fff = 1
DIST = 51
IF ( OwnName $= "TLAM UGM-109 D" ) Then { Runout = 2592800
} ELSEif ( OwnName $= "TLAM RGM-109 D" ) Then { Runout = 2592800
} ELSEif ( OwnName $= "SS-N-27 LAM" ) Then { Runout = 300024
} ELSEif ( OwnName $= "SCALP LAM" ) Then { Runout = 1000000
} ELSEif ( OwnName $= "3M-14E LAM" ) Then { Runout = 300024
} ELSEif ( OwnName $= "Hyunmoo III LAM" ) Then { Runout = 1200000
} ELSEif ( OwnName $= "SS-N-21 Sampson LAM" ) Then { Runout = 2592800 } ENDIF
} ENDIF
SetSpd MaxSpd

IF ( OWNALT > 0 ) AND NOT go THEN {
go = 1
} ENDIF

IF ( 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
} endif
IF TRD_Switch THEN {
 	IF ( OwnAlt > -10 ) AND ( mission != 1 ) THEN {
;		DebugOut "Booster OFF"
 		SetPriority 255
 		SetSnorkel OFF
 		mission = 1
	} ENDIF
} ENDIF
DELTAX = xyrng ( OwnX - lastX ) ( OwnY - lastY )
run += DELTAX
lastX = OwnX
lastY = OwnY

IF NEWTRACK then {
;	if ( Time >= INITTIME ) THEN {
	if fff == 1 THEN {
		fff += 1
		WPtX = TGTX
		WPty = TGTY
		trng = tgtrng
		talt = tgtalt
		SetTactic "TH_TLAM"
	} elseIF DIST > XYRNG ( WPtX - TGTX ) ( WPtY - TGTY ) THEN {
		trng = tgtrng
		talt = tgtalt
		SetTactic "TH_TLAM"
	} endif
} ELSEIF ( Homing == 0 ) and go THEN { SetPriority 250 SetCrs PreEnableCourse
} 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
RTE = XYRNG ( WPtX - ownx ) ( WPty - owny )
IF 6000 > RTE THEN {
	if SENON THEN {
	SENON = 0
	ENABLE
	Drop
} ENDIF
	trng = RTE
if TERRAINALT < 0 then { talt = 50 } else { talt = ( TERRAINALT + 30 ) } endif
if ( vzvod == -1 ) and ( RTE < 270 ) then { vzvod = ( time + 1 ) } endif
} ENDIF
	IF LOSTTRACK THEN { Homing = 0 } endif
} endif
