private void OnStart(PlayerActor player) { MapUIContainer.RefreshCommands(0, player.CoSleepCommandInfos); MapUIContainer.CommandList.CancelEvent = (System.Action)(() => { Singleton <Resources> .Instance.SoundPack.Play(SoundPack.SystemSE.Cancel); player.CancelCommand(); MapUIContainer.SetVisibleHUDExceptStoryUI(true); MapUIContainer.StorySupportUI.Open(); }); MapUIContainer.SetActiveCommandList(true, "睡眠"); this._onEndActionDisposable = ObservableExtensions.Subscribe <Unit>(Observable.Take <Unit>((IObservable <M0>) this._onEndAction, 1), (System.Action <M0>)(_ => { Dictionary <int, Dictionary <int, Dictionary <int, PlayState> > > playerActionAnimTable = Singleton <Resources> .Instance.Animation.PlayerActionAnimTable; PoseKeyPair wakeupPoseId = Singleton <Resources> .Instance.PlayerProfile.PoseIDData.WakeupPoseID; PlayState info = playerActionAnimTable[(int)player.ChaControl.sex][wakeupPoseId.postureID][wakeupPoseId.poseID]; player.Animation.StopAllAnimCoroutine(); player.Animation.InitializeStates(info); player.SetStand(player.Animation.RecoveryPoint, info.MainStateInfo.InStateInfo.EnableFade, info.MainStateInfo.InStateInfo.FadeSecond, 0); player.Animation.PlayInAnimation(info.MainStateInfo.InStateInfo.EnableFade, info.MainStateInfo.InStateInfo.FadeSecond, info.MainStateInfo.FadeOutTime, info.Layer); player.CameraControl.Mode = CameraMode.Normal; player.CameraControl.RecoverShotType(); player.CameraControl.EnabledInput = true; })); this._onEndInAnimDisposable = ObservableExtensions.Subscribe <Unit>(Observable.Take <Unit>((IObservable <M0>) this._onEndInAnim, 1), (System.Action <M0>)(_ => { ActorAnimInfo animInfo = player.Animation.AnimInfo; player.SetStand(player.Animation.RecoveryPoint, animInfo.endEnableBlend, animInfo.endBlendSec, animInfo.directionType); player.Animation.RefsActAnimInfo = true; player.Controller.ChangeState("Normal"); player.ReleaseCurrentPoint(); if (Object.op_Inequality((Object)player.PlayerController.CommandArea, (Object)null)) { ((Behaviour)player.PlayerController.CommandArea).set_enabled(true); } MapUIContainer.SetCommandLabelAcception(CommandLabel.AcceptionState.InvokeAcception); player.ActivateNavMeshAgent(); player.IsKinematic = false; })); }