private IEnumerator DoBackPosition() { while (true) { yield return((object)null); float maxAngle = 320f; _transform.set_rotation(Quaternion.AngleAxis(maxAngle, Vector3.get_up())); animCtrl.SetMoveRunAnim(1); animCtrl.Play(PLCA.RUN_F, false); float capability = MonoBehaviourSingleton <OutGameSettingsManager> .I.homeScene.npc00StunCapability; Vector3 savePos2; if (capability >= Random.Range(0f, 1f)) { yield return((object)new WaitForSeconds(0.5f)); animCtrl.moveAnim = PLCA.STUN; animCtrl.Play(PLCA.STUN, false); yield return((object)new WaitForSeconds(0.5f)); savePos2 = _transform.get_position(); while (!animCtrl.IsPlayingIdleAnims(0)) { _transform.set_position(savePos2); yield return((object)null); } animCtrl.moveAnim = PLCA.RUN_F; animCtrl.Play(PLCA.RUN_F, false); } Vector3 startDir = defaultPosition - _transform.get_position(); startDir.Normalize(); while (!CheckBackPosition(startDir)) { yield return((object)null); } animCtrl.PlayDefault(false); yield return((object)new WaitForSeconds(0.3f)); savePos2 = _transform.get_position(); animCtrl.moveAnim = PLCA.TURN_L; animCtrl.Play(PLCA.TURN_L, false); yield return((object)null); while (!animCtrl.IsPlayingIdleAnims(0)) { _transform.set_position(savePos2); yield return((object)null); } animCtrl.SetMoveRunAnim(1); coroutines.Pop(); state = (STATE)coroutines.Peek(); } }