; RA Add-0n Doctrine For User Subrocs ASW v 1.41

var Initx
var Inity
var apogei
var DropRng
var CurRng
var OrdCrs
VAR Y
VAR TEMP
VAR const2
var const3
var const4
var delta
VAR SPDSBROSA
var Preset
VAR TEMP1
var maks
var alts
IF Init THEN {
if not Preset then {
	Initx = OwnX
	Inity = Owny
	Preset = 1
	IF ( OwnAlt > 0 ) Then { ShutDown } ENDIF
if maxspd > 1000 then { alts = 4500 } else { alts = 3000 } endif
IF ( OwnName $= "SS-N-16 Stallion" ) THEN {
	maks = 54
} ELSEIF ( OwnName $= "SS-N-15 Starfish" ) THEN {
	maks = 19
} ELSEIF ( OwnName $= "SS-N-27 ASW" ) THEN {
	maks = 27
} ELSEIF ( OwnName $= "91RE1 ASW" ) THEN {
	maks = 27
} ELSEIF ( OwnName $= "UUM-125B Sea Lance" ) THEN {
	maks = 35
} ELSEIF ( OwnName $= "SS-N-15 [Nuke]" ) THEN {
	maks = 19
} ELSEIF ( OwnName $= "CY-I Subroc User" ) THEN {
	maks = 15
} ELSEIF ( OwnName $= "UUM-44 SUBROC" ) THEN {
	maks = 30
} ENDIF
	OrdCrs = GetEntVar "PreenableCourse"
	DropRng = xyrng ( Tgtx - Initx ) ( Tgty - Inity )
	temp = ( DropRng / 1852 )
	temp1 = ( temp mod 1 )

	if temp1 < 0.5 then {
		temp = ( temp - temp1 )
	} else {
		temp = ( temp - temp1 + 1 )
	} endif
	IF 1 <= ( ( temp / 300 ) mod 2 ) THEN {
		TEMP -= 300
		SPDSBROSA = ( MaxSpd - 250 )
	} ELSEif 1 <= ( ( temp / 200 ) mod 2 ) then {
		TEMP -= 200
		SPDSBROSA = ( MaxSpd - 300 )
	} ELSEif 1 <= ( ( temp / 100 ) mod 2 ) then {
		TEMP -= 100
		SPDSBROSA = ( MaxSpd - 150 )
	} ELSE then {
		SPDSBROSA = ( MaxSpd - 200 )

	} ENDIF

	if temp < 5 then {
		temp = 5
	} elseif temp > maks then {
		temp = maks
	} endif
	DropRng = ( temp * 1852 )
; -----------------------------------------------------
	DropRng -= 500
	IF DropRng <= 0 THEN { DropRng = 1 } ENDIF
	apogei = ( DropRng / 3 )
	if apogei < 10000 then {
		apogei = 10000
	} elseif apogei > 20000 then {
		apogei = 20000
	} endif
	const2 = ( DropRng / 2 )
	const3 = ( const2 * const2 )
	const4 = ( 3.28 * apogei )
} endif
} ELSEIF WeaponAway THEN {
	Shutdown
} ELSEIF OWNALT > 0 THEN {
	SETPRIORITY 250 SetCrs OrdCrs
	CurRng = xyrng ( ownx - Initx ) ( owny - Inity )
		IF CurRng < const2 THEN {
			SETPRIORITY 250 SetSpd MaxSpd
			DELTA = ( y - OWNALT )
			temp = ( CurRng - const2 )
			temp = ( temp * temp )
			temp = ( temp / const3 )
			temp = ( 1 - TEMP )
			if temp >= 0 then {
				Y = ( const4 * SQRT temp )
				temp = XYBRG ABS DELTA ( 2500 )
				if DELTA < 0 then { temp = ( -1 * temp ) } endif
				SETPRIORITY 250 SetPitch temp
			} endif
		} ELSEIF alts > ownalt THEN {
					SETPRIORITY 255 FIREBEST
				} else {
					DELTA = ( alts - OWNALT )
					temp = ( DropRng / CurRng )
					temp = ( temp * temp )
					temp = XYBRG ABS DELTA ( ( DropRng - CurRng ) * temp * 3.28 )
					if DELTA < 0 then { temp = ( -1 * temp ) } endif
					if temp < -89.8 then { temp = -89.8 } endif
					SETPRIORITY 250 SetPitch temp
					SETPRIORITY 255 SetSpd SPDSBROSA
		} ENDIF
} ENDIF