; RA Addon Use 1.46 ver.
; Rev.5
; 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]

var Aim
var ZWH
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 ASuW
var AAW
var Fvkl
var F_CM
var Legtimer
var ReflectValue
var DecoyLogic
var Skimmer
var SkimmerCapab
var MTS
var Mishit
var RData
var TC
var FinalLock

func GOTHIM {
If F_CM < 2 Then {
	If ( ( Skimmer == 1 ) OR ( Skimmer == 0 ) ) AND ( SkimmerCapab == 1 ) Then {
		SETPRIORITY 252 TerminalHome
	} endif
} endif
If Skimmer AND ( SkimmerCapab == 0 ) Then {
; DebugOut "This missile is unable to intercept incoming seaskimmer."
 	MisHit = 1
} endif
If ( ( Skimmer == 0 ) AND ( SkimmerCapab == 0 ) ) Then {
	SETPRIORITY 252 TerminalHome
} endif
}
func AntiAIR {
if ( AAW == 1 ) Then {
	ReflectValue = ReflectValue
} endif
if ( AAW == 2 ) Then {
	ReflectValue = 0
} endif
	enable
}
IF INIT Then {
preenable
ZALT = ( MAXALT / 0.3048 )
MxSpd = MaxSpd
WYSOTA = 328
temp = 30
TRNG = 5000
Aim = 1
ReflectValue = RND 100
DecoyLogic = 60
IF ( OwnName $= "SM-1 MR" ) THEN { DecoyLogic = 70 SkimmerCapab = 1 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 { DecoyLogic = 50 OFRUN = 14000 } ENDIF
IF ( OwnName $= "SA-N-4 Gecko-M SAM" ) THEN { SkimmerCapab = 1 DecoyLogic = 60 OFRUN = 14000 } ENDIF
IF ( OwnName $= "SA-N-7 Gadfly SAM" ) THEN { SkimmerCapab = 1 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 { SkimmerCapab = 1 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 = 80 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 { SkimmerCapab = 1 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 = 80 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 = 75 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 = 65 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 < -1 ) 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 {
	FinalLock += 1
	If ( ( FinalLock >= 2 ) And ( FinalLock <= 2 ) ) Then {
		If ASuW Then {
		homing = 1
	} endif
} endif
	if firstT then {
		ZWH = ( TgtRng * 0.5 )
		firstT = 0
		if TgtClass $= "SURF" then { ASuW = 1 ZWH = ( TgtRng - 4050 ) } endif
		if ( ( TgtType $= "Plane" ) OR ( TgtType $= "Helo" ) ) then { AAW = 1 } endif
		if ( TgtClass $= "MISSILE" ) then { AAW = 2 } endif
		if ( zwh <= 100 ) then { zwh = 100 } endif
	} endif
	if ( ( ASuW == 0 ) and ( finallock == 1 ) ) then { SetTactic "Guided_FCR" } endif
	if ( ( ASuW == 1 ) and ( finallock == 1 ) ) then {
		IF not ( TgtID $= "FRIEND" ) THEN {
;		DebugOut "Guided from SHIP_FCRadar"
		SetTactic "T_H_UG"
		Rdata = 1
	} endif
} endif
IF NEWTRACK then {
	IF ( finallock < 2 ) THEN {
} ELSE {
	IF TgtType $= "CM" THEN {
		IF ReflectValue > DecoyLogic THEN {
;			DEBUGOUT "Countermeasure has been very effective: engage CM"
			F_CM += 1
			SetTactic "T_H_UG"
		} ELSEIF ReflectValue <= DecoyLogic THEN {
;			DEBUGOUT "Countermeasure NO effective: engage primary target"
			SetTactic "SBROS"
			} endif
		} ELSEIF Tgtconf > -1 THEN {
			SetTactic "T_H_UG"
		} ELSE {
			drop
		} ENDIF
		} ENDIF
	} ENDIF
} ENDIF
If F_CM == 2  Then {
	F_CM = 3
	SetPersist 0 SetPriority 255 Intercept
        SetPersist 0 SetPriority 254 SetAlt TgtAlt
	Legtimer = ( ( OwnSpd + TgtSpd ) * 0.514444 )
	Legtimer = ( TgtRng / Legtimer )
	LegTimer += TIME
	TimedDetonateTgt LegTimer
} endif
} ELSEif aim then {
	IF TGTRNG != 0 THEN {
		IF ( ( Run >= ZWH ) OR ( Trng < 4050 ) ) THEN {
			Aim = 0
			if ASuW then {
;				DebugOut "ASuW Mode: Missile FCRadar enabled."
				Fvkl = 1
			} else {
				AntiAir
			} endif
		} endif
	} endif
} endif
IF TGTRNG != 0 THEN {
SetPriority 252 SetSpd MxSpd
if F_CM then {
	if ASuW then {
		IF NOT HOMING THEN {
			intercept
		} ENDIF
	} else THEN {
		TRNG = TgtRng
		TALT = TgtALT
		if tgtrng > 2000 then {
			SETPRIORITY 251 intercept
		} else {
;			DebugOut "GOT HIM !"
			GOTHIM
		} endif
	} endif
	IF TRNG > 4050 THEN {
		if NOT ASuW then {
			WYSOTA = tgtalt
		} ELSEIF ( TRNG < 8000 ) AND ( TRNG != 5000 ) THEN {
			WYSOTA = ( tgtalt + 50 )
		} endif
		DELTA = ( WYSOTA - OWNALT )
		if ASuW 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
If Mishit Then {
	MTS += 1
	If ( MTS > 15 ) Then {
		shutdown
	} ENDIF
} ENDIF
IF Not ASuW Then {
	If ( ( TgtAlt < 60 ) And ( TgtAlt != 0 ) ) Then {
	 	Skimmer = 1
	} ELSEIF ( ( TgtAlt >= 60 ) And ( TgtAlt != 0 ) ) Then {
		Skimmer = 0
	} endif
} endif
If Fvkl And Not TC Then {
	TC = 1
	enable
	drop
} ENDIF
