Ejemplo n.º 1
0
        public ChatRivenBot(string launcherFullPath, IMouse mouseMover, IScreenStateHandler screenStateHandler,
                            IGameCapture gameCapture,
                            ObsSettings obsSettings,
                            string password,
                            IKeyboard keyboard,
                            IChatParser chatParser,
                            IDataSender dataSender,
                            IRivenCleaner rivenCleaner,
                            IRivenParserFactory rivenParserFactory,
                            RedTextParser redTextParser)
        {
            _launcherPath       = launcherFullPath;
            _mouse              = mouseMover;
            _screenStateHandler = screenStateHandler;
            _gameCapture        = gameCapture;
            _obsSettings        = obsSettings;
            _password           = password;
            _keyboard           = keyboard;
            _chatParser         = chatParser;
            _dataSender         = dataSender;
            _rivenCleaner       = rivenCleaner;
            _rivenParserFactory = rivenParserFactory;
            _redTextParser      = redTextParser;

            if (_obsSettings != null)
            {
                ConnectToObs();
            }
        }
Ejemplo n.º 2
0
        public ImageViewerControlViewModel(IGameCapture capture)
        {
            m_capture = capture;

            Frame = m_capture.ObserveProperty(x => x.Frame).ToReactiveProperty().AddTo(Disposables);

            m_capture.Start();
        }
Ejemplo n.º 3
0
        public ChatWatcher(IDataSender dataSender, IChatParser chatParser, IGameCapture gameCapture, IMouseMover mouseMover, IRivenCleaner rivenCleaner, IRivenParser rivenParser,
                           IScreenStateHandler screenStateHandler)
        {
            this._dataSender         = dataSender;
            this._chatParser         = chatParser;
            this._gameCapture        = gameCapture;
            this._mouseMover         = mouseMover;
            this._rivenCleaner       = rivenCleaner;
            this._rivenParser        = rivenParser;
            this._screenStateHandler = screenStateHandler;

            Console.SetWindowSize(1, 1);
            Console.SetBufferSize(147, 10);
            Console.SetWindowSize(147, 9);
            Console.CursorVisible = false;
            Console.Clear();
            UpdateUI();
        }
Ejemplo n.º 4
0
        public MacroPool(ISwitchClock clock, ISwitchController controller, ICancellationRequest cancelRequest, IGameCapture gameCapture)
        {
            var param = new MacroParameter()
            {
                Clock = clock, Controller = controller, CancellationRequest = cancelRequest, GameCapture = gameCapture,
            };

            Add <DrawLotoIdMacro>(param);
            Add <BattleMaxRaidMacro>(param);
            Add <GainWattsMacro>(param);
            //Add<SeekPokemonMacro>(param);
            Add <RapidTimeTravelMacro>(param);
            Add <ThreeDaysTravelMacro>(param);
            Add <MashAButtonMacro>(param);
        }
        public MacroPanelViewModel(IMacroService macro, IMacroPool pool, ICanceler canceler, IWorkSituation work, ISwitchClock clock, ISerialPortService serialPort, ICancellationRequest cancelRequest, IGameCapture gameCapture)
        {
            m_macro         = macro;
            m_macroCanceler = canceler;
            m_macroPool     = pool;

            IsConnected = serialPort.ObserveProperty(p => p.IsOpen).ToReactiveProperty().AddTo(Disposables);
            IsBusy      = work.ObserveProperty(w => w.IsBusy).ToReactiveProperty().AddTo(Disposables);

            Clock       = clock.ToReactivePropertyAsSynchronized(m => m.DateTime).AddTo(Disposables);
            Clock.Value = DateTime.Now;

            DrawLotoIdCommand    = CreateExecuteMacroCommand <DrawLotoIdMacro>();
            GainWattsCommand     = CreateExecuteMacroCommand <GainWattsMacro>();
            BattleMaxRaidCommand = CreateExecuteMacroCommand <BattleMaxRaidMacro>();
            //SeekPokemonCommand = CreateExecuteMacroCommand<SeekPokemonMacro>();
            RapidTimeTravelCommand     = CreateExecuteMacroCommand <RapidTimeTravelMacro>();
            RapidTimeTravelDays        = clock.ToReactivePropertyAsSynchronized(m => m.DaysCount).AddTo(Disposables);
            RapidTimeTravelDays.Value  = 0;
            ThreeDaysTravelCommand     = CreateExecuteMacroCommand <ThreeDaysTravelMacro>();
            CanGoNextThreeDays         = (m_macroPool.Get <ThreeDaysTravelMacro>() as ThreeDaysTravelMacro).ObserveProperty(m => m.CanGoNext).ToReactiveProperty().AddTo(Disposables);
            ThreeDaysTravelNextCommand = CanGoNextThreeDays.ToReactiveCommand().AddTo(Disposables);
            ThreeDaysTravelNextCommand.Subscribe(() =>
            {
                using (var wait = new EventWaitHandle(false, EventResetMode.ManualReset, "WAIT_NEXT_3_DAYS"))
                {
                    wait.Set();
                }
            });
            MashAButtonCommand = CreateExecuteMacroCommand <MashAButtonMacro>();

            IsCanceling   = cancelRequest.ObserveProperty(c => c.IsCancellationRequested).ToReactiveProperty().AddTo(Disposables);
            CancelCommand = new[] { IsBusy, IsCanceling }.CombineLatest(x => x[0] && !x[1]).ToReactiveCommand().AddTo(Disposables);
            CancelCommand.Subscribe(m_macroCanceler.Cancel);

            SaveImageCommand = new ReactiveCommand().AddTo(Disposables);
            SaveImageCommand.Subscribe(() => gameCapture.SaveFrame(null));
        }