コード例 #1
0
ファイル: InMemoryDb.cs プロジェクト: guyshachar/align
        public void LoadEntities(List <MissionEntity> entities)
        {
            MissionsList.AddRange(entities);

            IsolatedAgents.Clear();
            IsolationsPerCountry.Clear();
            MostIsolatedCountry = null;

            foreach (var entity in entities)
            {
                ParseEntity(entity);
            }

            // Calculate IsolationsPerCountry
            foreach ((string agent, string country) in IsolatedAgents)
            {
                if (!IsolationsPerCountry.ContainsKey(country))
                {
                    IsolationsPerCountry.Add(country, 0);
                }
                IsolationsPerCountry[country]++;

                if (string.IsNullOrWhiteSpace(MostIsolatedCountry) || IsolationsPerCountry[country] > IsolationsPerCountry[MostIsolatedCountry])
                {
                    MostIsolatedCountry = country;
                }
            }
        }
コード例 #2
0
 public void AddNextLoreMission(MissionsList missionsList)
 {
     if (NextLoreMission != null)
     {
         NextLoreMission.MissionUnlocked = false;
         missionsList.AddNewMission(NextLoreMission);
     }
 }
コード例 #3
0
        private void SetCooldowns()
        {
            var lsTime = MissionsList.Select(p => p.availableUntil).Distinct().OrderBy(p => p).ToList();

            if (lsTime.Count == 1)
            {
                lsTime.Add(lsTime[0]);
            }
            if (lsTime.Count != 2)
            {
                throw new Exception($"Service: expected count:2 now:{lsTime.Count} for missions [check GetInterval();]");
            }
            UpdateTime  = lsTime[0];
            UpdateTime2 = lsTime[1];
        }
コード例 #4
0
        public Task <IEnumerable <IMissionX> > GetWebhookMissions(bool getNewest = true)
        {
            return(Task.Run(() =>
            {
                var newest = UpdateTime2;
                if (!getNewest)
                {
                    newest = UpdateTime;
                }

                List <IMissionX> topList = new List <IMissionX>();
                topList.AddRange(MissionsList.Where(p =>
                                                    p.HasMythicSurvivor() ||
                                                    p.HasMythicHero() ||
                                                    p.HasVBuck() ||
                                                    p.HasLegendarySurvivor() ||
                                                    p.HasLegendaryDefender() ||
                                                    p.HasLegendaryHero() ||
                                                    p.HasLegendaryShematic() ||
                                                    p.Has4xEyeOfStorm() ||
                                                    p.Has4xLightningInABottle() ||
                                                    p.Has4xPureDropOfRain() ||
                                                    p.Has4xStormShard() ||
                                                    // p.Has4xSchematicXP() ||
                                                    // p.Has4xHeroXP() ||
                                                    // p.Has4xSurvivorXP() ||
                                                    p.HasLegendaryAnyTransform()));
                if (topList.Count == 0)
                {
                    topList.AddRange(MissionsList.Where(p => p.HasLegendaryPerkUp(WorldName.Twine_Peaks) || p.HasEpicPerkUp(WorldName.Twine_Peaks)));
                }
                else
                {
                    topList.AddRange(MissionsList.Where(p => p.HasLegendaryPerkUp(WorldName.Twine_Peaks) || p.HasEpicPerkUp(WorldName.Twine_Peaks)));
                }
                topList = topList.Where(f => (f.HasAnyElementalAlert() == false || (f.HasAnyElementalAlert() == true && f.HasVBuck())) && (f.HasAnyAlert(Alert.StormCategory) == false || (f.HasAnyAlert(Alert.StormCategory) == true && f.HasVBuck() == true)) && f.availableUntil == newest)
                          .Distinct().ToList();

                return topList.AsEnumerable();
            }));
        }
