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