Exemplo n.º 1
0
 public void ChangeEnergy(int delta)
 {
     stateArgs = new StateEvents();
     _Energy  += delta;
     if (_Energy <= 0)
     {
         ShipDestroyed?.Invoke(this, EventArgs.Empty);
         stateArgs.message = $"Ship has been low energy. Ship has been destoroyed.";
         OnShipState(stateArgs);
     }
     if (_Energy > 100)
     {
         _Energy           = 100;
         stateArgs.message = $"Ship has got {delta} energey pack. Ship has high energy.";
         OnShipState(stateArgs);
     }
     else if (delta > 0)
     {
         stateArgs.message = $"Ship has got {delta} energey pack. Ship has {_Energy} energy.";
         OnShipState(stateArgs);
     }
     else if (delta < 0)
     {
         stateArgs.message = $"Ship has got {delta} damage. Ship has {_Energy} energy.";
         OnShipState(stateArgs);
     }
 }
Exemplo n.º 2
0
 private static void OnShipOnState(object sender, StateEvents e)
 {
     Console.WriteLine(e.message);
     using (StreamWriter sw = new StreamWriter(_logFile, true, System.Text.Encoding.Default))
     {
         sw.WriteLine(e.message);
     }
 }
            public void ShouldCauseExpectedStateEvent()
            {
                StateEvents.Clear();

                CallMethod();

                StateEvents.ShouldBeSameEventsAs(
                    ExpectedState
                    );
            }
Exemplo n.º 4
0
 override public  bool SetEvent(StateEvents newEvent)
 {
     bool changed = stateMachine.SetEvent(newEvent);
     if(changed)
     {
         Controls.Clear();
         LoadCurrentCtrl();
     }
     return changed;
 }
Exemplo n.º 5
0
        override public bool SetEvent(StateEvents newEvent)
        {
            bool changed = stateMachine.SetEvent(newEvent);

            if (changed)
            {
                Controls.Clear();
                LoadCurrentCtrl();
            }
            return(changed);
        }
Exemplo n.º 6
0
 private void SetStateChangeEvents(List <Event> events)
 {
     foreach (Event e in events)
     {
         if (e.StateChange != StateChange.None && e.SrcInstid == Instid)
         {
             StateEvents.Add(new StateChangeEvent()
             {
                 Time        = e.Time,
                 StateChange = e.StateChange
             });
         }
     }
 }
        /// <summary>
        /// Add Default state event listeners. The Default state is present by default
        /// and does not need to be added.
        /// </summary>
        public void AddDefaultStateListeners()
        {
            StateEvents defaultEvents = interactiveElement.GetStateEvents <StateEvents>("Default");

            defaultEvents.OnStateOn.AddListener(() =>
            {
                Debug.Log($"{gameObject.name} Default State On");
            });

            defaultEvents.OnStateOff.AddListener(() =>
            {
                Debug.Log($"{gameObject.name} Default State Off");
            });
        }
        protected void BackLB_Click(object sender, System.EventArgs e)
        {
            // Ziel des Rücksprungs ermitteln.
            StateEvents eEvent = StateEvents.CancelToForumView;

            // War ein Artikel als Sprungziel angegeben, war die letzte Seite die Suchseite.
            if (configAgent.ArticleToShow != -1)
            {
                eEvent = StateEvents.SearchText;
            }

            // Zurücksetzen des Konfigurationsobjektes.
            configAgent.ThreadFile    = null;
            configAgent.ArticleToShow = -1;
            ((IStateProcessor)Parent).SetEvent(eEvent);
        }
Exemplo n.º 9
0
        private void ExternalControlEndpoint_StaticOnStateEvent(object sender, StateEventArgs e)
        {
            if (!NanoleafPlugin.getClient(this.SerialNumber).IP.Equals(e.IP))
            {
                return;
            }
            StateEvents events = e.StateEvents;

            if (events == null)
            {
                return;
            }

            var value = events.Events.FirstOrDefault(v => v.Attribute == StateEvent.EAttribute.Saturation);

            if (value != null)
            {
                this.CurrentValue = value.Value;
            }
        }
        /// <summary>
        /// Create a state with a new name.  This state will be initialized with the StateEvents
        /// event configuration that contains the OnStateOn and OnStateOff events.
        /// </summary>
        public void CreateNewState()
        {
            interactiveElement.AddNewState("MyNewState");

            // A new state is initialized with a the default StateEvents configuration which contains the
            // OnStateOn and OnStateOff events

            StateEvents myNewStateEvents = interactiveElement.GetStateEvents <StateEvents>("MyNewState");

            myNewStateEvents.OnStateOn.AddListener(() =>
            {
                Debug.Log($"MyNewState is On");
            });

            // Creating a new state with a custom event configuration requires the creation of 2 new files:
            // 1. A receiver file
            // 2. An event configuration file
            //
            // An example of a new state with a custom event configuration is the Keyboard state.
            // Example file names are KeyboardReceiver.cs + KeyboardEvents.cs files
        }
