; Helo Dipping Sonar Search Doctrine For -Reinforce Alert- Addon /KPV_1974 design/
; for ver. 1.41

var DipTimer 
var ReattackTimer
var ValidTarget
var GOGO
var G
var first
VAR QWE
VAR DOCTI
VAR FAKT
VAR OLDTgtID
VAR TAW
VAR MXSPD
var Q

FUNC SBROS {
	IF ( GETENTVAR "DIDEHSUB" ) == DOCTI THEN {
		SetEntVar "DIDEHSUB" 0
		SetEntVar "RASTHSUB" -1
		SetEntVar "FHSUB" 0
	} ELSEIF ( GETENTVAR "DIDEHSURF" ) == DOCTI THEN {
		SetEntVar "DIDEHSURF" 0
		SetEntVar "RASTHSURF" -1
		SetEntVar "FHSURF" 0
	} ELSEIF ( GETENTVAR "DIDESUB" ) == DOCTI THEN {
		SetEntVar "DIDESUB" 0
		SetEntVar "RASTSUB" -1
		SetEntVar "FUSUB" 0
	} ELSEIF ( GETENTVAR "DIDESURF" ) == DOCTI THEN {
		SetEntVar "DIDESURF" 0
		SetEntVar "RASTSURF" -1
		SetEntVar "FUSURF" 0
	} ENDIF
}
IF INIT THEN {
	MxSpd = ( MaxSpd / 1.94 )
	if not q then { q = 1 DOCTI = ( TIME + RND 500 + RND 500 + RND 500 ) } endif
	QWE = 0
	first = 0
	G = 0
	SensorEnable "MAD AI HELO" ON
	GOGO = 0
	DipTimer = -1
	ReattackTimer = -1
	OLDTgtID = TgtID
	TAW = 0
IF ( ( TgtID $= "HOSTILE" ) OR ( TgtID $= "UPD" ) ) THEN { ValidTarget = -1 } ELSE { ValidTarget = 0 } ENDIF

} ELSEIF LOSTTRACK THEN {
	IF ( ( ( TgtSource $= "Visual" ) OR ( TgtALT > -22 ) ) AND ( TgtID $= "HOSTILE" ) ) Then { SetEntVar "VVRAG" 0 } endif
		SBROS
	} ELSEIF TgtID $= "NEUTRAL" THEN {
		SBROS
		DROP
	} ELSEIF ( ATTACKRNG == 0 ) AND ( TgtID $= "HOSTILE" ) THEN {
		SBROS
} ELSE {
	IF ( TgtSource $= "Visual" ) OR ( TgtALT > -22 ) THEN {
		SetEntVar "VVRAG" 1
	} ELSE {
		SetEntVar "VVRAG" 0
	} ENDIF

IF not ( OLDTgtID $= TgtID ) then {
	OLDTgtID = TgtID
	IF ( ( ( GETENTVAR "DIDESUB" ) == DOCTI ) and ( TgtType $= "SUB" ) ) THEN {
		SetEntVar "DIDESUB" 0
		SetEntVar "RASTSUB" -1
		SetEntVar "FUSUB" 0
	} ENDIF
	IF ( ( ( GETENTVAR "DIDESURF" ) == DOCTI ) and ( TgtType $= "Ship" ) ) THEN {
		SetEntVar "DIDESURF" 0
		SetEntVar "RASTSURF" -1
		SetEntVar "FUSURF" 0
	} ENDIF
} ENDIF
;	OLDTgtID = TgtID
	FAKT = 1
IF TgtID $= "HOSTILE" THEN {
	IF ( TgtType $= "SUB" ) Then {
		SetEntVar "FHSUB" 1
IF ( GETENTVAR "RASTHSUB" ) < TGTRNG THEN {
	SetEntVar "RASTHSUB" TGTRNG
	SetEntVar "DIDEHSUB" DOCTI
} ENDIF

IF ( GETENTVAR "DIDEHSUB" ) == DOCTI THEN {
	IF NOT ( GETENTVAR "FASM" ) THEN {
		FAKT = 0
	} ELSE {
		IF ( GETENTVAR "RASTROK" ) < TGTRNG THEN {
			FAKT = 1
		} ELSE {
			FAKT = 0
			SetEntVar "FASM" 0
			SetEntVar "ROK" 0
			SetEntVar "RASTROK" -1
		} ENDIF
	} ENDIF
} ENDIF
} ELSEIF ( TgtType $= "Ship" ) Then {
	SetEntVar "FHSURF" 1
IF NOT ( ( GETENTVAR "FHSUB" ) OR ( GETENTVAR "FASM" ) ) THEN {
	IF ( GETENTVAR "RASTHSURF" ) < TGTRNG THEN {
		SetEntVar "RASTHSURF" TGTRNG
		SetEntVar "DIDEHSURF" DOCTI
	} ENDIF
		IF ( GETENTVAR "DIDEHSURF" ) == DOCTI THEN {
			FAKT = 0
		} ENDIF
	} ENDIF
} ENDIF
} ELSE {
	IF TgtType $= "SUB" Then {
		SetEntVar "FUSUB" 1
IF NOT ( ( GETENTVAR "FHSUB" ) OR ( GETENTVAR "FHSURF" ) OR ( GETENTVAR "FASM" ) ) THEN {
	IF ( GETENTVAR "RASTSUB" ) < TGTRNG THEN {
		SetEntVar "RASTSUB" TGTRNG
		SetEntVar "DIDESUB" DOCTI
	} ENDIF
	IF ( GETENTVAR "DIDESUB" ) == DOCTI THEN {
		FAKT = 0
	} ENDIF
} ENDIF	
} ELSEIF TgtType $= "Ship" Then {
	SetEntVar "FUSURF" 1
IF NOT ( ( GETENTVAR "FHSUB" ) OR ( GETENTVAR "FHSURF" ) OR ( GETENTVAR "FUSUB" ) OR ( GETENTVAR "FASM" ) ) THEN {
	IF ( GETENTVAR "RASTSURF" ) < TGTRNG THEN {
		SetEntVar "RASTSURF" TGTRNG
		SetEntVar "DIDESURF" DOCTI
	} ENDIF
			IF ( GETENTVAR "DIDESURF" ) == DOCTI THEN {
				FAKT = 0
			} ENDIF
		} ENDIF
	} ENDIF
} ENDIF

IF NOT FAKT THEN {
IF NOT ( ( GetEntVar "NAP" ) OR ( GetEntVar "FNAP" ) OR ( GetEntVar "TakeOff" ) ) THEN {
	IF ( DipTimer == -1 ) AND ( ValidTarget == -1 ) THEN {
	IF ( ( ( TgtID $= "UPD" ) OR ( ( TgtID $= "HOSTILE" ) AND ( TGTAGE > 100 ) ) ) AND ( TgtRng <= 1200 ) ) THEN {
		IF ( TgtID $= "HOSTILE" ) THEN {
			SetEntVar "PROZVON" 1
			DROP
			SETPRIORITY 250
			SETPERSIST 90
			SETSPD 0
			SETALT 45
		} else {
			DipTimer = ( TIME + 90 )
			SETPRIORITY 251
			SETPERSIST 80
			SETCRS TGTBRG
			SETSPD 0
			SETALT 45
		} ENDIF
	} ELSEIF TgtRng > 500 THEN {
		SETPRIORITY 251
		STEERTO
		SetSpd MxSpd
		SETALT 300
		SensorEnable "MAD AI HELO" ON
	} ENDIF
	} ELSEIF ( ValidTarget == 0 ) THEN {
		SETPRIORITY 251
		SETSPD MxSpd
		SETALT 300
		IF TgtRng > 13715 THEN {
		Drop
		} ENDIF
	} ELSEIF ( TIME > DipTimer ) THEN {
		SETPRIORITY 251
		SETSPD MxSpd
		SETALT 300
		SensorEnable "MAD AI HELO" ON
		DipTimer = -1
	} ENDIF
IF ( ( TGTAGE <= 100 ) AND ( TgtRng <= 1100 ) AND ( TgtID $= "HOSTILE" ) AND ( ( ReattackTimer == -1 ) OR ( TIME > ReattackTimer ) ) ) THEN {
	GOGO = 1
	G = 1
	SETPRIORITY 252
	SETPERSIST 10
	SETSPD MxSpd
	SETCRS TGTBRG
	SETALT 200
       	SETPRIORITY 255
	SETPERSIST 200
	ATTACKBEST
	DipTimer = -1
	ReattackTimer = ( TIME + 80 + rnd ( 50 ) )
} ELSEIF ( ( G == 0 ) AND ( TgtRng > 1200 ) AND ( ( TgtID $= "HOSTILE" ) OR ( TgtID $= "UPD" ) ) ) THEN {
	GOGO = 1
	SETPRIORITY 252
	SETALT 300
	SETSPD 110
	SETCRS TGTBRG
	DipTimer = -1
} ENDIF

IF WEAPONAWAY THEN { SetEntVar "TIME_LAND" ( TIME + 900 + RND ( 700 ) ) } ENDIF

IF ( ( TgtID $= "HOSTILE" ) and ( tgtage < 30 ) ) THEN {
	SETPRIORITY 253
	SETALT 200
IF ( AttackRng > TGTRNG ) AND ( OWNALT > 40 ) AND ( ABS ( OWNCRS - TGTBRG ) < 10 ) AND ( TAW < TIME ) THEN {
	SETPRIORITY 255
	FIREBEST
	TAW = ( TIME + 0.5 ) } ENDIF
	} ENDIF
} ENDIF
} ENDIF
} ENDIF
