Example #1
0
        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);
        }
Example #2
0
        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);
        }