; RA Addon 1.41 ver.
; It conducts a missile from Ship FCradar up to the certain place,
; further control is transferred to a FCRadar of a Missile - SAM missile
; has the target by an own FC Radar aiming
; [When the operator has transferred the complete control to a missile]
; Sea Skimming intercept capability factor added

var Aim
var Z
VAR DELTA
VAR WYSOTA
VAR TEMP
VAR TRNG
VAR TALT
VAR ZALT
VAR HOMING
VAR ZZZConf
VAR NUM_TH
VAR RUN
VAR OFRUN
var MxSpd
var lastX
var lastY
var firstT
var CH_A
var Fvkl
var F_CM
var Legtimer
var Spoofed
var DecoyLogic
var Skimmer
var SkimmerCapab
var MisHit
var MTS

IF INIT Then {
; Z = ( 9260 - ( RND 5556 ) )
; ZALT = ( MAXALT / 0.3048 )
ZALT = ( MAXALT )
MxSpd = MaxSpd
WYSOTA = 500
temp = 30
TRNG = 5000
Aim = 1
Spoofed = RND 100
DecoyLogic = 50
IF ( OwnName $= "SM-1 MR" ) THEN { DecoyLogic = 70 MxSpd = 1188 OFRUN = 37966 } ENDIF
IF ( OwnName $= "ESSM SAM" ) THEN { SkimmerCapab = 1 OFRUN = 32040 } ENDIF
IF ( OwnName $= "SA-N-1 Goa SAM" ) THEN { OFRUN = 24076 } ENDIF
IF ( OwnName $= "SA-N-4 Gecko SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 60 OFRUN = 14000 } ENDIF
IF ( OwnName $= "SA-N-7 Gadfly SAM" ) THEN { DecoyLogic = 65 OFRUN = 32000 } ENDIF
IF ( OwnName $= "Crotale SAM" ) THEN { SkimmerCapab = 1 OFRUN = 12964 } ENDIF
IF ( OwnName $= "RIM-66A SM-1MR SAM" ) THEN { OFRUN = 37966 } ENDIF
IF ( OwnName $= "Sea Dart Mod 1 SAM" ) THEN { OFRUN = 64820 } ENDIF
IF ( OwnName $= "SA-N-2 AAW" ) THEN { OFRUN = 27780 } ENDIF
IF ( OwnName $= "SA-N-3 Goblet SAM" ) THEN { OFRUN = 83340 } ENDIF
IF ( OwnName $= "RIM-7E Sea Sparrow SAM" ) THEN { OFRUN = 11000 } ENDIF
IF ( OwnName $= "RIM-7M Sea Sparrow SAM" ) THEN { SkimmerCapab = 1 OFRUN = 26002 } ENDIF
IF ( OwnName $= "Aster 15 SAM" ) THEN { DecoyLogic = 75 SkimmerCapab = 1 OFRUN = 30000 } ENDIF
IF ( OwnName $= "Aster 30 SAM" ) THEN { DecoyLogic = 75 SkimmerCapab = 1 OFRUN = 100000 } ENDIF
IF ( OwnName $= "Aster 30 SAM User" ) THEN { DecoyLogic = 75 MxSpd = 2250 SkimmerCapab = 1 OFRUN = 100000 } ENDIF
IF ( OwnName $= "Sea Slug SAM" ) THEN { OFRUN = 64820 } ENDIF
IF ( OwnName $= "RIM-2 SAM" ) THEN { OFRUN = 40000 } ENDIF
IF ( OwnName $= "RIM-24 SAM" ) THEN { OFRUN = 40000 } ENDIF
IF ( OwnName $= "RIM-8 SAM" ) THEN { OFRUN = 105000 DecoyLogic = 65 } ENDIF
IF ( OwnName $= "RIM-66B SM-1MR SAM" ) THEN { OFRUN = 37966 } ENDIF
IF ( OwnName $= "RIM-66H SM-2MR SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 55 OFRUN = 69913 } ENDIF
IF ( OwnName $= "RIM-156A SM-2ER SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 80 OFRUN = 150000 } ENDIF
IF ( OwnName $= "RIM-67A SM-1ER SAM" ) THEN { DecoyLogic = 65 OFRUN = 63894 } ENDIF
IF ( OwnName $= "RIM-162A ESSM SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 75 OFRUN = 33000 } ENDIF
IF ( OwnName $= "RIM-162B ESSM SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 75 OFRUN = 37040 } ENDIF
IF ( OwnName $= "RIM-66C SM-2 MR SAM" ) THEN { SkimmerCapab = 1 OFRUN = 69913 } ENDIF
IF ( OwnName $= "RIM-66E SM-1MR SAM" ) THEN { OFRUN = 37966 } ENDIF
IF ( OwnName $= "SA-N-12 Grizzly SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 75 OFRUN = 35000 } ENDIF
IF ( OwnName $= "SA-N-17 Grizzly M SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 75 OFRUN = 50000 } ENDIF
IF ( OwnName $= "9M96E2 SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 85 OFRUN = 120000 } ENDIF
IF ( OwnName $= "MICA SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 80 OFRUN = 80000 } ENDIF
IF ( OwnName $= "SA-N-6 Grumble SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 85 OFRUN = 75000 } ENDIF
IF ( OwnName $= "SA-N-10 Gladiator" ) THEN { SkimmerCapab = 1 DecoyLogic = 85 OFRUN = 92000 } ENDIF
IF ( OwnName $= "HQ-9 SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 70 OFRUN = 200000 } ENDIF
IF ( OwnName $= "MIM-104 SAM" ) THEN { DecoyLogic = 75 OFRUN = 80000 } ENDIF
IF ( OwnName $= "MIM-23B SAM" ) THEN { DecoyLogic = 80 OFRUN = 40000 } ENDIF
IF ( OwnName $= "SA-N-21 Growler" ) THEN { SkimmerCapab = 1 DecoyLogic = 90 OFRUN = 120000 } ENDIF
IF ( OwnName $= "Sea Dart Mod 3 SAM" ) THEN { DecoyLogic = 60 OFRUN = 80000 } ENDIF
	lastX = OwnX
	lastY = OwnY
	firstT = 1
	F_CM = 1
	Legtimer = -1
} ELSEIF ( OWNALT > ZALT ) OR ( OWNALT < -60 ) OR ( RUN > OFRUN ) or ( ( Legtimer != -1 ) and ( Time >= LegTimer ) ) THEN { SHUTDOWN
} else {
	run += xyrng ( OwnX - lastX ) ( OwnY - lastY )
	lastX = OwnX
	lastY = OwnY
IF NEWTRACK THEN {
	if firstT then {
		Z = ( TgtRng * 0.5 )
		If ( TgtAlt < 60 ) Then { Skimmer = 1 } endif
		firstT = 0
		if TgtClass $= "SURF" then { CH_A = 1 } endif
	} endif
IF not ( TgtID $= "FRIEND" ) THEN {
	if CH_A then {
		SetTactic "T_H_GU"
        } ELSEIF F_CM Then {
	IF ( ( TgtClass $= "AIR" ) AND ( TgtType $= "CM" ) ) OR ( TargetName $= "Granit CM" ) then {
	If Spoofed > DecoyLogic Then {
;		DEBUGOUT "Countermeasure has been very effective - engage"
		F_CM = 0
		SetPersist 0 SetPriority 255 Intercept
	        SetPersist 0 SetPriority 254 SetAlt TgtAlt
		Legtimer = ( ( OwnSpd + TgtSpd ) * 0.514444 )
		Legtimer = ( TgtRng / Legtimer )
		LegTimer += TIME
		TimedDetonateTgt LegTimer
		} endif
       	} endif
} endif
} ENDIF

} ELSEif aim then {
	IF TGTRNG != 0 THEN {
		IF TgtRng <= Z THEN {
			Aim = 0
			if CH_A then {
				Fvkl = 1
			} else {
				enable
			} endif
		} endif
	} endif
} endif

IF TGTRNG != 0 THEN {
	SetPriority 252 SetSpd MxSpd
if F_CM then {
	if CH_A then {
		IF NOT HOMING THEN { SETPRIORITY 251 intercept } ENDIF
	} else THEN {
		TRNG = TgtRng
		TALT = TgtALT
if ( trng > 4050 ) AND NOT MISHIT then {
	SETPRIORITY 251 intercept
} elseif trng < 4050 Then {
	If Skimmer And SkimmerCapab Then {
	SETPRIORITY 252 TerminalHome
} elseif Skimmer Then {
	MisHit = 1
} endif
	If Not Skimmer Then {
		SETPRIORITY 252 TerminalHome
		} endif
	} endif
} endif
	IF ( TRNG > 4050 ) THEN {
		if NOT CH_A then {
			WYSOTA = talt
		} ELSEIF ( TRNG < 8000 ) AND ( TRNG != 5000 ) THEN {
			WYSOTA = ( talt + 50 )
		} endif
		DELTA = ( WYSOTA - OWNALT )
		if CH_A AND ( TRNG > 10000 ) then { 
			temp = XYBRG ABS DELTA 10000
		} ELSE {
			temp = XYBRG ABS DELTA ( TRNG * 3.28 )
		} ENDIF
		if DELTA < 0 then { temp = ( 0 - temp ) } endif
		SETPRIORITY 255 setpitch temp
			} ENDIF
		} ENDIF
	} ENDIF
} ENDIF
If Mishit Then {
	MTS += 1
	If ( MTS > 15 ) Then {
		shutdown
	} ENDIF
} ENDIF