Exemplo n.º 11
0
 protected virtual void OnShipState(StateEvents e)
 {
     ShipOnState?.Invoke(this, e);
 }
Exemplo n.º 12
0
        /// <summary>
        /// Signalisiert ein Event, welches den Status der Statusmaschine beeinflussen kann. Der Status wird wenn nötig
        /// angepasst.
        /// </summary>
        /// <returns>true, wenn eine Änderung erfolgt ist.</returns>
        /// <param name="NewEvent">Das aufgetretene Ereignis.</param>
        public virtual bool SetEvent(StateEvents newEvent)
        {
            bool changed = false;

            switch (currentState)
            {
            case ForumStates.ForumView:                   // Aktueller Status MainView.
            {
                switch (newEvent)
                {
                case StateEvents.ShowThread:
                    currentState = ForumStates.ThreadView;
                    changed      = true;
                    break;

                case StateEvents.NewArticle:
                    currentState = ForumStates.WriteArticleView;
                    changed      = true;
                    break;
                }
                break;
            }

            case ForumStates.ThreadView:
            {
                switch (newEvent)
                {
                case StateEvents.CancelToForumView:
                    currentState = ForumStates.ForumView;
                    changed      = true;
                    break;

                case StateEvents.NewArticle:
                    currentState = ForumStates.WriteArticleView;
                    changed      = true;
                    break;
                }
                break;
            }

            case ForumStates.WriteArticleView:
            {
                if ((newEvent == StateEvents.CancelToThreadView) ||
                    (newEvent == StateEvents.ShowThread))
                {
                    currentState = ForumStates.ThreadView;
                    changed      = true;
                }
                else if (newEvent == StateEvents.CancelToForumView)
                {
                    currentState = ForumStates.ForumView;
                    changed      = true;
                }
                break;
            }

            case ForumStates.SearchResults:
            {
                if (newEvent == StateEvents.CancelToForumView)
                {
                    currentState = ForumStates.ForumView;
                    changed      = true;
                }
                else if (newEvent == StateEvents.ShowThread)
                {
                    currentState = ForumStates.ThreadView;
                    changed      = true;
                }
                break;
            }
            }

            if (newEvent == StateEvents.SearchText)
            {
                currentState = ForumStates.SearchResults;
                changed      = true;
            }

            // Abspeichern des aktuellen Status.
            if (changed)
            {
                System.Web.HttpContext.Current.Session[sessionKey] = currentState;
            }

            return(changed);
        }
Exemplo n.º 13
0
 abstract public bool SetEvent(StateEvents newEvent);
Exemplo n.º 14
0
    /// <summary>
    /// Signalisiert ein Event, welches den Status der Statusmaschine beeinflussen kann. Der Status wird wenn nötig 
    /// angepasst.
    /// </summary>
    /// <returns>true, wenn eine Änderung erfolgt ist.</returns>    
    /// <param name="NewEvent">Das aufgetretene Ereignis.</param>
    public virtual bool SetEvent(StateEvents newEvent)
    {
      bool changed = false;

      switch(currentState)
      {
        case ForumStates.ForumView:                       // Aktueller Status MainView.
        {
          switch(newEvent)
          {
            case StateEvents.ShowThread:
              currentState = ForumStates.ThreadView;
              changed = true;
              break;
            case StateEvents.NewArticle:
              currentState = ForumStates.WriteArticleView;
              changed = true;
              break;
          }
          break;
        }

        case ForumStates.ThreadView:
        {
          switch (newEvent)
          {
            case StateEvents.CancelToForumView:
              currentState = ForumStates.ForumView;
              changed = true;
              break;
            case StateEvents.NewArticle:
              currentState = ForumStates.WriteArticleView;
              changed = true;
              break;
          }
          break;
        }

        case ForumStates.WriteArticleView:
        {
          if((newEvent == StateEvents.CancelToThreadView) ||
             (newEvent == StateEvents.ShowThread))
          {
            currentState = ForumStates.ThreadView;
            changed = true;
          }
          else if (newEvent == StateEvents.CancelToForumView)
          {
            currentState = ForumStates.ForumView;
            changed = true;
          }
          break;
        }

        case ForumStates.SearchResults:
        {
          if (newEvent == StateEvents.CancelToForumView)
          {
            currentState = ForumStates.ForumView;
            changed = true;
          }
          else if (newEvent == StateEvents.ShowThread)
          {
            currentState = ForumStates.ThreadView;
            changed = true;
          }
          break;
        }
      }

      if (newEvent == StateEvents.SearchText)
      {
        currentState = ForumStates.SearchResults;
        changed = true;
      }

      // Abspeichern des aktuellen Status.
      if(changed)
        System.Web.HttpContext.Current.Session[sessionKey] = currentState;
              
      return changed;
    }
Exemplo n.º 15
0
 abstract public bool SetEvent(StateEvents newEvent);