/* Generic Inert Behaviour // */ machine Inert { default state Start { action Print("in inert!"); action AddRandomAnimation("look", "left", 10.0, 25.0) action AddRandomAnimation("look", "right", 10.0, 25.0) action LookAt(0.0, -0.6, 0.5) ;// make em lethargic action SetRunMode(false) action SetSpeedModifierWalk(0.5) action SetRandomTimerBetween(1, 5.0, 10.0) action SetRandomTimerBetween(2, 3.0, 7.0) action SetWander() transition { goto Wandering } } state Wandering { transition IsTimerUp(2) { action SetRandomTimerBetween(2, 3.0, 7.0) action PlayAnim("call", "02_lp", true) goto Wandering } transition IsTimerUp(1) { goto RandomAction } } state RandomAction { action SetRand(0, 2) transition GetRand() == 0 { goto LookAround } transition GetRand() == 1 { goto Roar } transition GetRand() == 2 { goto ShakeHead } } state LookAround { action SetRandomTimerBetween(1, 8.0, 10.0) action SetRandomTimerBetween(2, 0.0, 3.0) action LookAtRandomPosition(1.0) transition { goto LookAroundWait } } state LookAroundWait { transition IsTimerUp(1) { goto LookFinish } transition IsTimerUp(2) { action SetRandomTimerBetween(2, 0.0, 3.0) action LookAtRandomPosition(1.0) goto LookAroundWait } } state Roar { action SetRandomTimerBetween(3, 2.5, 3.0) action LookAt(-0.2, 0.6, 2.0) action PlayAnim("call", "01_lp", true) transition { goto RoarWait } } state RoarWait { transition AnimStateFinished("call") { goto Start } } state ShakeHead { action SetRandomTimerBetween(1, 5.0, 8.0) action SetRandomTimerBetween(2, 0.5, 0.7) transition { goto LookLeft } } state LookLeft { transition IsTimerUp(1) { goto LookFinish } transition IsTimerUp(2) { action SetRandomTimerBetween(2, 0.5, 0.7) action LookAtRandomPositionExtent(1.0, 0.0, 0.4) goto LookRight } } state LookRight { transition IsTimerUp(1) { goto LookFinish } transition IsTimerUp(2) { action SetRandomTimerBetween(2, 0.5, 0.7) action LookAtRandomPositionExtent(1.0, 0.0, 0.4) goto LookLeft } } state LookFinish { transition IsTimerUp(2) { action LookEnd() goto Start } } ;------------------------ Exit States Begin ---------------------- exitstart state CleanUp { action SetSpeedModifier(1.0) action SetRunMode(false) action SetAutoMovementBlend(true) action LookEnd() transition { goto CleanUpEnd } } exitend state CleanUpEnd { } ;------------------------ Exit States End ---------------------- }