/* // Brach Stress // */ machine BrachStress { default state StressStart { action SetAutoMovementBlend(true) action ClearTarget() action SetSpeedModifierWalk(1.0) action SetRunMode(false) action SetRageIcon(true) transition AcquireFence(50, false) { goto FaceFence } transition { goto SetWander } } state SetWander { action StartLook("LookProximity", 0.5) transition SetWander() { goto AcquireTarget } } state AcquireTarget { transition AcquireFence(50, false) { action SendEnclosureEvent("attack_Structure") goto FaceFence } transition HasArrived() { goto SetWander } } state MinDistanceCheck { transition InTargetProximityRadius(9.0) { action SetSpeedModifierWalk(1.0) action SetWalkBackMode(true) action StepBackFromTarget(20.0) action SetRandomTimerBetween(3, 4.0, 5.0) goto MinDistanceStep } transition { goto SeekFence } } state MinDistanceStep { transition InTargetProximityRadius(11.0) == false { action SetWalkBackMode(false) action SetLockFacing(false) goto SeekFence } transition IsTimerUp(3) { action SetWalkBackMode(false) action SetLockFacing(false) goto SeekFence } } state SeekFence { action SetSpeedModifier(1.5) action SetRunMode(true) transition { goto SeekStart } } state FaceFence { action StopLook() action FaceTarget() transition { action SetRandomTimerBetween(2, 8.0, 10.0) goto FaceTargetWait } } state FaceTargetWait { transition HasArrived() { action SetStandStill() goto MinDistanceCheck } transition IsTimerUp(2) { action SetStandStill() goto MinDistanceCheck } } state SeekStart { action RamFence(true, 20.0) action SetSpeedModifier(1.5) action SetRunMode(true) ;//action SetAvoidanceWorld(false) ;//transition SeekTarget(true, false) transition SeekSetPosition() { action StopLook() goto RamWait } } state RamWait { transition InTargetProximityRadius(2.0) { action SetStandStill() action SetSpeedDirect(0.0) goto EnterRamPosition } transition HasArrived() { goto EnterRamPosition } } state EnterRamPosition { action FaceSideOnToTarget() transition { goto WaitRamPosition } } state WaitRamPosition { transition HasArrived() { action SetAutoMovementBlend(false) action PlayAnim("atk", "struc_lt", false) action SetRandomTimerBetween(3, 1.6, 1.7) goto WaitRam } } state WaitRam { transition IsTimerUp(3) { action RamFence(false, 0.0) goto LeaveEnclosure } } state LeaveEnclosure { action SendEnclosureEvent("destroy_structure") transition { action SeekSetPosition() goto DoNothingForNow } } state DoNothingForNow { action StartLook("LookProximity", 0.5) transition { direct goto StressDecrLoop } } state StressDecrLoop { action UpdateDeltaVariable("Stress", -0.2) } ;//----------------------------------------------------------------- exitstart state StressExit { transition { goto StressExitEnd } } exitend state StressExitEnd { action StopLook() action SetAutoMovementBlend(true) action SetLockFacing(false) action SetWalkBackMode(false) action SetRageIcon(false) } }