/* Raptor Flee Behaviour
//
*/

machine RaptorFlee

{
	default state Start
	{
		action SetAutoMovementBlend(true)
		action SetSpeedModifier(1.0)
		action SetRunMode(true)
                action SetFlockImpulse(true)
		transition AcquireTarget("aggressor")
		{
			action StartLook("LookTarget", 1.0)
			action SendEnclosureEvent("escape_predator")
			goto PreFoundTarget
		}
		transition
		{
			goto AttackExitStart
		}
	}
	state PreFoundTarget
	{
		transition IAmSmall()
		{
			goto IdleChooseCheck
		}
		transition
		{
			goto IdleChooseCheck1
		}
	}
	state IdleChooseCheck
	{
		transition GetVariable("health") < 300.0
		{
			;//action SetSick(true)
			goto Flee
		}
		transition
		{
			;//action SetSick(false)
			goto FoundTarget
		}
	}
	state IdleChooseCheck1
	{
		transition IAmLarge()
		{
			goto IdleChooseCheck2
		}
		transition
		{
			goto IdleChooseCheck3
		}
	}
	state IdleChooseCheck2
	{
		transition GetVariable("health") < 500.0
		{
			;//action SetSick(true)
			goto FoundTarget
		}
		transition
		{
			;//action SetSick(false)
			goto FoundTarget
		}
	}
	state IdleChooseCheck3
	{
		transition GetVariable("health") < 350.0
		{
			;//action SetSick(true)
			goto FoundTarget
		}
		transition
		{
			;//action SetSick(false)
			goto FoundTarget
		}
	}
	state FoundTarget
	{
		action SetAutoMovementBlend(true)
		action SetSpeedModifier(1.0)
		action SetRunMode(true)
		transition HasTarget() == false
		{
			;//goto RunAway
			goto AttackExitStart
		}
		transition IsTargetDead()
		{
			goto AttackExitStart
		}
                transition IsTargetFSMRunning(fsm::"CarnGrab")
                {
                        goto Flee
                }

		transition IsTargetVehicle()
		{
			
			goto FollowVehicle
		}
                transition IsTargetSmall() == false
                {
                        
                        goto PreAttackStart
                }
		action AvoidTarget(200.0, true)
		transition InTargetProximity(90.0, true) == false
		{
			goto SetWander
		}
	}


        state PreAttackStart
        {
                action SetFlockHungerNeed(true)
                transition GetFlockHungerNeed()
		{
			goto CheckTarget
		}
                transition
                {
                        goto Flee
                }
        }
        state CheckTarget
        {
                action SetFlockImpulse(true)
                action SetAutoMovementBlend(true)
		action SetSpeedModifierWalk(0.75)
		action SetRunMode(false)
		action SetSpeedDirect(0.0)
		action SetStandStill()
                transition 
                {
                        action SetRandomTimerBetween(1, 2.0, 3.0)
                        action SetRandomTimerBetween(2, 10.0, 15.0)
                        goto WardOffTargetLoop
                }
        }
        state WardOffTargetLoop
        {
                
                transition InTargetProximity(100.0, true)
                {
                        ;//action SetFlockImpulse(true)
                        action PlayAnimInstant("call", "f", true)
                        ;//action CreateKnockMusterZoneTarget(true, false)
                        ;//action PlayAnimTarget("call", "f", false)
                        goto WardOffTarget1
                }
                
                
                transition
                {
                        
                        action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
                }
                
                
                
        }
        state WardOffTarget1
        {
                transition IsTargetFSMRunning(fsm::"Muster") == false
                {
			goto CarnGrabCheck
		}
                transition
                {
                        goto WardOffTarget
                }
        }
	state CarnGrabCheck
	{
		transition IsTargetFSMRunning(fsm::"CarnGrab")
		{
			goto Flee
		}
		transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsTargetTerritoryScriptRunning() 
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition
		{
			action SetTargetsTargetToMe()
                        action CreateKnockMusterZoneTarget(true, false)
			action SetMusterAngryAttack(true, true)
                        action SetTargetsTargetToMe()
                        goto WardOffTarget
		}
	}
        state WardOffTarget
        {
                transition InTargetProximity(80.0, true)
                {
                        action SetFlockImpulse(true)
                        goto PreLatchCheck
                }
		;//action CreateKnockMusterZoneTarget(true, false)
                transition
                {
                        goto WardOffTargetLoop1
                }
                
        }
        state WardOffTargetLoop1
        {
                transition IsAnimPlaying("call", "f", true) == false
                {
        
                         action PlayAnimInstant("call", "f", true)
                         goto WardOffTargetLoop2
                }
        }
        state WardOffTargetLoop2
        {
                transition InTargetProximity(80.0, true)
                {
                        action SetFlockImpulse(true)
                        goto PreLatchCheck
                }
		
		transition
		{
			goto WOTC
		}
	}
	state WOTC
	{
		transition IsTargetFSMRunning(fsm::"CarnGrab")
		{
			goto Flee
		}
		transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsTargetTerritoryScriptRunning() 
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition HasTarget() == false
		{
			;//goto RunAway
			goto AttackExitStart
		}
		transition IsTargetDead()
		{
			goto AttackExitStart
		}
		action CreateKnockMusterZoneTarget(true, false)
		action SetMusterAngryAttack(true, true)
                transition IsAnimPlaying("call", "f", true) == false
                {
        
                         action PlayAnimInstant("call", "f", true)
                         goto WardOffTargetLoop3
                }
        }
        state WardOffTargetLoop3
        {
                transition InTargetProximity(80.0, true)
                {
                        action SetFlockImpulse(true) 
                        goto PreLatchCheckaa
                }
		;//action CreateKnockMusterZoneTarget(true, false)
                transition IsAnimPlaying("call", "f", true) == false
                {
                         action PlayAnimInstant("call", "f", true)
                         goto PreFlee
                }
        }
        state PreFlee
        {
		transition HasTarget() == false
		{
			;//goto RunAway
			goto AttackExitStart
		}
		transition IsTargetDead()
		{
			goto AttackExitStart
		}
                transition IsAnimPlaying("call", "f", true) == false
                {
                         action SetFlockImpulse(true)
                         action SetAutoMovementBlend(true)
		         action SetSpeedModifier(1.0)
		         action SetRunMode(true)
                         goto Flee
                } 
        }
	state PreLatchCheckaa
	{
		transition IsTargetFSMRunning(fsm::"CarnGrab")
		{
			goto Flee
		}
		transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsTargetTerritoryScriptRunning() 
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		action CreateKnockMusterZoneTarget(true, false)
		action SetMusterAngryAttack(true, true)
		transition
		{
			goto PreLatchCheck
		}
	}
		
        state PreLatchCheck
        {
                transition CanLatchTarget()
                {
			
                        ;//action SetTargetsTargetToMe()
                        goto AttackStart
                }
                transition 
                {
                        action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
                }
        }     
        state AttackStart1
        {
                transition 
                {
                        
                        goto AttackStart
                }
        }                
        
        state AttackStart
	{
                transition IsTargetFSMRunning(fsm::"CarnGrab")
                {
                        goto Flee
                }
		transition IsTargetFSMRunning(fsm::"SpinoTerritory")
		{
			goto Flee
		}
                transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
                action SetTargetsTargetToMe()
                action CreateKnockMusterZoneTarget(true, false)
		action SetMusterAngryAttack(true, true)
                action SetStandStillTarget()

                action SetFlockImpulse(true)
		action SetFlockHungerNeed(true)
		action GetFlockTarget()

		transition IsTargetDead()
		{
			goto AttackExitEnd
		}
		transition CanAttackTarget() == false
		{
			action ClearTarget()
			goto SetWander
		}

		;//action SetAesPosInterp(false)
                action SetFlockImpulse(true)
		action LockMachine(false)
		action SetSpeedModifier(1.0)
		action SetRunMode(true)
		action SetAutoMovementBlend(true)
		action StopLook()
		transition InTargetProximityRadius(0.6, true)
		{
			direct goto PreAttackSetup
		}
		transition
		{
			goto SeekFood
		}
	}

	state SeekFood
	{
                ;//action SetTargetsTargetToMe()
		action AddRandomAnimation("call", "01_lp", 4.0, 10.0)
		transition
		{
                        action SetFlockImpulse(true)
			;//action SetRandomTimerBetween(5, 1.0, 2.0)
			goto SeekLoop
		}
		transition
		{
			action ClearTarget()
			goto AttackExitStart
		}
	}

	state SeekLoop
	{
		/*
		Param0:		float	distance offset
		Param1:		float	rotation offset
		Param2:		bool	True if we should face target.
		Param3:		bool	True if we want a random rotation
		Param4:		bool	True if rotation is offset from forward
		*/
                ;//action CreateKnockMusterZoneTarget(true, false)
		transition SeekTargetOffset(1.0, 0.0, false, false, true) == false
		{
			goto CornerSeek
		}
		transition HasTarget() == false
		{
			goto AttackExitEnd
		}
		transition IsTargetDead()
		{
			goto AttackExitEnd
		}
		transition InTargetProximityRadius(0.6, true)
		{
                        ;//action CreateKnockMusterZoneTarget(true, false)
			direct goto PreAttackSetup
		}
                
	}

;/////////////////////////////////
	state CornerSeek
	{
		;//action CreateKnockMusterZoneTarget(true, false)
                ;//action SetTargetsTargetToMe()
		transition HasTarget() == false
		{
			action ClearTarget()
			goto AttackExitEnd
		}
		transition IsTargetDead()
		{
			goto AttackExitEnd
		}
		transition InTargetProximityRadius(3.5, true)
		{
			direct goto SeekFacingCheck
		}
		transition SeekTargetOffset(1.0, 0.0, false, false, true)
		{
			;//action SetRandomTimerBetween(5, 1.0, 2.0)
			direct goto SeekLoop
		}
		transition SeekTargetOffset(-5.0, 0.0, false, false, true) == false
		{
			;//action ClearTarget()
			;//goto AttackExitEnd
			goto Flee
		}
	}

	state SeekFacingCheck
	{
		transition IsTargetDead()
		{
			goto AttackExitEnd
		}
		transition IsFacingTargetUnit()
		{
			goto PreAttackSetup
		}
		transition
		{
			action FaceTarget()
			goto SeekFacingAlignWait
		}
	}

	state SeekFacingAlignWait
	{
		transition HasArrived()
		{
			;//action SetRandomTimerBetween(5, 1.0, 2.0)
			direct goto SeekLoop
		}
        }        
;///////////////////////////////

        state PreAttackSetup
        { 
                transition IsTargetFSMRunning(fsm::"Muster") == false
                {
			goto CarnGrabCheck1
		}   
                transition
                {
                        goto AttackSetupCheck
                }
                ;//action CreateKnockMusterZoneTarget(true, false)
        }
	state CarnGrabCheck1
	{
		transition IsTargetFSMRunning(fsm::"CarnGrab")
		{
			goto Flee
		}
		transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsTargetTerritoryScriptRunning() 
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
                action CreateKnockMusterZoneTarget(true, false)
		action SetMusterAngryAttack(true, true)
                transition ;//IsTargetFSMRunning(fsm::"Muster")
		{
                        action SetTargetsTargetToMe()
                        goto AttackSetupCheck
		}
		transition
		{
			action ClearTarget()
			goto AttackExitStart
		}
	}
        state AttackSetupCheck
        {
                transition IsAnimPlayingTarget("grab", "st", false)
                {
                        goto Flee
                }
                transition IsAnimPlayingTarget("grab", "shake_lp", false)
                {
                        goto Flee
                }
                transition
                {
                        goto AttackSetup
                }
        }
	state AttackSetup
	{
                ;//action SetTargetsTargetToMe() 
                action SendEnclosureEvent("attack_predator")
                
                action SetStandStillTarget()

		transition IsTargetDead()
		{
			goto AttackExitEnd
		}
                transition IsTargetHelicopter()
                {
                        direct goto AttackExitEnd
                }
                
		transition LatchOnTarget() == true
		{
                        ;//action SetTargetsTargetToMe()
			action StopAllRandomAnimations()
			action LockMachine(true)
			action StopAllUserAnimations()
			action SetAutoMovementBlend(true)
			action PlayAnim("leap", "st", false)
			action SetAutoLinkAnimOff("leap", "st", true)
			action SetRandomTimerBetween(4, 1.0, 1.0)
                        goto PreLeapWait
                }
                transition
		{
			goto Flee
		}
		
	}
        state PreLeapWait
        {
                
            
                transition
                {
                        goto LeapWait
                }
        }                
        state LeapWait
	{
		transition IsAnimPlaying("leap", "st", false) == false
		{
                        ;//action CreateKnockMusterZoneTarget(true, false)
                        action PlayAnim("leap", "lp", false)
			action SetAutoLinkAnimOff("leap", "lp", true)
                        action SendEnclosureEvent("attack_prey")
			;//action StopAnimInstant("leap", "lp", false)
                        ;//action PlayAnimLooping("grapple", "lp", false, -1.0, 2.0)
			action SetRandomTimerBetween(4, 0.9, 2.5)
			goto JumpEnd   ;//Grapple
		}
	}
	state PreJumpEnd
	{
		transition IsTimerUp(4)
		{
			goto GrappleInitWait
		}
	}
	state JumpEnd
	{
		transition IsAnimStatePlaying("leap") == false
		{
			goto GrappleInitWait
		}
	}

	state GrappleInitWait
	{
		transition IsAttached() == true
		{
			action PlayAnimLooping("grapple", "lp", false, -1.0, 2.0)
			action SetRandomTimerBetween(4, 0.9, 2.5)
			goto Grapple
		}
	}
        state Grapple
	{
		;//action UpdateDeltaVariableTarget("Health", -10.0)
		;//action HurtTargetUnit(true, 0.15)
		action HurtTargetUnit(true, 0.12)
		;//action CreateKnockMusterZoneTarget(true, false)
		transition IsTimerUp(4)
		{
			direct goto PreFallOff
		}
		transition IsTargetDead()
		{
			direct goto PreFallOff
		}
	}
	state PreFallOff
	{
		transition IsTargetFSMRunning(fsm::"CarnGrab")
                {
                        goto FallOff
                }
		transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsTargetTerritoryScriptRunning() 
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition
		{
			action CreateKnockMusterZoneTarget(true, false)
			action SetMusterAngryAttack(true, true)
			goto FallOff
		}
	}
        state FallOff
	{
		transition
		{
			action StopAnimState("grapple")
			action UnLatchFromTarget()
			;//action SetStandStill()
			;//action PlayAnimInstant("hit", "lt", true)
			;//action SetRandomTimerBetween(4, 4.0, 5.0)
			goto FallWait
		}
	}
        state FallWait
	{
		transition IsAnimPlaying("hit", "lt") == false
		{
			action PlayAnimInstant("getup", "lt", true)
			goto GetupWait1
		}
                transition
                {
                        goto GetupWait1
                }
	}
        state GetUpWait1
        {
                transition IsTargetFSMRunning(fsm::"Muster") == false
                {
			goto CarnGrabCheck2
		}
                        
                transition
                {
                        goto GetUpWait
                }
        }
	state CarnGrabCheck2
	{
		transition IsTargetFSMRunning(fsm::"CarnGrab")
		{
			goto GetUpWaitFlee
		}
		transition IsAnimPlayingTarget("grab", "st", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "shake_lp", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition IsAnimPlayingTarget("grab", "swal_ed", false)
		{
			action SetAutoMovementBlend(true)
		        action SetSpeedModifier(1.0)
		        action SetRunMode(true)
                        goto Flee
		}
		transition
		{
			action SetTargetsTargetToMe()
                        action CreateKnockMusterZoneTarget(true, false)
			action SetMusterAngryAttack(true, true)
                        goto GetUpWait
		}
	}
        state GetUpWaitFlee
	{
		transition IsAnimPlaying("getup", "lt") == false
		{
			goto Flee
		}
	}
        state GetUpWait
	{
		transition IsAnimPlaying("getup", "lt") == false
		{
			action SetAutoMovementBlend(true)
			goto ExpUpdate
		}
	}
        state ExpUpdate
	{
		;//action UpdateVariable("health", -10.0)
		action UpdateVariable("Stress", -0.05)
		transition IsDead()
		{
			action SetKillCause("dino")
			direct goto AddExperience
		}
		transition
		{
			direct goto AddExperience
		}
	}
        state AddExperience
	{
		transition IsTargetDead()
		{
			action AddKillExperience(1, 0.0)
			goto AttackExitEnd
		}
		transition
		{
			goto Flee
		}
	}
	



        state Flee
        {
		transition IsTargetDinosaur()
		{
			goto PreFencey
		}
		transition
		{
			goto ActualFleey
		}
	}
	state PreFencey
	{
		transition IsTargetSmall() == false
		{
			goto Fencey
		}
		transition
		{
			goto ActualFleey
		}
	}
	state Fencey
	{
		transition GetVariable("health") < 300.0
		{
			
			goto ActualFleey
		}
		action SetNumPassedParam(1)
		;//action SetPassedParam(0, -2.0)
		action SetPassedParam(0, -8.5)
		
		transition AcquireFence(15, true)
		{
			action StopLook()
			goto DetermineSide
		}
		transition
		{
			goto ActualFleey
		}
	}
	state DetermineSide
	{
		action LockMachine(false)

		/*transition DetermineFenceSide(10.0)
		{
			action SetSpeedModifier(1.0)
			action SetRunMode(true)
			goto SeekFenceSide
		}*/
		transition 
		{
			action SetRandomTimerBetween(3, 4.0, 5.0)
			goto SeekFence
		}
	}

	state SeekFenceSide
	{
		transition HasArrived()
		{
			action SetRandomTimerBetween(3, 4.0, 5.0)
			goto SeekFence
		}
	}
	;//---------------------------------
	state SeekFence
	{
		transition CanLandOnOtherFenceSide(10.0) == false
		{
			;//action SetStandStill()
			goto ActualFleey
		}
		transition SeekFenceOffset(0, -0.1)
		{
			action SetSpeedModifier(1.0)
			action SetRunMode(true)
			goto SeekFenceLoop
		}
		transition IsTimerUp(3)
		{
			goto ActualFleey
		}
		transition IsTimerUp(2)
		{
			goto ActualFleey
		}
	}

	state SeekFenceLoop
	{
		/*
		transition InTargetProximityRadius(2.2, true)
		{
			action SetStandStill()
			action SetSpeedDirect(0.0)
			goto FaceFence
		}
		*/
		transition HasArrived()
		{
			action FaceFence()
			goto FaceFence
		}
	}

	state FaceFence
	{
		transition HasArrived()
		{
			action SetPassedParam(0, -8.5)
			goto SeekCloser
		}
	}

	state SeekCloser
	{
;//		action SetFenceExclusion(false)
		action SetPassedParam(0, -8.5)
		transition
		{
			action SetRandomTimerBetween(3, 8.0, 10.0)
			goto SeekCloserInit
		}
	}

	state SeekCloserInit
	{
		transition SeekFenceOffset(0, 0.0)
		{
			goto SeekCloserLoop
		}
		transition IsTimerUp(3)
		{
			goto ActualFleey
		}
	}

	state SeekCloserLoop
	{
		transition InTargetProximityRadius(8.5, true)
		{
			action SetStandStill()
			action SetSpeedDirect(0.0)
			action FaceFence()
			goto JumpFaceFence
		}
		transition HasArrived()
		{
			action FaceFence()
			goto JumpFaceFence
		}
	}

	state JumpFaceFence
	{
		transition HasArrived()
		{
			goto MinDistCheck
		}
	}

	state MinDistCheck
	{
		transition InTargetProximityRadius(8.2, false)
		{
			action SetSpeedModifierWalk(1.0)
			action SetWalkBackMode(true)
			action StepBack(4.0)
			action SetRandomTimerBetween(3, 4.0, 5.0)
			goto MinDistanceStep
		}
		transition
		{
			goto JumpFenceStart
		}
	}

	state MinDistanceStep
	{
		transition InTargetProximityRadius(8.4, false) == false
		{
			action SetWalkBackMode(false)
			action SetLockFacing(false)
			goto JumpFenceStart
		}
		transition IsTimerUp(3)
		{
			action SetWalkBackMode(false)
			action SetLockFacing(false)
			goto JumpFenceStart
		}
	}
	state JumpFenceStart
	{
		;//action FenceLeapSnap(8.0)
		action FenceLeapInterp(true, 7.5)

		action LockMachine(true)
		action SetStandStill()
		action SetSpeedDirect(0.0)
		action StopAllUserAnimations()
		action SetAutoMovementBlend(false)
		action PlayAnim("climb", "01", false)
		action AlertFenceJumpBreakout()
		transition
		{
			goto ClimbStartWait
		}
	}

	state ClimbStartWait
	{
		transition IsAnimPlaying("climb", "01", false) == false
		{
;//			action SetAvoidanceWorld(false)
			direct goto JumpChoose
		}
	}

	state JumpChoose
	{
		transition IsFenceElectrified()
		{
			direct goto ShockFall
		}
		transition IsTargetMedFence()
		{
			action PlayAnim("climb", "jmp_med", false, 0.0)
			action SetRandomTimerBetween(1, 3.8, 3.8)
			goto JumpWait
		}
		transition
		{
			action PlayAnim("climb", "jmp_low", false, 0.0)
			action SetRandomTimerBetween(1, 3.0, 3.0)
			goto JumpWait
		}
	}

	state ShockFall
	{
		action FenceLeapInterp(false, 7.5)
		action SetTransfromFromLocator("D", false)
		action StopAllUserAnimations(true)
		action PlayAnimInstant("hit", "lt", true)
		action SetStandStill()

		;//action UpdateVariable("health", -30.0)
		action ShockDamage()
		
		; // This failed jump counts as an attack for the enclosure analyser
		action SendEnclosureEvent("attack_structure")

		action FenceShockFall(true)
		action DamageFence(0.0, true, true)

		transition IsDead()
		{
			action SetLockLastPose("hit", "lt", true)
			action LockDeadPose()
			action SetKillCause("electric")
			goto ShockDeadWait
		}
		transition
		{
			goto ShockWait
		}
	}

	state ShockWait
	{
		transition HasSteerEffect()
		{
			goto ShockWait
		}
		transition IsAnimPlaying("hit", "lt") == false
		{
			action FenceShockFall(false)
			action PlayAnimInstant("getup", "lt", true)
			goto ShockGetupWait
		}
	}

	state ShockDeadWait
	{
		transition HasSteerEffect()
		{
			goto ShockDeadWait
		}
		transition IsAnimPlaying("hit", "lt") == false
		{
			action FenceShockFall(false)
			goto ActualFleey
		}
	}

	state ShockGetupWait
	{
		transition IsAnimPlaying("getup", "lt") == false
		{
			action SetAutoMovementBlend(true)
			action SetSpeedModifierWalk(1.0)
			action SetRunMode(false)
			goto ActualFleey
		}
	}

	state JumpWait
	{
		transition IsTimerUp(1)
		{
			action SetRandomTimerBetween(1, 10000.0, 10000.0)
			action LeaveFence(8.0)
			goto JumpWait
		}
		transition IsFenceShot()
		{
			direct goto ShockFall			
		}
		transition IsAnimStatePlaying("climb") == false
		{
			action FenceLeapInterp(false, 7.5)

			action SetTransfromFromLocator("D", true)
			action PlayAnimInstant("idle", "brth_lp", false)
			action SetStandStill()
			action SetAutoMovementBlend(true)

			;//action SetFenceExclusion(true)
			action SetRandomTimerBetween(1, 2.0, 2.0)
			action SetPassedParam(0, -8.0)
			action SetSpeedModifier(1.0)
			action SetRunMode(true)

			;//action SetSpeedModifierWalk(1.0)
			;//action SetRunMode(false)
			goto MoveAway
		}
	}

	state MoveAway
	{
/*		transition LeaveFence(8.0)
		{
			action SeekSetPosition()
			action SetRandomTimerBetween(1, 15.0, 15.0)
			goto MoveAwayLoop
		}
*/		transition SeekFenceOffset(0, -1.0)
		{
;//			action SetAvoidanceWorld(true)
			action SetRandomTimerBetween(1, 15.0, 15.0)
			goto MoveAwayLoop
		}
		;//action SetStandStill();
		transition IsTimerUp(1)
		{
;//			action SetAvoidanceWorld(true)
			action SetRandomTimerBetween(1, 4.0, 4.0)
			goto RandomMove
		}
	}
	state RandomMove
	{
		transition SeekTargetOffset(8.5, 0, false, true, true)
		{
			action SetRandomTimerBetween(1, 15.0, 15.0)
			goto MoveAwayLoop
		}
		transition IsTimerUp(1)
		{
			goto ActualFleey
		}
	}

	state MoveAwayLoop
	{
		transition IsTimerUp(1)
		{
			;//action SetStandStill()
			goto ActualFleey
		}
		transition InTargetProximityRadius(8.0, false) == false
		{
			;//action SetStandStill()
			goto ActualFleey
		}
		transition HasArrived()
		{
			goto ActualFleey
		}
	}
	
	state ActualFleey
	{
		action SetRandomTimerBetween(0, 2.0, 2.0)
		transition 
		{
			goto ActualFleey0
		}
	}
	state ActualFleey0
	{
		action SetRandomTimerBetween(1, 2.0, 3.0)
		transition HasTarget()
		{
			goto ActualFleey1
		}
		action SetRandomTimerBetween(0, 1.0, 1.0)
		transition AcquireTarget("aggressor")
		{
			goto ActualFleey1
		}
		transition IsTimerUp(0)
		{
			goto ActualFleey1
		}
	}
	state ActualFleey1
	{
		
		action SetWalkBackMode(false)
                action AddRandomAnimation("call", "01_lp", 4.0, 10.0)
		transition HasTarget() == false
		{
			;//goto RunAway
			goto AttackExitStart
		}
		transition IsTargetDead()
		{
			goto AttackExitStart
		}
                action SetFlockImpulse(true)
                action SetAutoMovementBlend(true)
		action SetSpeedModifier(1.0)
		action SetRunMode(true)
                action AvoidTarget(200.0, true)
                action PlayAnimInstant("call", "f", true)
                ;//action CreateKnockMusterZoneTarget(true, false)
		transition InTargetProximity(100.0, true) == false
                {
                       action PlayAnimInstant("call", "f", true)
                       goto SetWander
                }
		transition InTargetProximity(50.0, true) == false
		{
			goto NeedCheck
		}
		/*transition InTargetProximity(30.0, true)
		{
			action ClearTarget()
			goto ActualFleey0
		}
		transition IsTimerUp(0)
		{
			action ClearTarget()
			goto ActualFleey0
		}
                transition IsTimerUp(1)
		{
			goto FleeChoosey
		}*/
                transition 
                {
                       action PlayAnimInstant("call", "f", true)
                       goto AttackExitStart
                }
        }
	state NeedCheck
	{
		/*transition GetVariable("foodenergy") < 0.3
		{
			goto ScaredEat
		}*/
		transition GetVariable("water") < 0.3
		{
			goto ScaredWater
		}
		transition InTargetProximity(30.0, true)
		{
			action ClearTarget()
			goto ActualFleey0
		}
		transition IsTimerUp(0)
		{
			action ClearTarget()
			goto ActualFleey0
		}
		transition
		{
			goto ActualFleey0
		}
	}
	state FleeChoosey
	{
		
		action SetRand(0, 2)
		transition GetRand() == 0
		{
			goto AttackExitStart
		}
		transition GetRand() == 1
		{
			goto AttackExitStart
		}
		transition
		{
			goto Flee
		}
	}
        state RunAway
	{
		action SetFlockImpulse(true)
		action SeekSetPosition()
		action SetAutoMovementBlend(true)
		action SetSpeedModifier(1.0)
		action SetRunMode(true)
		transition SetWander()
		{
			goto SeekFailureWait1
		}
	}
	state SeekFailureWait1
	{
		transition HasArrived()
		{
			goto SetWander
		}
	}
		
	state SetWander
	{
		
		/*transition GetVariable("foodenergy") < 0.3
		{
			goto ScaredEat
		}
		transition GetVariable("water") < 0.3
		{
			goto ScaredWater
		}*/
		action SetWander()
		action SetRandomTimerBetween(1, 4.0, 5.0)
		transition
		{
			goto Wander
		}
	}

	state Wander
	{
		
		/*transition GetVariable("foodenergy") < 0.3
		{
			goto ScaredEat
		}
		transition GetVariable("water") < 0.3
		{
			goto ScaredWater
		}*/
                action PlayAnimInstant("call", "f", true)
		/*transition HasArrived()
		{
			goto SetWander
		}*/
		transition HasArrived()
		{
			goto SetWander
		}
		transition InTargetProximity(70.0, true)
		{
			goto FoundTarget
		}
		transition IsTimerUp(1)
		{
                        action ClearTarget()
			goto AttackExitStart
		}
                transition
                {
                        action ClearTarget()
                        goto AttackExitStart
                }
	}









	state FollowVehicle
	{
		action SetSpeedModifier(1.0)
		action SetRunMode(true)
		action SetAutoMovementBlend(true)
		action LockMachine(false)
		transition
		{
			direct goto HuntBegin
		}
	}

	state HuntBegin
	{
		transition HasTarget() == false
		{
			direct goto Start
		}

		transition
		{
			action SetRandomTimerBetween(2, 8.0, 12.0)
			goto Hunt
		}
	}

	state Hunt
	{
		action SetRandomTimerBetween(1, 7.0, 16.0)
		action SetRand(0, 2)
		transition GetRand() == 0
		{
			goto SeekLeft
		}
		transition IsTimerUp(2)
		{
			goto VehicleFlee
		}
		transition
		{
			goto SeekRight
		}
		
	}

	state SeekLeft
	{
		action SeekTargetOffset(4.0, -1.57, true, false, true)
		transition IsTargetInBuilding()
		{
			action SetStandStill()
			goto Start
		}
		transition IsTimerUp(1)
		{
			action SetStandStill()
			goto CallPause
		}
		transition InTargetProximityRadius(2.0, true)
		{
			action SetStandStill()
			goto CallPause
		}
	}
	state SeekRight
	{
		action SeekTargetOffset(4.0, 1.57, true, false, true)
		transition IsTargetInBuilding()
		{
			action SetStandStill()
			goto Start
		}
		transition IsTimerUp(1)
		{
			action SetStandStill()
			goto CallPause
		}
		transition InTargetProximityRadius(2.0, true)
		{
			action SetStandStill()
			goto CallPause
		}
	}

	state CallPause
	{
		action SetRand(0, 2)
		transition GetRand() == 0
		{
			action SetRandomTimerBetween(1, 2.0, 3.0)
			action PlayAnim("call", "01_lp", false)
			action StartLook("LookProximity", 0.5)
			goto CallWait
		}
		transition
		{
			action SetAutoMovementBlend(false)
			action PlayAnim("call", "f", false)
			goto CallFullWait
		}
	}

	state CallWait
	{
		transition IsTimerUp(1)
		{
			action StartLook("LookTarget", 1.0)
			goto CallEnd
		}
	}

	state CallFullWait
	{
		transition IsAnimPlaying("call", "f", false) == false
		{
			action SetAutoMovementBlend(true)
			goto CallEnd
		}
	}

	state CallEnd
	{
		transition InTargetProximityRadius(2.0, true)
		{
			action SetRandomTimerBetween(1, 3.0, 4.0)
			action SetWander()
			goto CallWander
		}
		transition
		{
			goto Hunt
		}
	}

	state CallWander
	{
		transition IsTimerUp(1)
		{
			action SetStandStill()
			goto Hunt
		}
		transition HasArrived()
		{
			goto Hunt
		}
		transition InTargetProximityRadius(200.0, false) == false
		{
			action SetStandStill()
			goto Hunt
		}
	}

	state VehicleFlee
	{
		action AvoidTarget(200.0, true)
		transition InTargetProximity(200.0, true) == false
		{
			goto SetWander
		}
	}



	state TargetCheck
	{
		transition InTargetProximity(35.0, true)
		{
			goto Start
		}
		transition InTargetProximity(90.0, true) == false
		{
			goto AttackExitStart
		}
		transition
		{
			goto ActualFleey0
		}
	}
	state NoWaterTargetCheck
	{
		transition InTargetProximity(35.0, true)
		{
			action AvoidTarget(200.0, true)
			goto Start
		}
		transition
		{
			goto AttackExitStart
		}
	}


	state ScaredWater
	{
		transition InTargetProximity(35.0, true)
		{
			goto Start
		}
		transition InTargetProximity(90.0, true) == false
		{
			goto AttackExitStart
		}
		transition AcquireWaterPoint(true)
		{
			action SetRandomTimerBetween(5, 6.0, 7.0)
			goto ScaredWaterSeek
		}
		transition
		{
			goto NoWaterTargetCheck
		}
	}
	state ScaredWaterSeek
	{
		
		transition SeekWaterPoint()
		{
			action SetFlockImpulse(false)
			action SetRandomTimerBetween(1, 25.0, 30.0)
			goto ScaredWaterActualSeek
		}
		transition IsTimerUp(5)
		{
			goto TargetCheck
		}
		/*transition
		{
			goto Start
		}*/
	}
	state ScaredWaterActualSeek
	{
		
		transition InTargetProximity(35.0, true)
		{
			goto Start
		}
		transition InTargetProximity(90.0, true) == false
		{
			goto AttackExitStart
		}
		transition IsInWaterArea()
		{
			action SetStandStill()
			action SetSpeedDirect(0.0)
			action FaceWaterPoint()
			goto ScaredFaceWater
		}
		transition HasArrived()
		{
			action FaceWaterPoint()
			goto ScaredFaceWater
		}	
		transition AcquireWaterPoint(false)
		{
			goto ScaredSeekWaterClose
		}
		transition IsTimerUp(5)
		{
			goto TargetCheck
		}
		/*transition
		{
			goto Start
		}*/
	}
	state ScaredFaceWater
	{
		
		transition InTargetProximity(35.0, true)
		{
			goto Start
		}
		transition InTargetProximity(90.0, true) == false
		{
			goto AttackExitStart
		}
		transition HasArrived()
		{
			goto ScaredDrink
		}
		transition IsTimerUp(5)
		{
			goto TargetCheck
		}
	}
	state ScaredSeekWaterClose
	{
		
		transition InTargetProximity(35.0, true)
		{
			goto Start
		}
		transition InTargetProximity(90.0, true) == false
		{
			goto AttackExitStart
		}
		transition SeekWaterPoint()
		{
			action SetRandomTimerBetween(1, 70.0, 75.0)
			goto ScaredSeekWaterCloseLoop
		}
		transition
		{
			goto Start
		}
	}
	state ScaredSeekWaterCloseLoop
	{
		transition IsInWaterArea()
		{
			action FaceWaterPoint()
			goto ScaredFaceWater
		}
		transition HasArrived()
		{
			action FaceWaterPoint()
			goto ScaredFaceWater
		}
		transition IsTimerUp(1)
		{
			goto ScaredSeekFailWander
		}
		/*transition
		{
			goto Start
		}*/
	}
	state ScaredSeekFailWander
	{
		transition
		{
			goto Start
		}
	}



	state ScaredDrink
	{
		
		transition InTargetProximity(35.0, true)
		{
			goto Start
		}
		transition InTargetProximity(90.0, true) == false
		{
			goto AttackExitStart
		}
		action LockMachine(true)
		action SendEnclosureEvent("drinking")
		action StopAllRandomAnimations()
		action SetStandStill()
		action StopLook()
		action PlayAnim("drink", "st", false)
		;//action AddTerritoryFactor("water")
		transition
		{
			goto ScaredDrinkWait
		}
	}
	state ScaredDrinkWait
	{
		transition IsAnimPlaying("drink", "lp", false) == true
		{
			action SetRandomTimerBetween(1, 3.0, 5.0)
			goto ScaredDrinkLoop
		}

		;// new anim system causing issues...
		transition IsAnimPlaying("drink", "st", false) == false
		{
			action SetRandomTimerBetween(1, 3.0, 3.0)
			goto ScaredDrinkWaitTempFix
		}
	}
	state ScaredDrinkWaitTempFix
	{
		transition IsAnimPlaying("drink","lp", false)
		{
			action SetRandomTimerBetween(1, 3.0, 5.0)
			goto ScaredDrinkLoop
		}

		transition IsTimerUp(1)
		{
			goto ScaredDrinkBreak
		}
	}
	state ScaredDrinkLoop
	{
		
		transition InTargetProximity(35.0, true)
		{
			action UpdateDeltaVariable("Water", 0.02)
			action StopAnimState("drink")
			action SetRandomTimerBetween(0, 1.0, 1.0)
			goto ScaredDrinkEnd
		}
		transition IsTimerUp(1)
		{
			goto ScaredDrinkBreak
		}
	}
	state ScaredDrinkBreak
	{
		action UpdateDeltaVariable("Water", 0.02)
		action StopAnimState("drink")
		action LockMachine(false)
		action SetRandomTimerBetween(0, 1.0, 1.0)
		transition 
		{
			goto ScaredDrinkEnd
		}
	}
	state ScaredDrinkEnd
	{
		;//transition InTargetProximity(35.0, true)
		;//{
		;//	goto Start
		;//}
		action UpdateDeltaVariable("Water", 0.08)
		action StopAnimState("drink")
		action SetFlockImpulse(true)
		action StopLook()
		transition IsTimerUp(0)
		{
			goto Start ;//AfterNeedTargetCheck
		}
	}
	state AfterNeedTargetCheck
	{
		action SetRandomTimerBetween(0, 1.0, 1.0)
		transition HasTarget() == false
		{
			goto AfterNeedAcquire
		}
		transition ;//InTargetProximity(90.0, true)
		{
			action ClearTarget()
			goto AfterNeedAcquire
		}
	}
	state AfterNeedAcquire
	{
		transition AcquireTarget("aggressor")
		{
			goto AfterNeedTargetCheck1
		}
		transition IsTimerUp(1)
		{
			goto AttackExitStart
		}
	}
	state AfterNeedTargetCheck1
	{
		transition IsTargetDead()
		{
			goto AttackExitStart
		}
		transition InTargetProximity(90.0, true)
		{
			action SetRandomTimerBetween(0, 1.0, 1.0)
			action SetAutoMovementBlend(true)
			action SetRunMode(true)
			action SetSpeedModifier(0.5)
			goto FoundTarget
		}
		transition
		{
			goto AttackExitStart
		}
	}



	state ScaredEat
	{
		transition IsAnimLoaded("rest", "st")
		{
			goto AttackExitStart
		}
		transition
		{
			action SetRandomTimerBetween(0, 0.5, 0.5)
			goto ScaredCarnLook   ;//HealthUpdate
		}
	}
	state ScaredCarnLook
	{
		action AcquirePrefPrey() 
		transition HasTarget() 
      		{ 
         		action SetRandomTimerBetween(1, 5.0, 6.0) 
         		goto ScaredCarnPreyCheck
      		} 
		transition
		{
			goto ScaredCarnAggressorAcquire
		}
	}
	state ScaredCarnPreyCheck
	{
		transition IsTargetDead()
		{
			goto ScaredCarnSeek
		}
		transition IsTimerUp(0)
		{
			action ClearTarget()
			goto ScaredCarnAggressorAcquire
		}
		action ClearTarget()
		transition
		{
			goto ScaredCarnLook
		}
	}
	state ScaredCarnSeek
	{
		transition HasTarget() == false
		{
			goto ScaredCarnAggressorAcquire
		}
		transition IsFacingTargetUnit()
		{
			action SetRandomTimerBetween(0, 1.5, 1.5)
			action SendEnclosureEvent("seek_prey")
			action SetSpeedModifier(1.2) 
			goto ScaredCarnSeekLoop 
		}
		action FaceTarget()
	}
	state ScaredCarnSeekLoop
	{
		;//action LookAtTargetPosition(2.0) 
		transition HasTarget() == false
		{
			goto ScaredCarnAggressorAcquire
		}
		transition InTargetProximityRadius(0.2, true) 
		{ 
			direct goto ScaredCarnSeekFacingCheck 
		} 
		transition SeekTargetOffset(-5.0, 0.0, false, false, true)
		{
			goto ScaredCarnCornerSeek
		}
		transition IsTimerUp(1) 
		{ 
			goto ScaredCarnAggressorAcquire
		} 
		transition IsTimerUp(0)
		{
			goto ScaredCarnTargetFaceSeek
		}
	} 
	state ScaredCarnCornerSeek
	{
		transition HasTarget() == false
		{
			goto ScaredCarnAggressorAcquire
		}
		transition InTargetProximityRadius(0.2, true) 
		{ 
			direct goto ScaredCarnSeekFacingCheck 
		} 
		transition SeekTarget(true, false)
		{
			direct goto ScaredCarnSeekLoop
		}
		transition SeekTargetOffset(-5.0, 0.0, false, false, true) == false
		{
			action ClearTarget()
			goto ScaredCarnAggressorAcquire
		}
		transition IsTimerUp(1) 
		{
			action ClearTarget()
			goto ScaredCarnAggressorAcquire
		}
		transition IsTimerUp(0)
		{
			goto ScaredCarnTargetFaceSeek
		}
	}
	state ScaredCarnTargetFaceSeek
	{
		transition IsFacingTargetUnit()
		{
			action SetRandomTimerBetween(0, 1.5, 1.5)
			goto ScaredCarnSeekLoop
		}
		transition
		{
			action SetRandomTimerBetween(0, 1.0, 1.0)
			action FaceTarget()
			goto ScaredCarnTargetFaceSeekCheck
		}
	}
	state ScaredCarnTargetFaceSeekCheck
	{
		transition IsFacingTargetUnit()
		{
			goto ScaredCarnSeekLoop
		}
		transition IsTimerUp(0)
		{
			goto ScaredCarnSeekLoop
		}
	}
	state ScaredCarnSeekFacingCheck 
   	{ 
      		transition IsTargetDead() 
      		{ 
         		goto ScaredCarnEatTarget 
      		} 
      		
		transition
		{
			action ClearTarget()
			goto ScaredCarnAggressorAcquire
		}
   	} 
	state ScaredCarnEatTarget 
   	{ 
      		action SeekTarget(true, true) 
      		action SetSpeedModifier(1.2) 
      		transition 
      		{ 
         		goto ScaredCarnEatSeekLoop 
      		}	 
   	} 
	state ScaredCarnEatSeekLoop 
	{
		transition InTargetProximityRadius(0.2, true) 
      		{ 
         		action SetRandomTimerBetween(2, 10.0, 12.0) 
         		direct goto ScaredCarnRipFacingAlign 
      		} 
      		transition HasArrived() 
      		{ 
         		action SeekTarget(true, true) 
        		 goto ScaredCarnEatSeekLoop 
         		;//action SetRandomTimerBetween(2, 10.0, 12.0) 
         		;//direct goto RipFacingAlign 
      		} 
   	} 

   	state ScaredCarnRipFacingAlign
   	{ 
      		action FaceTarget() 
      		transition 
      		{ 
         		goto ScaredCarnRipFacingAlignWait 
      		} 
   	} 

   	state ScaredCarnRipFacingAlignWait 
   	{ 
      		transition HasArrived() 
      		{ 
         		goto ScaredCarnRipInit 
      		} 
   	} 

   	state ScaredCarnRipInit 
   	{ 
      		action SendEnclosureEvent("feeding_meat") 
      		action SetAutoMovementBlend(false) 
      		action StopLook() 
      		action PlayAnim("eat", "lo_lp", false) 
      		action SetStandStill() 
      		transition 
      		{ 
         		goto ScaredCarnRipWait 
      		} 
   	} 
	state ScaredCarnRipWait
	{
		transition IsAnimPlaying("eat", "lo_lp", false) == false 
      		{ 
         		action PlayAnim("idle", "chew_lp", false) 
         		goto ScaredCarnChewWait 
      		} 
   	} 

   	state ScaredCarnChewWait 
   	{ 
      		;//action UpdateDeltaVariable("FoodEnergy", 0.1) 
      		action CarnEatTarget(false) 
      		action UpdateDeltaVariable("Stress", -0.1) 
      		transition IsAnimPlaying("idle", "chew_lp", false) == false 
      		{ 
         		action SetAutoMovementBlend(true) 
         		action SetRandomTimerBetween(3, 4.0, 6.0) 
         		;//action SetRandomTimerBetween(4, 1.0, 3.0) 
         		;//action LookAtRandomPositionExtent(2.0, 0.7, 0.2) 
         		action StartLook("LookProximity", 0.5) 
         		goto ScaredCarnChewLook 
      		} 
   	} 
	state ScaredCarnChewLook
	{
		transition
		{
			action ClearTarget()
			goto ScaredCarnAggressorAcquire
		}
	}




	state ScaredCarnAggressorAcquire
	{
		action ClearTarget()
		transition AcquireTarget("aggressor")
		{
			goto ScaredCarnAggressorProxCheck
		}
		transition
		{
			goto AttackExitStart
		}
	}	
	state ScaredCarnAggressorProxCheck
	{
		transition InTargetProximity(50.0, true)
		{
			action SetAutoMovementBlend(true)
			action SetRunMode(true)
			action SetSpeedModifier(1.0)
			action StartLook("LookTarget", 1.0)
			action SendEnclosureEvent("escape_predator")
			;//action AddRandomAnimation("call", "02_lp", 1.0, 2.0)
			action AddRandomAnimation("call", "01_lp", 2.0, 3.0)
			goto FoundTarget
		}
		transition
		{
			goto AttackExitStart
		}
	}







;------------------------ Exit States Begin ----------------------
	exitstart state AttackExitStart
	{
		
		/*transition GetVariable("foodenergy") < 0.3
		{
			goto ScaredEat
		}
		transition GetVariable("water") < 0.3
		{
			goto ScaredWater
		}*/
                action ClearTarget()
		transition
		{
			goto AttackExitEnd
		}
	}

	exitend state AttackExitEnd
	{
		/*transition GetVariable("foodenergy") < 0.3
		{
			goto ScaredEat
		}
		transition GetVariable("water") < 0.3
		{
			goto ScaredWater
		}*/
		action ClearTarget()
		action SetFlockHungerNeed(false)
		action StopAllRandomAnimations()
		action SetSpeedModifier(1.0)
		action SetAutoMovementBlend(true)
		action SetRunMode(true)
		action SetAvoidanceSteer(true)
		action SetAvoidanceWorld(true)
		action LookEnd()
		action StopAnimState("atk")
		action LockMachine(false)
		;//action SetAesPosInterp(true)
	}
;------------------------ Exit States End ----------------------
}
