public void AddTrigger(TriggersTemp newTrigger)
        {
            switch (newTrigger)
            {
            case TriggersTemp.TriggerWalk:
            {
                if (!CurrentState.StateFlags.IsMoving)
                {
                    Triggers.Add(newTrigger);
                }
                break;
            }

            case TriggersTemp.TriggerIdle:
            {
                if (CurrentState.StateFlags.IsMoving)
                {
                    Triggers.Add(newTrigger);
                }
                break;
            }

            case TriggersTemp.TriggerAim:
            {
                if (!CurrentState.StateFlags.IsAiming)
                {
                    Triggers.Add(newTrigger);
                }
                break;
            }

            case TriggersTemp.TriggerUnaim:
            {
                if (CurrentState.StateFlags.IsAiming)
                {
                    Triggers.Add(newTrigger);
                }
                break;
            }

            case TriggersTemp.TriggerFall:
            {
                Triggers.Add(newTrigger);

                break;
            }

            case TriggersTemp.TriggerGetUp:
            {
                Triggers.Add(newTrigger);

                break;
            }
            }
        }
Exemple #2
0
        /*public void NewStateTrigger(TriggersTemp triggersTemp)
         * {
         *  if (StateController.CurrentState is StateWalk)
         *  {
         *      if (triggersTemp==TriggersTemp.TriggerIdle)
         *      {
         *          StateController.CurrentState = _stateIdle;
         *          StateController.CurrentState.StateEnterAction();
         *      }
         *  }
         *  else
         *  {
         *      if (StateController.CurrentState is StateIdle)
         *      {
         *          if (triggersTemp == TriggersTemp.TriggerWalk)
         *          {
         *              StateController.CurrentState = _walkState;
         *              StateController.CurrentState.StateEnterAction();
         *          }
         *      }
         *  }
         * }*/


        public void TrySetTrigger(TriggersTemp triggerName)
        {
            foreach (StateConnection connection in CurrentNode.ConnectionsFromThis)
            {
                if (connection.TriggerName == triggerName)
                {
                    //LastNode = CurrentNode;
                    CurrentNode = connection.StateNodeTo;

                    StateController.CurrentState.StateExitAction(CurrentNode.State);


                    StateController.CurrentState = CurrentNode.State;
                    StateController.CurrentState.StateEnterAction();
                    StateController.CurrentState.UnInicNotStateCommands();
                    //CurrentNode.State.StateEnterAction();

                    break;
                }
            }
        }