public static ActionState CreateSightP3State() { ActionState state = new ActionState(ActionStateId.Sight); #region SightP3 To KeepNull state.AddTransition(new SightToOverlayNullTransition(state.AvailableTransitionId(), (int)ActionStateId.KeepNull, SingletonManager.Get <CharacterStateConfigManager>().GetPostureTransitionTime(PostureInConfig.Sight, PostureInConfig.Null)), new[] { FsmInput.CancelSight }); #endregion return(state); }
public static ActionState CreateKeepNullState() { ActionState state = new ActionState(ActionStateId.KeepNull); #region KeepNull to Sight state.AddTransition(new OverlayNullToSightTransition(state.AvailableTransitionId(), (int)ActionStateId.Sight, SingletonManager.Get <CharacterStateConfigManager>().GetPostureTransitionTime(PostureInConfig.Null, PostureInConfig.Sight)), new[] { FsmInput.Sight }); #endregion #region KeepNull to VehiclesAnim state.AddTransition( (command, addOutput) => { float seatId = command.AdditioanlValue % 10; int postureId = (int)(command.AdditioanlValue / 10); if (command.IsMatch(FsmInput.DriveStart)) { FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.VehiclesAnimHash, AnimatorParametersHash.Instance.VehiclesAnimName, AnimatorParametersHash.Instance.VehiclesAnimEnableValue, CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.VehiclesAnimStateHash, AnimatorParametersHash.Instance.VehiclesAnimStateName, seatId, CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.VehiclesStateHash, AnimatorParametersHash.Instance.VehiclesStateName, (float)postureId, CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.GripHandPoseHash, AnimatorParametersHash.Instance.GripHandPoseName, AnimatorParametersHash.Instance.GripHandPoseDisableValue, CharacterView.FirstPerson | CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); 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.ForceEndProneHash, AnimatorParametersHash.Instance.ForceEndProneName, AnimatorParametersHash.Instance.ForceEndProneEnable, CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.PostureHash, AnimatorParametersHash.Instance.PostureName, AnimatorParametersHash.Instance.StandValue, CharacterView.FirstPerson | CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); command.Handled = true; return(true); } return(false); }, null, (int)ActionStateId.Drive, null, 0, new[] { FsmInput.DriveStart }); #endregion #region KeepNull to Rescue state.AddTransition( (command, addOutput) => { if (command.IsMatch(FsmInput.Rescue)) { FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.RescueHash, AnimatorParametersHash.Instance.RescueName, AnimatorParametersHash.Instance.RescueEnableValue, CharacterView.ThirdPerson | CharacterView.FirstPerson, false); addOutput(FsmOutput.Cache); command.Handled = true; return(true); } return(false); }, null, (int)ActionStateId.Rescue, null, 0, new[] { FsmInput.Rescue }); #endregion #region KeepNull to Rage state.AddTransition( (command, addOutput) => { if (command.IsMatch(FsmInput.RageStart)) { FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.RageStartHash, AnimatorParametersHash.Instance.RageStartName, AnimatorParametersHash.Instance.RageStartEnable, CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); command.Handled = true; return(true); } return(false); }, null, (int)ActionStateId.RageStart, null, 0, new[] { FsmInput.RageStart }); #endregion #region KeepNull to SuccessPose state.AddTransition( (command, addOutput) => { if (command.IsMatch(FsmInput.StartSuccessPose)) { FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.SuccessHash, AnimatorParametersHash.Instance.SuccessName, AnimatorParametersHash.Instance.SuccessEnable, CharacterView.ThirdPerson, false); addOutput(FsmOutput.Cache); FsmOutput.Cache.SetValue(AnimatorParametersHash.Instance.SuccessStateHash, AnimatorParametersHash.Instance.SuccessStateName, command.AdditioanlValue, CharacterView.ThirdPerson); addOutput(FsmOutput.Cache); command.Handled = true; return(true); } return(false); }, null, (int)ActionStateId.SuccessPose, null, 0, new[] { FsmInput.StartSuccessPose }); #endregion return(state); }