コード例 #5
0
        public IEnumerable <IMissionX> TopMissions()
        {
            var list = MissionsList.Where(p =>
                                          p.HasMythicSurvivor() ||
                                          p.HasMythicHero() ||
                                          p.HasVBuck() ||
                                          p.HasLegendarySurvivor() ||
                                          p.HasLegendaryHero() ||
                                          p.IsFourStacks("Survivor Xp") ||
                                          p.IsGroupMission(WorldName.Twine_Peaks) ||
                                          p.IsFourStacks("Legendary Perk-Up") ||
                                          p.IsFourStacks("Pure Drop Of Rain") ||
                                          p.IsFourStacks("Lightning In A Bottle") ||
                                          p.IsFourStacks("Eye Of The Storm") ||
                                          p.IsFourStacks("Storm Shard") ||
                                          p.IsFourStacks("Epic Perk-Up") ||
                                          p.HasLegendaryShematic() ||
                                          p.HasLegendaryDefender() ||
                                          p.HasLegendaryAnyTransform() ||
                                          p.HasEpicSurvivor() ||
                                          p.HasEpicHero() ||
                                          p.HasEpicAnyTransform() ||
                                          p.IsFourStacks("Survivor Xp", WorldName.Canny_Valley) ||
                                          p.IsGroupMission(WorldName.Canny_Valley) ||
                                          p.IsFourStacks("Legendary Perk-Up", WorldName.Canny_Valley) ||
                                          p.IsFourStacks("Pure Drop Of Rain", WorldName.Canny_Valley) ||
                                          p.IsFourStacks("Lightning In A Bottle", WorldName.Canny_Valley) ||
                                          p.IsFourStacks("Eye Of The Storm", WorldName.Canny_Valley) ||
                                          p.IsFourStacks("Storm Shard", WorldName.Canny_Valley) ||
                                          p.IsFourStacks("Epic Perk-Up", WorldName.Canny_Valley))
                       .Where(f => (f.HasAnyElementalAlert() == false || (f.HasAnyElementalAlert() == true && f.HasVBuck())))
                       .Distinct()
                       .OrderBy(f => f.OrderNumber);

            return(list.Take(24));
        }
コード例 #6
0
 public IEnumerable <IMissionX> Get4xEyeOfStorm(WorldName world = WorldName.Twine_Peaks)
 {
     return(MissionsList.Where(p => p.Has4xEyeOfStorm(world)).Distinct());
 }
コード例 #7
0
 public IEnumerable <IMissionX> Get4xPureDrop(WorldName world = WorldName.Twine_Peaks)
 {
     return(MissionsList.Where(p => p.Has4xPureDropOfRain(world)).Distinct());
 }
コード例 #8
0
 public IEnumerable <IMissionX> GetEpicMaps()
 {
     return(MissionsList.Where(p => p.AnyEpic()).Distinct());
 }
コード例 #9
0
 public IEnumerable <IMissionX> GetMythicSurvivors()
 {
     return(MissionsList.Where(p => p.HasMythicSurvivor()).Distinct());
 }
コード例 #10
0
 public IEnumerable <IMissionX> GetVbuckMaps()
 {
     return(MissionsList.Where(p => p.HasVBuck()).Distinct());
 }
コード例 #11
0
 public IEnumerable <IMissionX> GetLegendarySurvivors()
 {
     return(MissionsList.Where(p => p.HasLegendarySurvivor()).Distinct());
 }
コード例 #12
0
 public IEnumerable <IMissionX> GetLegendaryPerk(WorldName world)
 {
     return(MissionsList.Where(p => p.HasLegendaryPerkUp(world)).Distinct());
 }
コード例 #13
0
 public IEnumerable <IMissionX> GetMythicMaps(WorldName world)
 {
     return(MissionsList.Where(p => p.AnyMythic()).Distinct());
 }
コード例 #14
0
 public IEnumerable <IMissionX> GetLegendaryMaps(WorldName world)
 {
     return(MissionsList.Where(p => p.AnyLegendary()).Distinct());
 }
コード例 #15
0
 public IEnumerable <IMissionX> Get4xLightningInABottle(WorldName world = WorldName.Twine_Peaks)
 {
     return(MissionsList.Where(p => p.Has4xLightningInABottle(world)).Distinct());
 }