var PreenableCourse
var RunToEnable
var Runout
var lastX
var lastY
var run
var Waypoints
var Drowned
var Aim
var Away
VAR NUM_TH
VAR ZZZConf
var talt
var temp
var Delta
var FinalPhazeN
var DecoyLogic
var Spoofed
var TP
var d
var done
var tBrg
var OrderAlt
var Zig
var Mode
var SUPER
var FIRST
var LMPX
var LMPY
var SX
var SY
var Dist
var landshaft
var InitTime
var DeltaX
var PointDost
var Points
var Senon
var imitation
var vzvod
var wkl
var otkl
var trng
var homing
var Straight
var go
var zahvat
var old_t_alt
var rng
var alt
var tg
var ALTCRUISE
var Terminal
var mission
IF INIT THEN {
	DIST = 20000
	InitTime = Time
	TP = -1
	NUM_TH = 0
	ZZZConf = 0
	Drowned = 0
	Aim = 0
	lastX = OwnX
	lastY = OwnY
	SETPRIORITY 251
	SetAlt 50
        OrderAlt = 50
	SetSpd 580
;	RunToEnable = 100
	Runout = -1
	FinalPhazeN = 23005
	DecoyLogic = 80
	FIRST = 1
	points = 1
	SENON = 1
	delta = 1000000
	setsnorkel on
IF ( OwnName $= "SS-N-27 Sizzler SSM" ) THEN { RunOut = 222240 Terminal = "Sizzler2" } ENDIF
IF ( ( OwnAlt > 0 ) AND ( OwnAlt < 15 ) ) Then { ShutDown } ENDIF

} ELSE {
	IF FIRST THEN {
If ( ( RunToEnable < 1 ) And ( WayPtX != 0 ) ) Then {
	Zig = 1
} ELSE {
	Straight = 1
} Endif

If Zig Then {
	LMPX = WayPtX
	LMPY = WayPtY
	SX = WayPtX
	SY = WayPtY
	if runout == 1852 then { mode = 1 SUPER = 1 Points = 1
		} ELSEif runout == 3704 then { mode = 2 SUPER = 1 Points = 1
		} ELSEif runout == 5556 then { mode = 3 SUPER = 1 Points = 1
		} ELSEif runout == 7408 then { mode = 4 SUPER = 1 Points = 1
		} ELSEif runout >= 9260 then { mode = 1 SUPER = 1 Points = 1
	} ELSE {
		mode = 1
		SUPER = 1
	} endif
} endif
	FIRST = 0
} ENDIF
} ENDIF
 	IF ( OwnAlt > -10 ) AND ( mission != 1 ) THEN {
;		DebugOut "Booster OFF"
 		SetPriority 255
 		SetSnorkel OFF
 		mission = 1
	} ENDIF
IF Straight AND NOT FIRST THEN {
	run += xyrng ( OwnX - lastX ) ( OwnY - lastY )
	lastX = OwnX
	lastY = OwnY
IF ( Runout != -1 ) AND ( run > Runout ) AND ( NUM_TH == 0 ) THEN { Runout = -1 SHUTDOWN } ENDIF
	IF OwnAlt >= 5 THEN { Drowned = 1 } ELSEIF ( OwnAlt < 5 ) AND Drowned THEN { Shutdown } ENDIF
	IF OwnAlt >= ( MaxAlt + 600 ) THEN { Detonate } ENDIF
	IF RunToEnable != -1 THEN {
		IF run >= RunToEnable THEN {
			Spoofed = RND 100
			ENABLE
			RunToEnable = -1
		} ENDIF
	} ENDIF
	IF NEWTRACK then {
IF ( ( TgtType $= "PLANE" ) OR ( TgtType $= "HELO" ) OR ( TgtCLASS $= "MISSILE" ) ) THEN {
	Drop
} ELSE {
	IF TgtType $= "CM" THEN {
		IF Spoofed > DecoyLogic THEN {
			IF ( TgtRng > FinalPhazeN ) THEN {
				drop
			} ELSE {
				SetTactic "Sizzler2"
				PreenableCourse = TgtBrg
				Aim = 1
			} ENDIF
		} endif
	} ELSEIF Tgtconf > ZZZConf THEN {
		IF ( TgtRng > FinalPhazeN ) THEN {
			PreenableCourse = TgtBrg
			drop
		} ELSE {
			SetTactic "Sizzler2"
			PreenableCourse = TgtBrg
			Aim = 1
		} ENDIF
	} ELSE {
		SetTactic "SBROS"
	} ENDIF
} ENDIF
} ENDIF
	IF Away THEN {
		Done = 1
		OrderAlt = -10
		SetSpd 1
		Preenable
	} ENDIF

IF NUM_TH == 0 THEN {
	IF Waypoints THEN {
		SETPRIORITY 220 TerminalHome
	} ELSE {
		If AIM Then {
			PreenableCourse = TBrg
		} Endif
			SETPRIORITY 220 SetCrs PreenableCourse
			SETPRIORITY 220 SetAlt OrderAlt
		} ENDIF
	} else {
		SETPRIORITY 253 SETSPD maxspd
	} endif
} ENDIF

IF ZIG AND NOT FIRST Then {
If Not Done Then { Setalt 50 SetSpd MaxSpd } 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 {
		SetPriority 250 SETCRS XYBRG ( WayPtX - OWNX ) ( WayPtY - OWNY )
} ENDIF
	IF NEWTRACK then {
IF ( ( TgtType $= "PLANE" ) OR ( TgtType $= "HELO" ) OR ( TgtCLASS $= "MISSILE" ) ) THEN {
	Drop
} ELSE {
	IF TgtType $= "CM" THEN {
		IF Spoofed > DecoyLogic THEN {
			IF ( TgtRng > FinalPhazeN ) THEN {
				drop
			} ELSE {
				SetTactic Terminal
				PreenableCourse = TgtBrg
				Homing = 1
				Aim = 1
			} ENDIF
		} endif
	} ELSEIF Tgtconf > ZZZConf THEN {
		IF ( TgtRng > FinalPhazeN ) THEN {
			PreenableCourse = TgtBrg
			drop
		} ELSE {
			SetTactic "Sizzler2"
			PreenableCourse = TgtBrg
			Homing = 1
			Aim = 1
		} ENDIF
	} ELSE {
		SetTactic "SBROS"
	} ENDIF
} ENDIF
} ENDIF
IF ( 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
	temp = XYBRG DELTA ( DELTAX * 3.28 )
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 15000 > DELTA THEN {
					if SENON THEN {
					SENON = 0
					SensorEnable "ARGS-54" 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 "ARGS-54" 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 "ARGS-54" 0
} endif
	IF OwnAlt >= 5 THEN { Drowned = 1 } ELSEIF ( OwnAlt < 5 ) AND Drowned THEN { Shutdown } ENDIF
	IF Away THEN {
		Done = 1
		Setpitch -30
		SetSpd 1
		Preenable
	} ENDIF
	IF LOSTTRACK THEN { Homing = 0 } endif
} endif
} ENDIF
