protected static void AddTransitionFromJumpToDying(PostureState state) { state.AddTransition( (command, addOutput) => { var ret = command.IsMatch(FsmInput.Dying); if (ret) { command.Handled = true; FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.FreeFallHash, AnimatorParametersHash.Instance.FreeFallName, AnimatorParametersHash.Instance.FreeFallDisable, CharacterView.FirstPerson | CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.JumpStartHash, AnimatorParametersHash.Instance.JumpStartName, AnimatorParametersHash.Instance.JumpStartDisable, CharacterView.FirstPerson | CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetLayerWeight(AnimatorParametersHash.Instance.DyingLayer, AnimatorParametersHash.Instance.DyingEnableValue, CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); } return(ret); }, null, (int)PostureStateId.Dying, null, 0, new[] { FsmInput.Dying }); }
public static PostureState CreateSwimState() { PostureState state = new PostureState(PostureStateId.Swim); #region swim to stand AddTransitionFromWaterToStand(state); #endregion #region swim to dive state.AddTransition(new DiveTransition( state.AvailableTransitionId(), (int)PostureStateId.Dive, SingletonManager.Get <CharacterStateConfigManager>().GetPostureTransitionTime(PostureInConfig.Swim, PostureInConfig.Dive), AnimatorParametersHash.Instance.SwimStateSwimValue, AnimatorParametersHash.Instance.SwimStateDiveValue, FsmInput.Dive), new[] { FsmInput.Dive }); #endregion return(state); }
public void InitAsLeanState(IFsmTransitionHelper infoProvider) { AddState(PostureState.CreateNoPeekState(), infoProvider); AddState(PostureState.CreatePeekLeftState(), infoProvider); AddState(PostureState.CreatePeekRightState(), infoProvider); _resetParam = ResetLeanStateParam; }
private static void AddTransitionToDying(PostureState state) { state.AddTransition( (command, addOutput) => { var ret = command.IsMatch(FsmInput.Dying); if (ret) { FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.ProneHash, AnimatorParametersHash.Instance.ProneName, AnimatorParametersHash.Instance.ProneDisable, CharacterView.FirstPerson | CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.InjuredMoveHash, AnimatorParametersHash.Instance.InjuredMoveName, AnimatorParametersHash.Instance.InjuredMoveEnableValue, CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); command.Handled = true; } return(ret); }, null, (int)PostureStateId.DyingTransition, null, 0, new[] { FsmInput.Dying }); }
public void InitAsCommonState(IFsmTransitionHelper infoProvider) { AddState(PostureState.CreateStandState(), infoProvider); AddState(PostureState.CreateCrouchState(), infoProvider); AddState(PostureState.CreateProneState(), infoProvider); AddState(PostureState.CreateJumpStartState(), infoProvider); AddState(PostureState.CreateProneTransitState(), infoProvider); AddState(PostureState.CreateProneToStandState(), infoProvider); AddState(PostureState.CreateProneToCrouchState(), infoProvider); AddState(PostureState.CreateJumpEndState(), infoProvider); AddState(PostureState.CreateFreefallState(), infoProvider); AddState(PostureState.CreateSwimState(), infoProvider); AddState(PostureState.CreateDiveState(), infoProvider); AddState(PostureState.CreateDyingState(), infoProvider); AddState(PostureState.CreateClimbState(), infoProvider); _resetParam = ResetCommonStateParam; }
private static void AddTransitionFromWaterToStand(PostureState state, int duration) { state.AddTransition( (command, addOutput) => { var ret = command.IsMatch(FsmInput.Ashore); if (ret) { FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.PostureHash, AnimatorParametersHash.Instance.PostureName, AnimatorParametersHash.Instance.StandValue, CharacterView.FirstPerson | CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(FsmOutputType.FirstPersonHeight, AnimatorParametersHash.FirstPersonStandCameraHeight); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(FsmOutputType.FirstPersonForwardOffset, AnimatorParametersHash.FirstPersonStandCameraForwardOffset); addOutput(FsmOutput.Cache); command.Handled = true; } return(ret); }, (command, addOutput) => FsmTransitionResponseType.NoResponse, (int)PostureStateId.Stand, (normalizedTime, addOutput) => { FsmOutput.Cache.SetLayerWeight(AnimatorParametersHash.Instance.SwimLayer, Mathf.Lerp(AnimatorParametersHash.Instance.SwimEnableValue, AnimatorParametersHash.Instance.SwimDisableValue, Mathf.Clamp01(normalizedTime)), CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); }, duration, new[] { FsmInput.Ashore }); }
public static PostureState CreateNoPeekState() { PostureState state = new PostureState(PostureStateId.NoPeek); #region NoPeek to PeekLeft state.AddTransition(new NoPeekToPeekLeftTransition(state.AvailableTransitionId(), (int)PostureStateId.PeekLeft, AnimatorParametersHash.PeekTime), new[] { FsmInput.PeekLeft }); #endregion #region NoPeek to PeekRight state.AddTransition(new NoPeekToPeekRightTransition(state.AvailableTransitionId(), (int)PostureStateId.PeekRight, AnimatorParametersHash.PeekTime), new[] { FsmInput.PeekRight }); #endregion return(state); }
public static PostureState CreateDyingState() { PostureState state = new PostureState(PostureStateId.Dying); #region dying to crouch state.AddTransition( (command, addOutput) => { var ret = command.IsMatch(FsmInput.Revive); if (ret) { FsmOutput.Cache.SetLayerWeight(AnimatorParametersHash.Instance.DyingLayer, AnimatorParametersHash.Instance.DyingDisableValue, CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.PostureHash, AnimatorParametersHash.Instance.PostureName, AnimatorParametersHash.Instance.CrouchValue, CharacterView.FirstPerson | CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); command.Handled = true; } return(ret); }, (command, addOutput) => FsmTransitionResponseType.NoResponse, (int)PostureStateId.Crouch, null, 0, new[] { FsmInput.Revive }); #endregion return(state); }