Пример #1
0
        private void _onMessage(ZGameEvent eventEnum, string rawEvent, ZGameState[] stateEnums, string rawState)
        {
            if (StateChanged == null)
            {
                return;
            }

            // raise event
            var invocationList = StateChanged.GetInvocationList();
            var eventArgs      = new ZGamePipeArgs(eventEnum, rawEvent, stateEnums, rawState);

            foreach (var handler in invocationList)
            {
                var eventHandler = (EventHandler <ZGamePipeArgs>)handler;
                eventHandler.BeginInvoke(this, eventArgs, _EndAsyncEvent, null);
            }
        }
Пример #2
0
        private void _gamePipeHandler(object sender, ZGamePipeArgs e)
        {
            // save part of pipe log
            _pipeLogger.AppendLine(e.RawFullMessage);

            // handle pipe event
            switch (e.Event)
            {
            case ZGameEvent.Unknown:

                // ignore but log, it's important to understand, what happen here
                _logger.Warn($"Received unknown event with next value {e.RawFullMessage}");

                break;

            case ZGameEvent.StateChanged:

                _handleStates(e.States);

                break;

            case ZGameEvent.Alert:
                break;

            case ZGameEvent.GameWaiting:

                // we're already loaded
                _OnGameLoadingCompleted();

                // inject selected dll`s
                if (!_settingsService.GlobalBlock)
                {
                    _zloApi.InjectDll(_gameSettings.Game, _gameSettings.Dlls);
                }

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }