Exemple #1
0
        private async void _parseTimer_Tick(object sender, object e)
        {
            _parseTimer.Stop();
            if (Warframe.WarframeIsRunning())
            {
                var text = await ScreenCapture.ParseTextAsync();

                var         hiddenPrimes        = new List <DisplayPrime>();
                List <Task> fetchPlatpriceTasks = new List <Task>();
                foreach (var p in PrimeItems)
                {
                    if (text.IndexOf(LocalizationManager.Localize(p.Prime.Name), StringComparison.InvariantCultureIgnoreCase) != -1)
                    {
                        p.Visible = true;
                        fetchPlatpriceTasks.Add(FetchPlatPriceTask(p));
                        fetchPlatpriceTasks.Add(FetchDucatValueTask(p));
                    }
                    else
                    {
                        hiddenPrimes.Add(p);
                    }
                }

                if (!ShowAllPrimes)
                {
                    if (hiddenPrimes.Count < PrimeItems.Count)
                    {
                        //Only hide if we see at least one prime (let the old list persist until we need to refresh)
                        foreach (var p in hiddenPrimes)
                        {
                            p.Visible = false;
                        }
                    }
                }

                if (text.Contains(LocalizationManager.MissionSuccess) && _lastMissionComplete.AddMinutes(1) > DateTime.Now &&
                    PrimeItems.Count - hiddenPrimes.Count == 1)
                {
                    //Auto-record the selected reward if we detect a prime on the mission complete screen
                    _lastMissionComplete = DateTime.MinValue;
                    await Task.Run(() => PrimeItems.FirstOrDefault(p => p.Visible)?.AddCommand?.Execute());
                }

                if (text.Contains(LocalizationManager.SelectAReward) && PrimeItems.Count - hiddenPrimes.Count > 0)
                {
                    OnMissionComplete();
                }
                WarframeNotDetected = false;

                await Task.WhenAll(fetchPlatpriceTasks);
            }
            else
            {
                WarframeNotDetected = true;
            }
            _parseTimer.Start();
        }
Exemple #2
0
        private async void LoadData()
        {
            var primeData = await PrimeData.GetInstance();

            foreach (var primeItem in primeData.Primes)
            {
                PrimeItems.Add(new DisplayPrime()
                {
                    Data = primeData.GetDataForItem(primeItem), Prime = primeItem
                });
            }
        }