示例#1
0
 private void Dispatch(GameEvent newEvent)
 {
     State = State.Dispatch(newEvent);
     _events.Insert(newEvent);
     OnGameEvent?.Invoke(this, newEvent);
     AfterInsert(newEvent);
 }
示例#2
0
 public void Start()
 {
     Debug.Log("Firing Game Start Event");
     OnGameEvent.Invoke(new GameEvent.Parameter()
     {
         Type = (int)GameEvent.Types.Start
     });
 }
示例#3
0
 public void OnPlayerDeath()
 {
     Debug.Log("Firing Game Restart Event");
     OnGameEvent.Invoke(new GameEvent.Parameter()
     {
         Type = (int)GameEvent.Types.Restart
     });
     // Add score
 }
示例#4
0
        /// <summary>
        /// Вызвать обработчик события у всех слушателей
        /// </summary>
        public void Invoke()
        {
            //Вызываем начиная с самого последнего подписавшегося
            for (int i = _listeners.Count - 1; i >= 0; i--)
            {
                _listeners[i].OnEventInvoked();
            }

            OnGameEvent?.Invoke();
        }
示例#5
0
        public bool OnGame(OnGameRequest requestFromUser)
        {
            OnGameEventArgs eventArgs = new OnGameEventArgs {
                UserName = requestFromUser.UserName
            };

            OnGameEvent?.DynamicInvoke(this, eventArgs);
            //TODO : get answer from client if he want to play\
            if (eventArgs.Cancel == true)
            {
            }
            return(true);
        }
示例#6
0
 /// <summary>
 /// Remove a listener from the list
 /// </summary>
 public void RemoveListener(string evtName, OnGameEvent callback)
 {
     if (!dispatching)
     {
         if (eventCallbacks.ContainsKey(evtName))
         {
             eventCallbacks[evtName].Remove(callback);
         }
     }
     else
     {
         purge.Add(new KeyValuePair <string, OnGameEvent>(evtName, callback));
     }
 }
示例#7
0
        /// <summary>
        /// Add a listener to the list
        /// </summary>
        public void AddListener(string evtName, OnGameEvent callback)
        {
            // Add the event if it is not part of the list
            if (!eventCallbacks.ContainsKey(evtName))
            {
                eventCallbacks.Add(evtName, new List <OnGameEvent>());
            }

            // Add the callback itself
            if (!eventCallbacks[evtName].Contains(callback))
            {
                eventCallbacks[evtName].Add(callback);
            }
        }